您的位置:首页 > 编程语言 > Python开发

【python + word2vec】计算语义相似度

2017-06-29 16:20 609 查看
本方法是使用python语言使用word2vec 的方法来进行语义相似度的计算、

1、首先配置python27下的word2vec的环境(gensim),如下所示:



2、训练文本

# -*- coding: utf-8 -*-
from gensim.models import word2vec
import logging
import numpy as np
# 主程序
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
sentences = word2vec.Text8Corpus(u"C:/Users/Administrator/Desktop/data/abstract.txt") # 加载语料
n_dim=200
model = word2vec.Word2Vec(sentences, size=n_dim, min_count=0,sg=1) # 训练skip-gram模型; 默
4000
认window=5
# 保存模型,以便重用
model.save("E:/pythonWorkSpace/work/deal_chinesepaper_data/model_data/abs0.model")
# 以一种C语言可以解析的形式存储词向量
model.save_word2vec_format("E:/model_data/abs0.model.bin", binary=True)
if __name__ == "__main__":
    pass
3、根据训练的结果计算语义相似度
# -*- coding: utf-8 -*-

from gensim.models import word2vec
import logging
import numpy as np

model = word2vec.Word2Vec.load("E:/model_data/abs0.model.bin")
y1 = model.similarity(u"社会媒体", u"社交网络")
print u"社会媒体和社交网络的相似度为:", y1
print "--------\n"
y2 = model.most_similar(u"霍克斯过程", topn=20) # 20个最相关的
print u"和社会媒体最相关的词有:\n"
for item in y2:
print item[0], item[1]
print "--------\n"
结果如下所示

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python word2vec