2017-02-26 6 views
0

저는 PyCharm을 사용하고 Word2Vec을 사용하여 단어에 대해 교육 한 모델을로드하고 있습니다. 나는 두 단어 사이의 유사성을 확인했지만,이 오류가 얻을 :Word2Vec 유사 기능이 작동하지 않습니다.

# Loading model trained on words 
    model = word2vec.Word2Vec.load('models/text8.model') 

    # Loading model enhanced with phrases (2-grams) 
    model_phrase = word2vec.Word2Vec.load('models/text8.phrase.model') 

    # Words that are similar are close in the sense of the cosine similarity. 
    sim = model.similarity('woman', 'man') 
    print 'Printing word similarity between "woman" and "man" : {0}'.format(sim) 

Traceback (most recent call last): 
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\pydevd.py", line 1596, in <module> 
globals = debugger.run(setup['file'], None, None, is_module) 
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.3.2\helpers\pydev\pydevd.py", line 974, in run 
pydev_imports.execfile(file, globals, locals) # execute the script 
File "C:/Users/XXX/Desktop/code/word2vec/embedding_word2vec_students.py", line 144, in <module> 
sim = model.similarity('woman', 'man') 
File "C:\Users\XXX\Anaconda3\lib\site-packages\gensim\models\word2vec.py", line 1194, in similarity 
return self.wv.similarity(w1, w2) 
File "C:\Users\XXX\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 587, in similarity 
return dot(matutils.unitvec(self[w1]), matutils.unitvec(self[w2])) 
File "C:\Users\XXX\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 567, in __getitem__ 
return self.word_vec(words) 
File "C:\Users\XXX\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 271, in word_vec 
return self.syn0[self.vocab[word].index] 
IndexError: list index out of range 

내가 디버깅, 문제가 함수 word_vec에서이 라인에서 오는 것 같습니다 :

return self.syn0[self.vocab[word].index] 

그러나이 I 왜 내가 이걸 얻고 있는지 전혀 모른다. 이 일을 도와 주시면 미리 감사드립니다.

+1

다음은 각각 무엇을 반환합니까? (1)'model.wv [ 'man']'; (2)'model.wv [ '여자']'; (3)'len (model.wv.syn0)'; (4)'model.wv.vocab [ 'man']. index'; (5)'model.wv.vocab [ '여자']. 인덱스'? – gojomo

답변

0

'여성'또는 '남자'와 같은 소리는 어휘의 일부가 아닐 수도 있습니다. 먼저 검사 할 모델은로드중인 모델에서 발생하는지 여부입니다.