Параметр командной строки в word2vec

Я хочу использовать word2vec для создания собственного словесного векторного корпуса с текущей версией английской википедии, но не могу найти объяснение параметра командной строки для использования этой программы. В demp-скрипте вы можете найти следующее:
(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

И каковы наиболее подходящие значения, когда у меня есть текстовый корпус Википедии около 20 ГБ (файл.txt)? Я читал, что для больших корпусов вектор размером 300 или 500 будет лучше.

1 ответ

Значения параметров:

-train text8: корпус, на котором вы будете тренировать свою модель

-output vectors.bin: после изучения вашей модели сохраните ее в двоичном формате, чтобы загрузить и использовать позже

-cbow 1: активировать опцию "непрерывный пакет слов"

-size 200: вектор каждого слова будет представлен в 200 значениях

Для новых пользователей Word2vec вы можете использовать его реализацию в Python через gensim

Вы можете проверить main() word2vec.c и найти объяснение каждой опции, например, следующее

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");...`

Что касается наиболее подходящих значений, очень жаль, что я не знаю ответа, но вы можете найти некоторые подсказки из параграфа "Производительность" исходного сайта ( 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 
Другие вопросы по тегам