gensimを使ってつぶやきにword2vec表現を練習する必要があります。 gensimで見たほとんどのチュートリアルやコードとは異なり、私のデータは生データではなく、すでに前処理されています。私は65k単語( "未知の"トークンとEOLトークンを含む)を含むテキスト文書の辞書を持っていて、つぶやきはこの辞書に指数をつけた数の少ない行列として保存されています。データフォーマットの簡単な例を以下に見ることができる。あらかじめ定義された辞書と単語インデックスデータのGensim word2vec
dict.txt
you
love
this
code
ツイート(5が未知であり、6はEOL)私は
[[0, 1, 2, 3, 6],
[3, 5, 5, 1, 6],
[0, 1, 3, 6, 6]]
私はどのようにインデックス表現を処理する必要がありますかわかりません。簡単な方法は、インデックスのリストを文字列のリストに変換することです(つまり、[0,1,2,3,6] - > ['0'、 '1'、 '2'、 '3'、 '6 '])私はword2vecモデルにそれを読んでいる。しかしながら、これはgensimが次に使用される内部インデックスをルックアップしようとするので、非効率的でなければならない。 '2'。
gensimを使用して効率的にこのデータをロードし、word2vec表現を作成するにはどうすればよいですか?
単純に整数をモデルに入力できないことが確認できます。元の投稿に書かれているように(おそらくはっきりしていないかもしれませんが)、単純に整数を文字列にマッピングするだけで動作します。 – pir
好奇心の乏しさから、2Dのnumpy配列から '5'と' 6'をどのように除外しますか?各行は常に同じサイズにする必要があります。それはword2vecにそれを提供するために行列を反復するときに実行できますが、それは非常に非効率的です。 – pir