2013-10-11 10 views
7

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

используя ..

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 

ответ

7

слова в»...../свободный ....- en.bin' имеют вид

ан/boardwalk_chapel ан/mutsu_munemitsu ан/Goffstown ан/yaw_axis ан/john_e_fogarty_international_center ан/francielle_manoel_alberto ан/shinji_harada

Итак, когда вы смотрите на 'девочка' не существует

2

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

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

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