错误:“utf8”编解码器无法解码位置 0 中的字节 0x80:起始字节无效

2024-01-07

我正在尝试执行以下操作Kaggle作业 https://www.kaggle.com/c/word2vec-nlp-tutorial。我正在使用 gensim 包来使用 word2vec。我能够创建模型并将其存储到磁盘。但是当我尝试加载文件时,出现以下错误。

    -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"

我正在尝试使用生成模型代码在这里 http://ideone.com/9DXo4w。该程序大约需要半个小时来生成模型。因此我无法多次运行它来调试它。


您没有正确加载文件。您应该使用 load() 而不是 load_word2vec_format()。 当您使用 C 代码训练模型并将模型保存为二进制格式时,会使用后者。但是,您没有以二进制格式保存模型,而是使用 python 对其进行训练。因此,您可以简单地使用以下代码,它应该可以工作:

models = gensim.models.Word2Vec.load('300features_40minwords_10context.txt')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:“utf8”编解码器无法解码位置 0 中的字节 0x80:起始字节无效 的相关文章

随机推荐