Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh mengira persamaan kosinus antara dua ayat tanpa menggunakan perpustakaan luaran?
Mengira Kesamaan Kosinus untuk Rentetan Ayat
Kesamaan kosinus ialah ukuran korelasi antara dua vektor. Dalam konteks pemprosesan teks, ia boleh digunakan untuk menentukan persamaan antara dua ayat. Untuk mengira persamaan kosinus bagi dua rentetan tanpa pustaka luaran, ikuti langkah berikut:
Pelaksanaan Python yang mudah:
<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 list(vec1.keys())]) sum2 = sum([vec2[x] ** 2 for x in list(vec2.keys())]) denominator = math.sqrt(sum1) * math.sqrt(sum2) if not denominator: return 0.0 else: return float(numerator) / denominator def text_to_vector(text): words = WORD.findall(text) return Counter(words)</code>
Contoh penggunaan:
<code class="python">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>
Output:
Cosine: 0.861640436855
Perhatikan bahawa pelaksanaan ini tidak termasuk pemberat TF-IDF, yang boleh meningkatkan ketepatan persamaan kosinus untuk set data yang lebih besar.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengira persamaan kosinus antara dua ayat tanpa menggunakan perpustakaan luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!