确定文本相似度
在自然语言处理 (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中文网其他相关文章!