2013-10-11 7 views
7

Ich versuche, durch das Laden der vortrainierten .bin-Dateien von der Website google word2vec (freebase-vectors-skipgram1000.bin.gz) in die Gensim-Implementierung von word2vec zu starten. Das Modell lädt fein,Arbeiten mit google word2vec .bin-Dateien in Gensim Python

mit ..

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

und schafft ein

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

aber wenn ich laufe die ähnlichste Funktion. Es kann die Wörter im Vokabular nicht finden. Mein Fehlercode ist unten.

Irgendwelche Ideen, wo ich falsch liege?

>>> 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 

Antwort

7

Die Wörter‘...../Frei ....- en.bin' haben die Form von

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

Also, wenn Sie für 'Mädchen' aussehen ist es nicht da

2

Um ein wenig auf Sergio Antwort zu erweitern, die "Wörter" sind eigentlich Freebase-Kennungen, so "Mädchen" wird entweder durch /en/girl (für freebase-Vektoren-skipgram1000-en.bin.gz) oder seine MID entspricht /m/05r655 (für freie Base-Vektoren-skipgram1000.bin.gz)

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

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