Настройка word2vec - KeyError: слово 'word' отсутствует в словаре

Я пытаюсь использовать word2vec, но при попытке сделать что-либо с любым словом выдает ошибку. Кажется, проблема с кодировкой, вот что я сделал:

Инициируйте word2vec:

import gensim, logging
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)

model = gensim.models.Word2Vec.load_word2vec_format('freebase-vectors-skipgram1000/knowledge-vectors-skipgram1000.bin', binary=True)
model.init_sims(replace=True)

Проверьте это немного:

print(model)  
# prints: Word2Vec(vocab=1422903, size=1000, alpha=0.025)

print(model.index2word[0])  
# prints: u'/m/0dgps15'
# I would expect a readable word, how to fix that?

Ошибка:

print(model.similarity('word', 'sound'))
# An error happen: KeyError: 'word'

Я тоже пробовал загрузить модель с binary=False, но при загрузке выдает ошибку.


person Guillaume Chevalier    schedule 20.07.2015    source источник
comment
Я вижу, что вы не приняли ответ? Вы столкнулись с какой-то проблемой?   -  person kampta    schedule 08.06.2017


Ответы (1)


Нет ничего плохого в использовании вами word2vec. Формат файла - двоичный (и его можно преобразовать в текст с помощью этой замечательной утилиты).

Вы скачали предварительно обученный векторный файл "сущности". Я рекомендую вам использовать векторы слов или фраз (также доступные на веб-сайте word2vec) из Google News < / а>.

[1] import gensim
[2] model = gensim.models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
[3] print(model.similarity('word', 'sound'))
0.152615140536
person kampta    schedule 24.07.2015