確定文本相似度
在自然語言處理(NLP) 中,確定兩個文本文檔之間的相似度至關重要。最常見的方法是將文件轉換為 TF-IDF 向量並計算餘弦相似度。
實作 TF-IDF 和餘弦相似度
在 Python 中,Gensim scikit-learn 套件提供了 TF-IDF 和餘弦相似度的實作。以下程式碼使用scikit-learn 將文件轉換為TF-IDF 向量併計算它們的成對相似度:
<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>
解釋結果
Pairwise_similarity 是稀疏的表示文檔之間相似度分數的矩陣。每個文件與其自身的相似度為 1,因此這些值被屏蔽掉。下面的程式碼尋找與給定輸入文件最相似的文件:
<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>
其他方法
Gensim 為文字相似性任務提供了附加選項。另一個值得探索的資源是[這個 Stack Overflow 問題](https://stackoverflow.com/questions/52757816/how-to-find-text-similarity- Between-two-documents)。
以上是如何確定 Python 中文字文檔之間的相似性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!