1

word2vec を使用しようとしましたが、任意の単語で何かをしようとするとエラーが発生します。エンコーディングの問題のようです。これが私がやったことです:

word2vec の初期化:

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

model = gensim.models.Word2Vec.load_word2vec_format('freebase-vectors-skipgram1000/knowledge-vectors-skipgram1000.bin', binary=True)
model.init_sims(replace=True)

少しテストします。

print(model)  
# prints: Word2Vec(vocab=1422903, size=1000, alpha=0.025)

print(model.index2word[0])  
# prints: u'/m/0dgps15'
# I would expect a readable word, how to fix that?

エラー:

print(model.similarity('word', 'sound'))
# An error happen: KeyError: 'word'

でモデルをロードしようとしましたbinary=Falseが、ロード中にエラーが発生します。

4

1 に答える 1

3

word2vec の使用に問題はありません。ファイル形式はバイナリです (この便利なユーティリティを使用してテキストに変換できます)。

事前トレーニング済みの「エンティティ」ベクター ファイルをダウンロードしました。Google Newsの単語またはフレーズ ベクトル (word2vec Web サイトでも入手可能) を使用することをお勧めします。

[1] import gensim
[2] model = gensim.models.Word2Vec.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
[3] print(model.similarity('word', 'sound'))
0.152615140536
于 2015-07-24T21:38:35.553 に答える