Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengira Kesamaan Kosinus Antara Ayat dalam Python Tanpa Perpustakaan Luaran?
Mengira Kesamaan Kosinus Antara Rentetan Ayat
Memandangkan dua rentetan yang mewakili ayat, terdapat keperluan untuk mengira persamaan kosinus mereka tanpa menggunakan perpustakaan luaran. Mari kita terokai pelaksanaan Python untuk mencapainya.
Persamaan kosinus mengukur sudut antara dua vektor, biasanya mewakili dokumen atau ayat dalam ruang vektor. Nilai kesamaan kosinus yang tinggi menunjukkan bahawa ayat adalah serupa, manakala nilai yang rendah menunjukkan ia berbeza.
Langkah 1: Tokenisasi dan Vektorisasi
Untuk mengira kesamaan kosinus, kami mesti menukar ayat kepada vektor. Kami menggunakan tokenizer berasaskan perkataan mudah yang membahagikan ayat menjadi perkataan dan mengira kejadiannya:
<code class="python">import re from collections import Counter WORD = re.compile(r"\w+") def text_to_vector(text): words = WORD.findall(text) return Counter(words)</code>
Langkah 2: Mengira Kesamaan Kosinus
Formula kesamaan kosinus ialah:
cosine = (Numerator) / (Denominator)
di mana:
<code class="python">import math 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</code>
Langkah 3: Contoh Penggunaan
Menggunakan fungsi di atas, kita boleh mengira persamaan kosinus antara dua ayat:
<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 akan menunjukkan nilai kesamaan kosinus yang tinggi, menunjukkan bahawa ayat adalah serupa.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kesamaan Kosinus Antara Ayat dalam Python Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!