无法加载gensim Fasttext模型-UTF-8 unicode错误



我已经使用Gensim库为法语训练了FastText模型。突然间,这个经过训练的模型没有被加载到内存中。

我正在使用以下代码:-

from gensim.models import FastText
fname = "filename"
model = FastText.load(fname)

并抛出以下错误:-

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/site-packages/gensim/models/fasttext.py", line 1070, in load
model = super(FastText, cls).load(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/gensim/models/base_any2vec.py", line 1244, in load
model = super(BaseWordEmbeddingsModel, cls).load(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/gensim/models/base_any2vec.py", line 603, in load
return super(BaseAny2VecModel, cls).load(fname_or_handle, **kwargs)
File "/usr/local/lib/python3.7/site-packages/gensim/utils.py", line 426, in load
obj = unpickle(fname)
File "/usr/local/lib/python3.7/site-packages/gensim/utils.py", line 1384, in unpickle
return _pickle.load(f, encoding='latin1')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x86 in position 14072054: invalid start byte

由于该模型是在大型数据集上训练的,有什么方法可以恢复/加载该模型吗?

此错误意味着存储在模型中的文本不符合utf-8编码,如本文所述。

已经训练好的模型的解决方案是在运行模型时设置unicode_errors标志:

from gensim.models import FastText
fname = "filename"
model = FastText.load(fname, unicode_errors='ignore')

然而,这将导致忽略有问题的单词/字符,这可能并不理想。

最好使用符合utf-8的设置重新训练模型,但这需要重新训练。

最新更新