Heim > Artikel > Backend-Entwicklung > Wie kann ich die Kosinusähnlichkeit zwischen zwei Sätzen berechnen, ohne externe Bibliotheken zu verwenden?
Berechnung der Kosinusähnlichkeit für Satzketten
Kosinusähnlichkeit ist ein Maß für die Korrelation zwischen zwei Vektoren. Im Rahmen der Textverarbeitung kann damit die Ähnlichkeit zweier Sätze festgestellt werden. Um die Kosinusähnlichkeit für zwei Zeichenfolgen ohne externe Bibliotheken zu berechnen, führen Sie die folgenden Schritte aus:
Eine einfache Python-Implementierung:
<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>
Beispielverwendung:
<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>
Ausgabe:
Cosine: 0.861640436855
Beachten Sie, dass diese Implementierung keine TF-IDF-Gewichtung enthält, was die Genauigkeit von verbessern kann Kosinusähnlichkeit für größere Datensätze.
Das obige ist der detaillierte Inhalt vonWie kann ich die Kosinusähnlichkeit zwischen zwei Sätzen berechnen, ohne externe Bibliotheken zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!