Facebook fasttext bin模型UnicodeDecodeError

时间:2019-03-06 06:07:27

标签: python facebook utf-8 gensim fasttext

我从Facebook(https://fasttext.cc/docs/en/crawl-vectors.html)下载了预训练的单词矢量文件(.bin) 但是,当我尝试使用此模型时,它会出错。

from gensim.models import FastText
fasttext_model = FastText.load_fasttext_format('cc.ko.300.bin', encoding='utf8')

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte

但是奇怪的是,当我使用旧版本的bin文件(https://fasttext.cc/docs/en/pretrained-vectors.html)时,它运行良好

这些文件怎么了?以及我该如何解决?

我必须使用bin文件,因为我需要所有n-gram来防止OOV。因此,“使用.vec文件”之类的解决方案没有任何帮助。

非常感谢您:)

3 个答案:

答案 0 :(得分:0)

确保您使用的是gensim的最新(3.7.1)版本; load_fasttext_model()最近有修复和改进。

此外,请仔细检查您下载的cc.ko.300.bin,以确保它没有被蜜蜂破坏或截断。

如果以上两种方法均无帮助,请尝试在INFO级别启用日志记录,再次尝试加载,并在问题中共享完整的输出和错误堆栈,以提供有关问题出在哪里的更多提示。

答案 1 :(得分:0)

事实证明,FB Koean快速文本模型具有一些奇怪的unicode,gensim将解决此问题。

https://github.com/RaRe-Technologies/gensim/issues/2402

答案 2 :(得分:0)

最好使用fastText软件包而不是gensim来加载fastText词嵌入。

您需要首先使用pip install fasttext

为python安装fasttext模块。

然后按照下面的python代码块进行操作:

import fasttext
model = fasttext.load_model("path/2/pretrained_fastText_word_embeddings.bin")

代码源: