Heim > Artikel > Backend-Entwicklung > Wie berechnet man die Kosinusähnlichkeit zweier Textzeichenfolgen in reinem Python?
So berechnen Sie die Kosinusähnlichkeit zweier Textzeichenfolgen ohne externe Bibliotheken
In der Textanalyse ist die Kosinusähnlichkeit ein Maß für die Ähnlichkeit zwischen zwei Texte basierend auf ihrem gemeinsamen Wortschatz. Während zur Berechnung dieses Maßes externe Bibliotheken verwendet werden können, ist es auch möglich, eine einfache reine Python-Funktion zu implementieren:
<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>
Diese Funktion verwendet zwei Vektoren vec1 und vec2 als Eingabe und berechnet ihre Kosinusähnlichkeit. So können Sie damit zwei Textzeichenfolgen text1 und text2 vergleichen:
<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
Dies zeigt an, dass die beiden Textzeichenfolgen sehr ähnlich sind.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Kosinusähnlichkeit zweier Textzeichenfolgen in reinem Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!