Rumah > Artikel > pembangunan bahagian belakang > Bagaimana Anda Boleh Mengira Kesamaan Kosinus Antara Dua Ayat Tanpa Perpustakaan Luaran?
Dalam konteks pemprosesan bahasa semula jadi, mengira kesamaan kosinus adalah penting untuk mengukur persamaan teks antara dokumen. Walaupun perpustakaan luaran seperti tf-idf-cosine boleh memudahkan tugas ini, anda juga boleh mengira kesamaan kosinus secara manual tanpa bergantung pada kebergantungan tersebut.
Gambaran Keseluruhan Kesamaan Kosinus
Kosinus persamaan mengukur sudut antara dua vektor yang mewakili teks. Persamaan kosinus yang lebih tinggi menunjukkan sudut yang lebih kecil, membayangkan persamaan yang lebih besar antara teks. Ia dikira menggunakan hasil darab titik bagi vektor ternormal dibahagikan dengan magnitudnya.
Melaksanakan Keserupaan Kosinus Secara Manual
Untuk mengira kesamaan kosinus secara manual, kami mentakrifkan langkah berikut:
Pelaksanaan Kod
Di bawah ialah pelaksanaan Python pengiraan persamaan kosinus manual:
<code class="python">import math import re from collections import Counter WORD = re.compile(r"\w+") def get_cosine(vec1, vec2): intersection = set(vec1.keys()) & set(vec2.keys()) numerator = sum([vec1[x] * vec2[x] for x in intersection]) sum1 = sum([vec1[x] ** 2 for x in vec1]) sum2 = sum([vec2[x] ** 2 for x in vec2]) denominator = math.sqrt(sum1) * math.sqrt(sum2) if not denominator: return 0.0 else: return numerator / denominator def text_to_vector(text): words = WORD.findall(text) return Counter(words) text1 = "This is a foo bar sentence ." text2 = "This sentence is similar to a foo bar sentence ." vector1 = text_to_vector(text1) vector2 = text_to_vector(text2) cosine = get_cosine(vector1, vector2) print("Cosine:", cosine)</code>
Hasil
Kod ini dilaksanakan seperti berikut:
Cosine: 0.861640436855
Nilai ini menunjukkan persamaan kosinus yang tinggi antara kedua-dua ayat, mengesahkan bahawa ia adalah serupa dari segi teks.
Pertimbangan Lanjut
Walaupun pendekatan manual ini menyediakan pelaksanaan asas, ia boleh dipertingkatkan dengan :
Atas ialah kandungan terperinci Bagaimana Anda Boleh Mengira Kesamaan Kosinus Antara Dua Ayat Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!