word2vec的c语言版本运行方法

先介绍官方C语言版的训练方法。

对于这个方法,我认为几个词可以概括:简单、快速

1.安装word2vec工具C语言版

项目地址:http://word2vec.googlecode.com/svn/trunk/
 

注:这个需要svn工具来下载。如果实在下载不到,可以上网找下其他资源

下载好之后将文件放到指定文件夹中,使用makefile安装,即运行:“make”

安装好之后如下图:

可以看到有编译好的"word2vec"文件了,接下来就可以训练啦~

2.训练词向量

将分好词的训练语料进行训练,假定我语料名称为star_games_words.txt且在word2vec目录中。输入命令:

./word2vec -train seg_star_games_words.txt -output star_games_vectors.bin -cbow 0 -size 5 -window 1 -negative 0 -hs 1 -sample 1e-3 -threads 12 -binary 1

以上命令表示的是输入文件是seg_star_games_words.txt,

输出文件是star_games_vectors.bin,

不使用cbow模型,默认为Skip-Gram模型。

每个单词的向量维度是5,

训练的窗口大小为5就是考虑一个词前五个和后五个词语(实际代码中还有一个随机选窗口的过程,窗口大小<=5)。

不使用NEG方法,使用HS方法。

-sampe指的是采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。

-binary为1指的是结果二进制存储,为0是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)

除了以上命令中的参数,word2vec还有几个参数对我们比较有用比如-alpha设置学习速率,默认的为0.025.–min-count设置最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃。-classes设置聚类个数,看了一下源码用的是k-means聚类的方法。

训练出来如果保存的是txt文件,大概是这个样子:

3.测试近邻的词

得到模型后,可以用命令  ./distance data/review.model 测试单词的最近邻。 这个要求刚才生成的模型是保存成二进制的。



作者:MiracleJQ
链接:https://www.jianshu.com/p/aa025f0919a0
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/lrt366/article/details/88386439