原创实在不易,欢迎大家关注我微信公众号:阳洋up
重要参考博客:word2vec中文相似词计算和聚类的使用说明及c语言源码_杨秀璋的专栏-CSDN博客_word2vec词语相似度
https://www.cnblogs.com/Newsteinwell/p/6034747.html
1、下载地址及安装
官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/(如果失效,可以直接下载我分享的压缩包)
1) 半自动安装:先下载http://pypi.python.org/pypi/jieba/,解压后运行 `sudo python setup.py install
2) 运行 make编译word2vec工具
3) 再运行示例脚本:./demo-word.sh
2、中文语料
语料是我从地球物理领域里面收集的,内容主要是关于地球物理反演的简单介绍,字数2000+。
Word2vec的输入是分好词的文本,我用的分词工具是jieba,用到的命令如下:
jieba分词程序:
import jieba
import codecs
jieba.load_userdict("newdict.txt") //引入自定义词典,如果不需要,可不考虑
with open('geophysics.txt', 'r') as f: //geophysics.txt文件是jieba的输入文本
for line in f:
seg =jieba.cut(line.strip(), cut_all = False)
s='/'.join(seg)
m=list(s)
withopen('geophysicsdone.txt','a+')as f: //geophysicsdone.txt文本是分词后的输出文本
for word in m:
f.write(word.encode('utf-8')) // utf-8是编辑格式
3、word2vec中将文本进行训练(计算相似距离)
具体命令解释如下:
Result_Country.txt文本是jieba的输出文本
vectors.bin文件是训练后的输出
4、结果展示
1)运行 ./distancevectors.bin
计算相似距离的3个例子:
输入词:地球物理
输入词:研究
输入词:地震波
2)运行 ./word2vec -train test.txt -output vec.txt-size 50 -window 5 -sample 1e-4 -negative 5 -hs 0 -binary 0 -cbow 1 -iter 3
将词都转换成向量:
命令中的参数意义请参照:Word2Vec的参数解释_小白_努力-CSDN博客_word2vec参数
2维:
20维: