2017-03-18 13 views
2

私はディープラーニングのテキスト分類の問題を解決しようとしているので、Word2Vecでテキスト入力をベクトル化してニューラルネットワークに入力する必要があります。Word2Vecを使用して1つの単語に対して1つのベクトルを得るにはどうすればよいですか?

だから私は、Googleが訓練を受けWord2Vecモデルの事前ダウンロード:https://github.com/3Top/word2vec-api

をそしてgensim使用して、それをロード:なぜドン

print(model['cat']) 
# => expected output: 0.47385435 (or something) 
# => actual output: array with hundreds of floats between -1 and 1 

:私は特定の単語を印刷しようとすると

import gensim 
model = gensim.models.KeyedVectors.load_word2vec_format('Word2Vec.bin', binary=True) 

を私はちょうど1つの単語のための1つのベクトルを得ない?それはポイントではありませんか?

ボーナス質問:Googleの事前に訓練されたWord2Vecモデルの3M単語ベクトルをMongoDBデータベースに読み込むことはできますか? (列:id - 単語(文字列) - ベクトル(float))。 .binまたは.txtファイルからモデルを読み込むのに1分以上かかるためです。

+1

ベクトルを定義することで、複数の値を持っているとしています。だから、単語ごとに1つのベクトルが得られます。この場合、ベクトル**は**配列です。 docs [here](https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.KeyedVectors.word_vec)の例を参照してください。 – bunji

答えて

1
When I try to print a specific word: 

print(model['cat']) 
# => expected output: 0.47385435 (or something) 
# => actual output: array with hundreds of floats between -1 and 1 
Why don't I just get one vector for one word? Isn't that the point? 

"-1と1の間の数百の浮動小数点数を持つ配列"は単語ベクトルです。

ベクトルを呼び出すときに、なぜスカラ(0.47385435)が必要ですか?

あなたはこれを読む必要がある:(あなたは私が推測する1次元ベクトルを持っていない限り)https://www.tensorflow.org/tutorials/word2vec

関連する問題