Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Ähnlichkeit zwischen verschiedenen Textdokumenten berechnen?

Wie kann ich die Ähnlichkeit zwischen verschiedenen Textdokumenten berechnen?

Patricia Arquette
Freigeben: 2024-10-23 06:48:29
Original
468 Leute haben es durchsucht

How Can I Calculate the Similarity Between Different Text Documents?

So bestimmen Sie die Ähnlichkeit zwischen Textdokumenten

Problem: Sie möchten die Ähnlichkeit zwischen zwei Textdokumenten berechnen, um deren semantische Ausrichtung zu beurteilen.

Lösung: Der vorherrschende Ansatz zur Messung der Dokumentenähnlichkeit besteht darin, sie in TF-IDF-Vektoren (Term Frequency-Inverse Document Frequency) umzuwandeln. TF-IDF weist Begriffen Gewichtungen zu, basierend auf ihrer Häufigkeit innerhalb des Dokuments und ihrer Seltenheit im gesamten Korpus. Anschließend wird die Kosinusähnlichkeit zwischen diesen Vektoren berechnet, um ihre Ähnlichkeit zu quantifizieren.

Implementierung: Pythons Gensim und scikit-learn bieten robuste Implementierungen für TF-IDF-Transformationen. Mit scikit-learn:

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

documents = [open(f).read() for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)

# Cosine similarity is calculated automatically
pairwise_similarity = tfidf * tfidf.T</code>
Nach dem Login kopieren

Die resultierende „pairwise_similarity“ ist eine spärliche Matrix, in der jede Zelle die Kosinusähnlichkeit zwischen den entsprechenden Dokumentpaaren darstellt.

Ergebnisse interpretieren: Die Die Größe einer dünn besetzten Matrix entspricht der Anzahl der Dokumente im Korpus. Um das Dokument mit der höchsten Ähnlichkeit zu einem bestimmten Eingabedokument zu extrahieren, verwenden Sie np.fill_diagonal() von NumPy, um die Selbstähnlichkeit zu maskieren, und np.nanargmax(), um das Maximum der Nicht-Selbstähnlichkeit zu finden:

<code class="python">result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>
Nach dem Login kopieren

Beachten Sie, dass argmax für das maskierte Array ausgeführt wird, um das triviale Maximum von 1 (die Ähnlichkeit jedes Dokuments mit sich selbst) zu vermeiden.

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

Quelle:php
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