Word2Vec的简单运用
以爬取的电影评论为例,主体思想是先用jieba对每段评论进行分词jieba.lcut(data)
,每处理一段评论用list.append()
方法一个个存入形成一个二维数组
import jieba
raw_word_list = []
with open('pinglun.txt','r',encoding = 'utf-8') as f:
line = f.readline()
while line:
if '\n' in line:
line = line.replace('\n','')
if ' ' in line:
line = line.replace(' ','')
if len(line)>0:
raw_words = jieba.lcut(line,cut_all=False)
raw_word_list.append(raw_words)
line = f.readline()
下载gensim库
pip install gensim
引入Word2Vec进行模型训练
#训练模型
from gensim.models import Word2Vec
model = Word2Vec(raw_word_list,min_count=1)
显示与’word’最接近的的十个词
# 计算余弦距离最接近'word'的topn个词
for key in model.wv.similar_by_word('萧炎', topn = 10):
print(key)
计算两个词的余弦相似度
# 基于词向量计算两个词的余弦相似度
model.wv.similarity('前者','后者')
计算两个集合的相似度
# 计算两个集合的相似度
model.n_similarity(list1,list2)
保存模型
model.save('xxx.word2vec.model')
加载模型
model = Word2Vec.load('xxx.word2vec.model')
在模型中增加词向量
model.train(cutdata, total_examples = model.corpus_count+'词个数', epochs = model.iter)
Word2Vec参数介绍