13

次のkaggle assignmnetを実行しようとしています。word2vecを使用するためにgensimパッケージを使用しています。モデルを作成してディスクに保存できます。しかし、ファイルを読み込もうとすると、以下のエラーが発生します。

    -HP-dx2280-MT-GR541AV:~$ python prog_w2v.py 
Traceback (most recent call last):
  File "prog_w2v.py", line 7, in <module>
    models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True)
  File "/usr/local/lib/python2.7/dist-packages/gensim/models/word2vec.py", line 579, in load_word2vec_format
    header = utils.to_unicode(fin.readline())
  File "/usr/local/lib/python2.7/dist-packages/gensim/utils.py", line 190, in any2unicode
    return unicode(text, encoding, errors=errors)
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 in position 0: invalid start byte

同様の質問を見つけました。しかし、私は問題を解決できませんでした。私のprog_w2v.pyは以下の通りです。

import gensim
import time
start = time.time()    
models = gensim.models.Word2Vec.load_word2vec_format('300features_40minwords_10context.txt', binary=True) 
end = time.time()   
print end-start,"   seconds"

コード hereを使用してモデルを生成しようとしています。プログラムがモデルを生成するのに約 30 分かかります。したがって、デバッグのために何度も実行することはできません。

4

4 に答える 4

12

ファイルを正しくロードしていません。load_word2vec_format() の代わりに load() を使用する必要があります。後者は、C コードを使用してモデルをトレーニングし、モデルをバイナリ形式で保存するときに使用されます。ただし、モデルをバイナリ形式で保存しておらず、Python を使用してトレーニングしています。したがって、次のコードを使用するだけで動作するはずです。

models = gensim.models.Word2Vec.load('300features_40minwords_10context.txt')
于 2015-05-12T21:52:06.967 に答える