word2vec相似度计算代码
时间: 2023-12-14 10:31:44 浏览: 35
以下是使用word2vec计算相似度的Python代码示例:
```python
import warnings
warnings.filterwarnings('ignore')
from gensim import models
# 加载预训练好的模型
model = models.word2vec.Word2Vec.load('wiki.model')
# 计算两个单词的余弦相似度
word1 = '中国'
word2 = '美国'
similarity = model.wv.similarity(word1, word2)
print("'%s'和'%s'的余弦相似度为:%.4f" % (word1, word2, similarity))
# 计算两个句子的余弦相似度
sentence1 = '我喜欢吃苹果'
sentence2 = '他喜欢吃香蕉'
words_list1 = sentence1.split()
words_list2 = sentence2.split()
similarity = model.wv.n_similarity(words_list1, words_list2)
print("'%s'和'%s'的余弦相似度为:%.4f" % (sentence1, sentence2, similarity))
```
相关问题
word2vec计算文本相似度代码
这是一个简单的使用word2vec计算文本相似度的代码示例:
```python
from gensim.models import Word2Vec
import numpy as np
def get_word2vec_similarity(text1, text2, model_path):
# 加载预训练的Word2Vec模型
model = Word2Vec.load(model_path)
# 对文本进行分词
words1 = text1.strip().split()
words2 = text2.strip().split()
# 计算文本向量的平均值
vec1 = np.mean([model.wv[word] for word in words1 if word in model.wv], axis=0)
vec2 = np.mean([model.wv[word] for word in words2 if word in model.wv], axis=0)
# 计算余弦相似度
similarity = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
return similarity
```
示例中使用了gensim库中的Word2Vec模型,并计算了两个文本的余弦相似度。需要注意的是,为了使用该代码,需要先对文本进行分词,并且预训练的Word2Vec模型需要先通过gensim进行训练。
word2vec计算句子相似度代码
以下是使用Python中gensim库实现word2vec计算句子相似度的示例代码:
```python
from gensim.models import Word2Vec
import numpy as np
# 加载预训练的word2vec模型
model = Word2Vec.load("path/to/word2vec/model")
def sentence_vector(sentence):
"""
将句子转换为向量
"""
vectors = [model.wv[word] for word in sentence if word in model.wv.vocab]
return np.mean(vectors, axis=0)
def cosine_similarity(v1, v2):
"""
计算两个向量的余弦相似度
"""
return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
# 计算两个句子的相似度
sentence1 = "这是一个测试句子"
sentence2 = "这是另一个测试句子"
vector1 = sentence_vector(sentence1)
vector2 = sentence_vector(sentence2)
similarity = cosine_similarity(vector1, vector2)
print("两个句子的相似度为:", similarity)
```
注意:以上代码中的`path/to/word2vec/model`需要替换为你自己的word2vec模型路径。另外,如果句子中有些词不在模型的词汇表中,需要进行相应处理,例如忽略或使用另一种方式处理。