Heim > Artikel > Backend-Entwicklung > Wie berechnet man die Kosinusähnlichkeit zwischen Sätzen in Python ohne externe Bibliotheken?
Berechnung der Kosinusähnlichkeit zwischen Satzzeichenfolgen
Angesichts zweier Zeichenketten, die Sätze darstellen, besteht die Notwendigkeit, deren Kosinusähnlichkeit zu berechnen, ohne externe Bibliotheken zu verwenden. Lassen Sie uns eine Python-Implementierung untersuchen, um dies zu erreichen.
Die Kosinusähnlichkeit misst den Winkel zwischen zwei Vektoren, die typischerweise Dokumente oder Sätze in einem Vektorraum darstellen. Ein hoher Kosinus-Ähnlichkeitswert zeigt an, dass die Sätze ähnlich sind, während ein niedriger Wert darauf hindeutet, dass sie sich unterscheiden.
Schritt 1: Tokenisierung und Vektorisierung
Um die Kosinus-Ähnlichkeit zu berechnen, haben wir muss die Sätze in Vektoren umwandeln. Wir verwenden einen einfachen wortbasierten Tokenizer, der die Sätze in Wörter aufteilt und deren Vorkommen zählt:
<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>
Schritt 2: Berechnung der Kosinusähnlichkeit
Die Kosinusähnlichkeitsformel ist:
cosine = (Numerator) / (Denominator)
wobei:
<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>
Schritt 3: Beispielverwendung
Mit den oben genannten Funktionen können wir die Kosinusähnlichkeit zwischen zwei Sätzen berechnen:
<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>
Die Ausgabe zeigt einen hohen Kosinus-Ähnlichkeitswert, was darauf hinweist, dass die Sätze ähnlich sind.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Kosinusähnlichkeit zwischen Sätzen in Python ohne externe Bibliotheken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!