' UTF-8'加载word2vec模块时解码错误

时间:2015-12-23 02:24:54

标签: python nlp gensim word2vec

我必须使用包含大量中文字符的word2vec模块。该模块由我的同事使用Java进行培训,并保存为bin文件。

我安装了gensim并尝试加载模块,但发生了以下错误:

In [1]: import gensim  

In [2]: model = gensim.models.Word2Vec.load_word2vec_format('/data5/momo-projects/user_interest_classification/code/word2vec/vectors_groups_1105.bin', binary=True)

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 96-97: unexpected end of data

我试图在python 2.7和3.5中加载模块,以同样的方式失败。那么如何在gensim中加载模块呢?感谢。

2 个答案:

答案 0 :(得分:6)

该模块是由Java培训的大量汉字。我无法弄清楚原始语料库的编码格式。该错误可以解决为gensim FAQ

中的描述

使用带有标志的load_word2vec_format来忽略字符解码错误:

In [1]: import gensim

In [2]: model = gensim.models.Word2Vec.load_word2vec_format('/data5/momo-projects/user_interest_classification/code/word2vec/vectors_groups_1105.bin', binary=True, unicode_errors='ignore')

但我不知道忽略编码错误是否重要。

答案 1 :(得分:1)

我试过了旗帜

unicode_errors='ignore'

但它无法解决unicode问题。

我检查了将文件从filename.bin.gz重命名为filename.gz后出现unicode错误。

我的解决方案是提取压缩文件,而不是重命名。

然后我使用带有上面标志的文件,没有unicode错误。

请注意,我使用Mac(Sierra)和python 2.7。