Im Kontext der Verarbeitung natürlicher Sprache ist die Berechnung der Kosinusähnlichkeit von wesentlicher Bedeutung für die Messung der Textähnlichkeit zwischen Dokumenten. Während externe Bibliotheken wie tf-idf-cosine diese Aufgabe erleichtern können, ist es auch möglich, die Kosinusähnlichkeit manuell zu berechnen, ohne auf solche Abhängigkeiten angewiesen zu sein.
Kosinusähnlichkeitsübersicht
Kosinus Ähnlichkeit quantifiziert den Winkel zwischen zwei Vektoren, die die Texte darstellen. Eine höhere Kosinusähnlichkeit weist auf einen kleineren Winkel hin, was eine größere Ähnlichkeit zwischen den Texten impliziert. Sie wird anhand des Skalarprodukts der normalisierten Vektoren dividiert durch ihre Größen berechnet.
Kosinusähnlichkeit manuell implementieren
Um die Kosinusähnlichkeit manuell zu berechnen, definieren wir die folgenden Schritte:
Code-Implementierung
Unten ist eine Python-Implementierung der manuellen Kosinus-Ähnlichkeitsberechnung:
<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 vec1]) sum2 = sum([vec2[x] ** 2 for x in vec2]) denominator = math.sqrt(sum1) * math.sqrt(sum2) if not denominator: return 0.0 else: return numerator / denominator def text_to_vector(text): words = WORD.findall(text) return Counter(words) 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>
Ergebnis
Dieser Code wird wie folgt ausgeführt:
Cosine: 0.861640436855
Dieser Wert gibt an eine hohe Kosinus-Ähnlichkeit zwischen den beiden Sätzen, was bestätigt, dass sie textlich ähnlich sind.
Weitere Überlegungen
Dieser manuelle Ansatz bietet zwar eine grundlegende Implementierung, kann jedoch durch erweitert werden :
Das obige ist der detaillierte Inhalt vonWie können Sie die Kosinusähnlichkeit zwischen zwei Sätzen ohne externe Bibliotheken berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!