我想用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会更好。
答案 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中使用它的实现