Heim  >  Artikel  >  Backend-Entwicklung  >  Wie misst man die Ähnlichkeit zwischen Textdokumenten?

Wie misst man die Ähnlichkeit zwischen Textdokumenten?

DDD
DDDOriginal
2024-10-23 06:55:021041Durchsuche

How to Measure the Similarity Between Text Documents?

Bestimmen der Ähnlichkeit zwischen Textdokumenten

Messen der Dokumentähnlichkeit

Um die Ähnlichkeit zwischen zwei Textdokumenten im NLP festzustellen, Der Standardansatz besteht darin, die Dokumente in TF-IDF-Vektoren umzuwandeln. Diese Vektoren werden dann zur Berechnung der Kosinusähnlichkeit verwendet, einer Metrik, die üblicherweise in Informationsabrufsystemen verwendet wird. Ausführlichere Informationen finden Sie in „Introduction to Information Retrieval“, einem online verfügbaren E-Book.

Implementierung in Python

Python stellt Bibliotheken wie Gensim bereit und scikit-learn, die die Berechnung von TF-IDF und Kosinusähnlichkeit erleichtern. In scikit-learn umfasst die Berechnung der Kosinusähnlichkeit zwischen Dokumenten die Verwendung ihrer TF-IDF-Vektoren:

<code class="python">from sklearn.feature_extraction.text import TfidfVectorizer

documents = [open(f).read() for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)
pairwise_similarity = tfidf * tfidf.T</code>

Einfache Textdokumente können direkt verarbeitet werden:

<code class="python">corpus = ["I'd like an apple", "An apple a day keeps the doctor away"]
tfidf = TfidfVectorizer(min_df=1, stop_words="english").fit_transform(corpus)
pairwise_similarity = tfidf * tfidf.T</code>

Interpretieren der Ergebnisse

Die resultierende spärliche Matrix „pairwise_similarity“ ist quadratisch. Um das Dokument zu identifizieren, das einem bestimmten Dokument am ähnlichsten ist, können Sie die argmax-Funktion von NumPy verwenden, nachdem Sie die diagonalen Elemente maskiert haben (was Selbstähnlichkeit darstellt).

<code class="python">import numpy as np

arr = pairwise_similarity.toarray()
np.fill_diagonal(arr, np.nan)
input_doc = "Document to compare"
input_idx = corpus.index(input_doc)
result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>

Das obige ist der detaillierte Inhalt vonWie misst man die Ähnlichkeit zwischen Textdokumenten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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