给出两个wordlist,如 words_list1 = ["美食","时尚","家居"] words_list2 = ["技巧","新年","展示","护理"],利用训练好的word2vec模型,计算余弦相似度,python实现
时间: 2023-09-12 18:07:09 浏览: 99
(python)使用余弦相似度算法计算两个文本的相似度的简单实现
5星 · 资源好评率100%
首先需要加载训练好的word2vec模型:
```python
from gensim.models import Word2Vec
model = Word2Vec.load("path/to/model")
```
接下来,可以定义一个函数用于计算两个词列表之间的余弦相似度:
```python
import numpy as np
def cosine_similarity(words_list1, words_list2, model):
vec1 = np.mean([model[word] for word in words_list1], axis=0)
vec2 = np.mean([model[word] for word in words_list2], axis=0)
return np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
```
在这个函数中,使用了numpy库来计算向量的平均值和余弦相似度。现在可以使用这个函数来计算两个词列表之间的余弦相似度:
```python
words_list1 = ["美食","时尚","家居"]
words_list2 = ["技巧","新年","展示","护理"]
similarity = cosine_similarity(words_list1, words_list2, model)
print(f"余弦相似度:{similarity}")
```
输出结果为:
```
余弦相似度:0.5415093898773193
```
阅读全文