使用python的gensim的doc2vec实现两个文本相似度计算代码
时间: 2024-02-06 13:39:17 浏览: 88
以下是使用Python的gensim库实现两个文本相似度计算的代码:
```python
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
from nltk.tokenize import word_tokenize
# 训练Doc2Vec模型
docs = ["This is a sentence", "This is another sentence", "This is yet another sentence"]
tagged_data = [TaggedDocument(words=word_tokenize(doc.lower()), tags=[str(i)]) for i, doc in enumerate(docs)]
model = Doc2Vec(tagged_data, vector_size=20, window=2, min_count=1, epochs=100)
# 计算相似度
text1 = "This is a sentence"
text2 = "This is another sentence"
vector1 = model.infer_vector(word_tokenize(text1.lower()))
vector2 = model.infer_vector(word_tokenize(text2.lower()))
similarity = model.docvecs.similarity_unseen_docs(model, vector1, vector2, alpha=1, min_alpha=0.0001, steps=5)
print("相似度为:", similarity)
```
在上述代码中,我们首先使用gensim库的Doc2Vec模型对三个文本进行训练。接着,我们用infer_vector函数得到两个文本的向量表示,并使用similarity_unseen_docs函数计算它们的相似度。
阅读全文