如何計算不同文本文檔之間的相似度?

Patricia Arquette
發布: 2024-10-23 06:48:29
原創
403 人瀏覽過

How Can I Calculate the Similarity Between Different Text Documents?

如何確定文本文檔之間的相似性

問題:您希望計算兩個文本文檔之間的相似性以評估它們的語義對齊。

解決方案:測量文件相似度的流行方法是將它們轉換為 TF-IDF(詞頻-逆文檔頻率)向量。 TF-IDF 根據文件中術語的出現頻率以及它們在語料庫中的稀有性來為術語分配權重。隨後,計算這些向量之間的餘弦相似度來量化它們的相似度。

實作:Python 的 Gensim 和 scikit-learn 為 TF-IDF 轉換提供了強大的實作。使用 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>
登入後複製

產生的pairwise_similarity 是一個稀疏矩陣,其中每個單元格表示相應文檔對之間的餘弦相似度。

解釋結果:稀疏矩陣的維度等於語料庫中文檔的數量。要提取與給定輸入文檔相似度最高的文檔,請利用NumPy 的np.fill_diagonal() 來屏蔽自相似性,並利用np.nanargmax() 來查找非自相似性最大值:

<code class="python">result_idx = np.nanargmax(arr[input_idx])
most_similar_doc = corpus[result_idx]</code>
登入後複製

請注意,argmax 是在屏蔽數組上執行的,以避免平凡的最大值1(每個文檔與其自身的相似度)。

以上是如何計算不同文本文檔之間的相似度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!