2017-08-27 6 views
2

自分の語彙でword2vecを練習しているうちにエラーが発生します。私はまた、なぜ起こっているのか分からない。自分のボキャブでword2vecを教える方法

コード:

from gensim.models import word2vec 
import logging 
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) 

sentences = word2vec.LineSentence('test_data') 

model = word2vec.Word2Vec(sentences, size=20) 
model.build_vocab(sentences,update=True) 
model.train(sentences) 

print model.most_similar(['course']) 

それはエラー

2017-08-27 16:50:04,590 : INFO : precomputing L2-norms of word weight vectors 
Traceback (most recent call last): 
    File "tryword2vec.py", line 23, in <module> 
    print model.most_similar(['course']) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 1285, in most_similar 
    return self.wv.most_similar(positive, negative, topn, restrict_vocab, indexer) 
    File "/usr/local/lib/python2.7/dist-packages/gensim/models/keyedvectors.py", line 97, in most_similar 
    raise KeyError("word '%s' not in vocabulary" % word) 
KeyError: "word 'course' not in vocabulary" 

TEST_DATAが含まスロー:エングの

学士コースです。 M.Techはコースです。私はコースです。 B.Techはコースです。芸術学士はコースです。 Fashion Designは コースです。マルチメディアはコースです。メカニカルenggはコースです。コンピュータ 科学はコースです。エレクトロニクスは原点です。エンジニアリングはコースです。 MBAはコースです。 BBAはコースです。

何か助けていただければ幸いです。

答えて

0

エラーが発生しない理由は、単語コースがボキャブラリに含まれていないためです。代わりに言葉はコースです。

期間はです。 "はもちろん終了です。

は、あなたの語彙 model.wv.vocab

{u'a': <gensim.models.keyedvectors.Vocab at 0x7fe086c461d0>, 
u'course.': <gensim.models.keyedvectors.Vocab at 0x7fe0b4704f90>, 
u'is': <gensim.models.keyedvectors.Vocab at 0x7fe086ba0d10>} 

そして、あなたのAPIキーを隠しませんを確認してください。

+0

右。なぜ唯一の 'a'、 'course'、 'is'がEngl、B.Tech、MEなどのボキャブラリーでは見えないのですか?それについて調べる方法はありますか? –

関連する問題