Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengira Kesamaan Kosinus Antara Rentetan Ayat dalam Python Tanpa Perpustakaan Luaran?
Mengira Kesamaan Kosinus bagi Rentetan Ayat tanpa Perpustakaan Luaran
Untuk mengira persamaan kosinus antara dua rentetan teks tanpa modul luaran, pelaksanaan Python yang mudah boleh diambil bekerja. Formula persamaan kosinus asas digunakan dalam proses ini:
cos(θ) = (A · B) / (||A|| · ||B||)
Di mana:
Pelaksanaan
Kod Python berikut menyediakan pelaksanaan praktikal formula ini:
<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>
Untuk menggunakan kod ini, tukar rentetan ayat kepada vektor menggunakan fungsi text_to_vector dan kemudian hitung persamaan kosinus menggunakan fungsi get_cosine:
<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>
Ini akan mengeluarkan persamaan kosinus antara dua rentetan ayat. Ambil perhatian bahawa pemberatan tf-idf tidak disertakan dalam pelaksanaan ini, tetapi boleh ditambah jika korpus yang sesuai tersedia.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kesamaan Kosinus Antara Rentetan Ayat dalam Python Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!