Работа с .bin файлами google word2vec в gensim python

Я пытаюсь начать с загрузки предварительно обученных .bin-файлов с сайта google word2vec (freebase-vectors-skipgram1000.bin.gz) в реализацию word2vec gensim. Модель загружается нормально,

с использованием ..

model = word2vec.Word2Vec.load_word2vec_format('...../free....-en.bin', binary= True)

и создает

>>> print model
<gensim.models.word2vec.Word2Vec object at 0x105d87f50>

но когда я запускаю самую похожую функцию. Он не может найти слова в словаре. Мой код ошибки ниже.

Есть идеи, где я ошибаюсь?

>>> model.most_similar(['girl', 'father'], ['boy'], topn=3)
2013-10-11 10:22:00,562 : WARNING : word ‘girl’ not in vocabulary; ignoring it
2013-10-11 10:22:00,562 : WARNING : word ‘father’ not in vocabulary; ignoring it
2013-10-11 10:22:00,563 : WARNING : word ‘boy’ not in vocabulary; ignoring it
Traceback (most recent call last):
File “”, line 1, in
File “/....../anaconda/python.app/Contents/lib/python2.7/site-packages/gensim-0.8.7/py2.7.egg/gensim/models/word2vec.py”, line 312, in most_similar
raise ValueError(“cannot compute similarity with no input”)
ValueError: cannot compute similarity with no input

person user2870492    schedule 11.10.2013    source источник


Ответы (2)


Слова в '..... / free ....- en.bin' имеют форму

en / boardwalk_chapel en / mutsu_munemitsu en / goffstown en / yaw_axis en / john_e_fogarty_international_center en / francielle_manoel_alberto en / shinji_harada

Поэтому, когда вы ищете "девушку", ее там нет

person Sergio    schedule 20.11.2013

Чтобы немного расширить ответ Серджио, «слова» на самом деле являются идентификаторами Freebase, поэтому «девушка» представлена ​​либо /en/girl (для freebase-vectors-skipgram1000-en.bin.gz), либо его MID-эквивалентом /m/05r655 (для freebase-vectors -skipgram1000.bin.gz)

https://www.freebase.com/m/05r655

https://www.freebase.com/en/girl

person Tom Morris    schedule 10.06.2015