word2vec词向量训练-C语言版

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

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

1.安装word2vec工具C语言版

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

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

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

安装好之后如下图:


word2vec词向量训练-C语言版_第1张图片

可以看到有编译好的"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文件,大概是这个样子:


word2vec词向量训练-C语言版_第2张图片

3.测试近邻的词


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

你可能感兴趣的:(word2vec词向量训练-C语言版)