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!