Wie berechnet man die Kosinusähnlichkeit zwischen Satzzeichenfolgen in Python ohne externe Bibliotheken?

Linda Hamilton
Freigeben: 2024-10-31 14:30:02
Original
961 Leute haben es durchsucht

How to Calculate Cosine Similarity Between Sentence Strings in Python Without External Libraries?

Berechnung der Kosinusähnlichkeit von Satzzeichenfolgen ohne externe Bibliotheken

Um die Kosinusähnlichkeit zwischen zwei Textzeichenfolgen ohne externe Module zu berechnen, eine einfache Python-Implementierung eingesetzt werden kann. In diesem Prozess wird die grundlegende Kosinus-Ähnlichkeitsformel verwendet:

cos(θ) = (A · B) / (||A|| · ||B||)
Nach dem Login kopieren

Wobei:

  • A und B sind zwei Vektoren, die die Sätze darstellen.
  • A · B ist das Skalarprodukt der Vektoren A und B.
  • ||A|| und ||B|| sind die jeweiligen Größen der Vektoren A und B.

Implementierung

Der folgende Python-Code bietet eine praktische Implementierung dieser Formel:

<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>
Nach dem Login kopieren

Um diesen Code zu verwenden, konvertieren Sie die Satzzeichenfolgen mit der Funktion text_to_vector in Vektoren und berechnen Sie dann die Kosinusähnlichkeit mit der Funktion get_cosine:

<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>
Nach dem Login kopieren

Dadurch wird die Kosinusähnlichkeit zwischen den beiden Satzzeichenfolgen ausgegeben. Beachten Sie, dass die TF-IDF-Gewichtung in dieser Implementierung nicht enthalten ist, aber hinzugefügt werden kann, wenn ein geeigneter Korpus verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Kosinusähnlichkeit zwischen Satzzeichenfolgen in Python ohne externe Bibliotheken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!