我从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文件”之类的解决方案没有任何帮助。
非常感谢您:)
答案 0 :(得分:0)
确保您使用的是gensim的最新(3.7.1)版本; load_fasttext_model()
最近有修复和改进。
此外,请仔细检查您下载的cc.ko.300.bin
,以确保它没有被蜜蜂破坏或截断。
如果以上两种方法均无帮助,请尝试在INFO级别启用日志记录,再次尝试加载,并在问题中共享完整的输出和错误堆栈,以提供有关问题出在哪里的更多提示。
答案 1 :(得分:0)
事实证明,FB Koean快速文本模型具有一些奇怪的unicode,gensim将解决此问题。
答案 2 :(得分:0)
最好使用fastText软件包而不是gensim来加载fastText词嵌入。
您需要首先使用pip install fasttext
然后按照下面的python代码块进行操作:
import fasttext
model = fasttext.load_model("path/2/pretrained_fastText_word_embeddings.bin")
代码源: