python中gensim计算文本相似度
时间: 2024-01-03 15:51:17 浏览: 115
gensim是一款高效的自然语言处理工具,在其中计算文本相似度非常简单。下面是一个示例代码:
```python
from gensim import corpora, models, similarities
# 创建语料库
documents = ["This is the first document", "This is the second document", "And this is the third one", "Is this the first document?"]
texts = [[word for word in document.lower().split()] for document in documents]
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
# 计算相似度
tfidf = models.TfidfModel(corpus)
sims = similarities.MatrixSimilarity(tfidf[corpus])
# 输出结果
query = "This is the first document"
query_bow = dictionary.doc2bow(query.lower().split())
query_tfidf = tfidf[query_bow]
sims_list = sims[query_tfidf]
print(sims_list)
```
在上述代码中,我们首先创建了一个包含4个文档的语料库。接着,我们使用gensim中的TfidfModel将语料库转换为TF-IDF向量,并使用MatrixSimilarity计算相似度矩阵。最后,我们输入一个查询文本,并将其转换为TF-IDF向量,然后使用sims矩阵计算其与其他文本的相似度。输出的结果是一个包含4个元素的列表,每个元素表示一个文本与查询文本的相似度得分。
阅读全文