Проверка точности word2vec в gensim

В настоящее время я использую gensim, чтобы воспроизвести результат примера, предоставленного Google. здесь

Проблема в том, что проверка точности gensim не совпадает с результатами Google.

Например, точность определения стран-столиц в Google составляет 82,02%, лучший результат генерации различных наборов параметров - 64,4%. Здесь большой пробел.

Вот фрагмент кода поезда word2vec и точности с помощью gensim

sentences = word2vec.Text8Corpus('./text8')
model = word2vec.Word2Vec(sentences, size=200, workers=12, min_count=5, sg=0, window=8, iter=15, sample=1e-4, negative=25)
model.accuracy("./questions-words.txt")[enter image description here][2]

Фрагмент кода демонстрации Google без изменений каких-либо параметров

 ./demo-word-accuracy.sh

Детали сравнения точности

Кто-нибудь может помочь в этом?


person Lin    schedule 13.12.2015    source источник


Ответы (1)


Попробуйте alpha=0.05 и cbow_mean=1. Код word2vec.c автоматически переходит к начальным значениям по умолчанию в режиме CBOW, но gensim этого не делает. Чтобы избежать путаницы, в будущем gensim может более точно соответствовать значениям по умолчанию word2vec.c: https://github.com/piskvorky/gensim/issues/534

person gojomo    schedule 14.12.2015
comment
Спасибо за помощь! он решает мою проблему, добавляя alpha = 0.05 & cbow_mean = 1. Очень полезно просмотреть groups.google.com/forum/# ! msg / gensim / ggCHGncd5rU / Z_pQDD69AAAJ. Однако на обучение этой модели у меня уходит 560 секунд, что намного медленнее, чем версия Google (385 секунд). Вы знаете, как ее ускорить? - person Lin; 14.12.2015