Bestimmung der Textähnlichkeit
Bei der Verarbeitung natürlicher Sprache (NLP) ist die Bestimmung der Ähnlichkeit zwischen zwei Textdokumenten von entscheidender Bedeutung. Der gebräuchlichste Ansatz besteht darin, die Dokumente in TF-IDF-Vektoren umzuwandeln und die Kosinusähnlichkeit zu berechnen.
Implementierung von TF-IDF und Kosinusähnlichkeit
In Python das Gensim und scikit-learn-Pakete bieten Implementierungen von TF-IDF und Kosinusähnlichkeit. Der folgende Code wandelt mithilfe von scikit-learn Dokumente in TF-IDF-Vektoren um und berechnet ihre paarweise Ähnlichkeit:
<code class="python">from sklearn.feature_extraction.text import TfidfVectorizer # Load documents documents = [open(f).read() for f in text_files] # Create TF-IDF vectorizer tfidf = TfidfVectorizer().fit_transform(documents) # Compute pairwise similarity pairwise_similarity = tfidf * tfidf.T</code>
Interpretation der Ergebnisse
Pairwise_similarity ist eine Sparse Matrix, die die Ähnlichkeitswerte zwischen Dokumenten darstellt. Die Ähnlichkeit jedes Dokuments mit sich selbst beträgt 1, daher werden diese Werte ausgeblendet. Der folgende Code findet das Dokument, das einem bestimmten Eingabedokument am ähnlichsten ist:
<code class="python">import numpy as np # Input document index input_idx = corpus.index(input_doc) # Mask out diagonal and find the most similar document np.fill_diagonal(pairwise_similarity.toarray(), np.nan) result_idx = np.nanargmax(pairwise_similarity[input_idx]) # Get the most similar document similar_doc = corpus[result_idx]</code>
Andere Methoden
Gensim bietet zusätzliche Optionen für Textähnlichkeitsaufgaben. Eine weitere Ressource, die es zu erkunden gilt, ist [diese Frage zum Stapelüberlauf](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity-between-two-documents).
Das obige ist der detaillierte Inhalt vonWie können Sie die Ähnlichkeit zwischen Textdokumenten in Python bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!