Gensim Pythonパッケージを使用して神経言語モデルを学習しています。モデルを学習するためのトレーニングコーパスを提供できることは承知しています。しかし、テキストで利用可能な事前計算されたWordのベクトルが多数存在します形式(例 http://www-nlp.stanford.edu/projects/glove/ )。GensimWord2Vecモデルを初期化する方法はありますか。ベクトルを一から学ぶには?
ありがとう!
ここから事前トレーニング済みのWordベクターをダウンロードできます(ファイル 'GoogleNews-vectors-negative300.bin'を取得します): Word2vec
ファイルを抽出して、pythonに読み込むことができます:
model = gensim.models.Word2vec.Word2Vec.load_Word2vec_format(os.path.join(os.path.dirname(__file__), 'GoogleNews-vectors-negative300.bin'), binary=True)
model.most_similar('dog')
編集(2017年5月):上記のコードは廃止されたため、次のようにしてベクターをロードします。
model = gensim.models.KeyedVectors.load_Word2vec_format(os.path.join(os.path.dirname(__file__), 'GoogleNews-vectors-negative300.bin'), binary=True)
StanfordサイトからのGloVeダンプは、Word2vec形式とは少し異なる形式です。以下を使用して、GloVeファイルをWord2vec形式に変換できます。
python -m gensim.scripts.glove2Word2vec --input glove.840B.300d.txt --output glove.840B.300d.w2vformat.txt
私の知る限り、Gensimは2つのバイナリ形式、Word2vecとfastText、およびほとんどのWord埋め込みツールで作成できる一般的なプレーンテキスト形式をロードできます。一般的なプレーンテキスト形式は次のようになります(この例では、20000は語彙のサイズ、100はベクトルの長さです)。
20000 100
the 0.476841 -0.620207 -0.002157 0.359706 -0.591816 [98 more numbers...]
and 0.223408 0.231993 -0.231131 -0.900311 -0.225111 [98 more numbers..]
[19998 more lines...]
Chaitanya Shivadeは彼の回答で、Gensimが提供するスクリプトを使用して、Glove形式(各行:Word +ベクトル)を一般的な形式に変換する方法を説明しました。
さまざまな形式の読み込みは簡単ですが、それらを混同することも簡単です。
import gensim
model_file = path/to/model/file
1)バイナリWord2vecの読み込み
model = gensim.models.Word2vec.Word2Vec.load_Word2vec_format(model_file)
2)バイナリfastTextの読み込み
model = gensim.models.fasttext.FastText.load_fasttext_format(model_file)
3)汎用プレーンテキスト形式の読み込み(Word2vecで導入されました)
model = gensim.models.keyedvectors.Word2VecKeyedVectors.load_Word2vec_format(model_file)
Wordの埋め込みのみを使用し、Gensimでのトレーニングを継続しない場合は、KeyedVectorクラスを使用できます。これにより、ベクターをロードするために必要なメモリの量が大幅に削減されます( 詳細な説明 )。
以下は、バイナリWord2vec形式をkeyedvectorsとしてロードします。
model = gensim.models.keyedvectors.Word2VecKeyedVectors.load_Word2vec_format(model_file, binary=True)