word2vec 是基于浅层神经网络的词向量工具,接下来介绍下该工具的安装与使用。
1. word2vec 工具安装
官网地址:Google Code Archive – Long-term storage for Google Code Project Hosting
百度网盘:https://pan.baidu.com/s/1uYFrjVqA5yt8xpJp0qUGFg 提取码: aa17
源码文件内容:
meng@macos trunk $ tree . |-- LICENSE |-- README.txt |-- compute-accuracy.c |-- demo-analogy.sh |-- demo-classes.sh |-- demo-phrase-accuracy.sh |-- demo-phrases.sh |-- demo-train-big-model-v1.sh |-- demo-word-accuracy.sh |-- demo-word.sh |-- distance.c |-- makefile |-- questions-phrases.txt |-- questions-words.txt |-- word-analogy.c |-- word2phrase |-- word2phrase.c |-- word2vec `-- word2vec.c 0 directories, 19 files
运行 make 命令来编译上面的源码,如果你是 mac 系统需要修改下*.c 文件中头文件导入进行如下修改:
# 将下面代码注释 #include <malloc.h> # 替换为下面代码 #include <stdlib.h>
编译成功之后, 会得到几个词向量相关工具:
- word-analogy:通过解决词汇类比问题来评估词向量质量
- word2phrase:用于将语料库中的词组合并成一个词语
- compute-accuracy:通过计算每个词的向量与其他词之间的余弦相似度来评估词向量质量
- distance:计算两个词的余弦相似度
- word2vec:根据输入语料训练词向量
2. word2vec 工具使用
./word2vec -train data.txt -output model.bin -size 100 -window 5 -sample 1e-4 -negative 5 -hs 0 -cbow 1 -iter 5 -min-count 5
data.txt
是输入的语料库文件model.bin
是输出的模型文件size
是向量的维度window
是窗口大小sample
是负采样的阈值negative
是负样本的个数hs
是层次softmax的设置(0表示使用负采样)cbow
表示是否使用CBOW模型(0表示使用skip-gram模型)iter
表示迭代次数,min-count
表示最小词频数
./word-analogy questions-words.txt model.bin
questions-words.txt
是用于评估的文件model.bin
是要评估的模型文件
./word2phrase -train data.txt -output data-phrases.txt -threshold 200 -debug 2
data.txt
是输入的语料库文件data-phrases.txt
是合并后的文件threshold
是合并阈值debug
是调试信息的级别
./compute-accuracy model.bin < questions-words.txt
model.bin
是要评估的模型文件questions-words.txt
是用于评估的文件
./distance model.bin word1 word2