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

本方法是使用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模型; 默认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"
结果如下所示


  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值