Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie die Ähnlichkeit zwischen Textdokumenten in Python bestimmen?

Wie können Sie die Ähnlichkeit zwischen Textdokumenten in Python bestimmen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 06:52:02126Durchsuche

How Can You Determine the Similarity Between Text Documents in Python?

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!

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