word2vec中的命令行参数

时间:2015-06-08 13:14:50

标签: nlp word2vec language-model

我想用word2vec用英文维基百科的当前版本创建我自己的单词向量语料库,但我找不到使用该程序的命令行参数的解释。在demp-script中,您可以找到以下内容:
(text8是2006年的旧维基百科语料库)

make
if [ ! -e text8 ]; then
wget http://mattmahoney.net/dc/text8.zip -O text8.gz
gzip -d text8.gz -f
fi
time ./word2vec -train text8 -output vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15
./distance vectors.bin

命令行参数的含义是什么:
vectors.bin -cbow 1 -size 200 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15

当我有一个大约20GB的维基百科文本语料库(.txt文件)时,最合适的值是什么?我读到,对于更大的语料库,矢量大小为300或500会更好。

2 个答案:

答案 0 :(得分:2)

你可以检查word2vec.c的main(),并且可以找到如下所示的每个选项的说明

printf("WORD VECTOR estimation toolkit v 0.1c\n\n");
printf("Options:\n");
printf("Parameters for training:\n");
printf("\t-train <file>\n");
printf("\t\tUse text data from <file> to train the model\n");...`

关于最合适的价值观,非常抱歉,我不知道答案,但您可以从段落中找到一些提示&#39; Performance&#39;源站点(Word2Vec - Google Code)。 它说,

 - architecture: skip-gram (slower, better for infrequent words) vs CBOW (fast)
 - the training algorithm: hierarchical softmax (better for infrequent words) vs negative sampling (better for frequent words, better with low dimensional vectors)
 - sub-sampling of frequent words: can improve both accuracy and speed for large data sets (useful values are in range 1e-3 to 1e-5)
 - dimensionality of the word vectors: usually more is better, but not always
 - context (window) size: for skip-gram usually around 10, for CBOW around 5 

答案 1 :(得分:2)

参数含义:

x[2:4][x[5:7] == 7] <- NA x # a b c d b2 c2 d2 #1 1 2 3 NA 5 6 7 #2 2 3 NA 5 6 7 8 #3 3 NA 5 6 7 8 9 text8:您将在其上训练模型的语料库

-train vectors.bin:学习完模型后,将其保存为二进制格式以供以后加载和使用

-output 1:激活“连续词袋”选项

-cbow 200:每个单词的向量将以200个值表示

对于word2vec的新用户,您可以通过-size在python中使用它的实现