用python的word2vec计算中文文本相似性
时间: 2024-05-24 21:07:52 浏览: 12
使用Python的Word2Vec计算中文文本相似性,可以分为以下几个步骤:
1. 安装所需的库:gensim、jieba、numpy和scipy。
2. 加载语料库,例如使用gensim库的LineSentence方法读入语料库。
3. 使用jieba库对语料进行分词处理,并对停用词进行过滤。
4. 使用Word2Vec训练模型,并保存模型。
5. 加载训练好的模型,使用model.similarity方法计算两个文本之间的相似度。
下面是一个简单的代码示例:
```
import jieba
from gensim.models import Word2Vec
import numpy as np
from scipy import spatial
# 加载语料库
sentences = []
with open('corpus.txt', 'r', encoding='utf-8') as f:
for line in f:
sentences.append(list(jieba.cut(line.strip())))
# 训练模型
model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
model.save('word2vec.model')
# 加载模型
model = Word2Vec.load('word2vec.model')
# 计算文本相似度
text1 = '我爱中国'
text2 = '我喜欢中国'
vec1 = np.mean([model[word] for word in text1 if word in model], axis=0)
vec2 = np.mean([model[word] for word in text2 if word in model], axis=0)
similarity = 1 - spatial.distance.cosine(vec1, vec2)
print(similarity)
# 相关问题:
# 1. Word2Vec是什么?
# 2. 如何使用Python进行中文分词?
# 3. 什么是停用词过滤?
```