【python + word2vec】计算语义相似度
2017-06-29 16:20
609 查看
本方法是使用python语言使用word2vec 的方法来进行语义相似度的计算、
1、首先配置python27下的word2vec的环境(gensim),如下所示:
![](https://img-blog.csdn.net/20170629165706285?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjUyNjQ5NTE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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"
结果如下所示
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"
结果如下所示
相关文章推荐
- 对“基于语义依存的汉语句子相似度计算”的优化。
- 【java + word2vec】java版本的语义相似度计算
- CNN在NLP领域的应用(2) 文本语义相似度计算
- 若无云,岂有风——词语语义相似度计算简介
- 中文词语语义相似度计算算法概述
- 利用Hownet进行语义相似度计算的类
- 利用Hownet进行语义相似度计算的类(
- 科技术语语义相似度计算方法研究综述
- WordNet词网研究7——之JWS(Java Wordnet Similarity)语义相似度计算
- 深度学习解决NLP问题:语义相似度计算——DSSM
- 深度学习解决NLP问题:语义相似度计算
- WordNet词网研究7——之JWS(Java Wordnet Similarity)语义相似度计算
- 转载:基于《知网》的词汇语义相似度计算
- 基于语义依存的汉语句子相似度计算.JPG
- 2017年计算语义相似度最新论文,击败了siamese lstm,非监督学习
- 句子语义相似度计算
- 深度学习解决NLP问题:语义相似度计算
- 词语语义相似度计算简介
- 若无云,岂有风——词语语义相似度计算简介
- 使用DL4J读取词向量并计算语义相似度