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>
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>
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!