word2vec计算文本相似度的python代码示例
时间: 2023-09-07 11:17:32 浏览: 141
以下是一个使用word2vec计算文本相似度的Python代码示例:
```python
from gensim.models import Word2Vec
import numpy as np
# 加载训练好的word2vec模型
model = Word2Vec.load('path/to/word2vec/model')
# 定义计算文本相似度的函数
def text_similarity(text1, text2):
# 对文本进行分词
words1 = text1.split()
words2 = text2.split()
# 计算两个文本的词向量平均值
vec1 = np.mean([model[word] for word in words1 if word in model], axis=0)
vec2 = np.mean([model[word] for word in words2 if word in model], axis=0)
# 计算两个文本的余弦相似度
sim = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
return sim
```
你觉得这个代码示例怎么样呢?
相关问题
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进行训练。
用python写 使用Word2Vec模型计算文本相似度
首先,需要安装 `gensim` 库,它提供了 Word2Vec 模型的实现和相关的工具函数。
接下来,我们需要将文本转换成词向量,可以使用 `gensim.models.Word2Vec` 类来训练一个 Word2Vec 模型,然后使用 `model.wv[word]` 方法将词转换成词向量。最后,可以使用余弦相似度计算两个文本的相似度。
下面是一个示例代码:
```python
from gensim.models import Word2Vec
import numpy as np
# 训练 Word2Vec 模型
sentences = [["this", "is", "a", "sentence"], ["this", "is", "another", "sentence"]]
model = Word2Vec(sentences, size=100, window=5, min_count=1, workers=4)
# 计算文本相似度
def text_similarity(text1, text2):
# 将文本转换成词向量
vector1 = np.mean([model.wv[word] for word in text1], axis=0)
vector2 = np.mean([model.wv[word] for word in text2], axis=0)
# 计算余弦相似度
similarity = np.dot(vector1, vector2) / (np.linalg.norm(vector1) * np.linalg.norm(vector2))
return similarity
# 测试
text1 = ["this", "is", "a", "sentence"]
text2 = ["this", "is", "another", "sentence"]
similarity = text_similarity(text1, text2)
print("文本相似度:", similarity)
```
在这个示例中,我们使用两个句子训练了一个 Word2Vec 模型,然后计算了这两个句子的相似度。你可以将 `text1` 和 `text2` 替换成你要比较的文本即可。
阅读全文