2013-10-11 9 views
7

Sto provando a iniziare caricando i file .bin pretrained dal sito google word2vec (freebase-vectors-skipgram1000.bin.gz) nell'implementazione gensim di word2vec. Il modello viene caricato bene,Lavorare con google word2vec .bin file in gensim python

utilizzando ..

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

e crea un

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

ma quando ho eseguito la funzione più simile. Non riesce a trovare le parole nel vocabolario. Il mio codice di errore è sotto

Qualche idea su dove sto andando male?

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

risposta

7

Le parole' ...../libera ....- en.bin' hanno la forma di

it/boardwalk_chapel it/mutsu_munemitsu it/Goffstown it/yaw_axis it/john_e_fogarty_international_center it/francielle_manoel_alberto it/shinji_harada

Così, quando si guarda per 'ragazza' non è lì

2

Per espandere un po 'la risposta di Sergio, le "parole" sono in realtà identificativi di Freebase, quindi "ragazza" è rappresentata da /en/girl (per freebase-vectors-skipgram1000-en.bin.gz) o dal suo equivalente MID /m/05r655 (per Freebase-vettori-skipgram1000.bin.gz)

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

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

Problemi correlati