Cara Mengira Kesamaan Kosinus Dua Rentetan Teks tanpa Perpustakaan Luar
Dalam analisis teks, kesamaan kosinus ialah ukuran persamaan antara dua teks berdasarkan kosa kata yang dikongsi mereka. Walaupun perpustakaan luaran boleh digunakan untuk mengira ukuran ini, ia juga mungkin untuk melaksanakan fungsi Python tulen yang ringkas:
<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>
Fungsi ini mengambil dua vektor vec1 dan vec2 sebagai input dan mengira persamaan kosinusnya. Begini cara menggunakannya untuk membandingkan dua rentetan teks text1 dan text2:
<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
Ini menunjukkan bahawa kedua-dua rentetan teks adalah sangat serupa.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Kesamaan Kosinus Dua Rentetan Teks dalam Python Tulen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!