荷兰预训练模型在 gensim 中不起作用

Dutch pre-trained model not working in gensim

尝试在 gensim 中上传 fasttext 模型 (cc.nl.300.bin) 时出现以下错误:

!wget https://dl.fbaipublicfiles.com/fasttext/vectors-crawl/cc.nl.300.bin.gz
!gunzip cc.nl.300.bin.gz
model = FastText_gensim.load_fasttext_format('cc.nl.300.bin')
model.build_vocab(cleaned_text, update=True)

AttributeError: 'FastTextTrainables' object has no attribute 'syn1neg'

用我自己的数据集构建词汇表时代码出错。该数据集的格式没问题,因为我已经用它来构建和训练其他(未预训练的)Word2Vec 和 FastText 模型。

我在这个博客上看到其他人有同样的错误,但是他们的解决方案对我不起作用:https://github.com/RaRe-Technologies/gensim/issues/2588

此外,我在某处读到我应该使用 'load_facebook_model'?但是我根本无法导入 load_facebook_model?这甚至是解决这个问题的好方法吗?

还有其他建议吗?

您确定您使用的是最新版本的 Gensim,4.0.1,对 FastText 实施有很多改进吗?

而且,您肯定会想要使用 .load_facebook_model() 加载完整的 .bin Facebook 格式模型:

https://radimrehurek.com/gensim/models/fasttext.html#gensim.models.fasttext.load_facebook_model

但还要注意:post-词汇表的训练扩展最好被认为是一种高级和实验性功能。它可能不会对典型任务提供任何改进 - 事实上,如果不仔细考虑权衡和平衡后期训练对早期训练的影响,它会使事情变得更糟。

在大型、多样化的语料库上训练的 FastText 模型可能已经能够通过其子词向量为词汇外的词合成胜于无的猜测向量。

如果您需要整合一些包含非常不同的词和词义的数据,通常最好从头开始重新训练,使用所有所需文本影响的相等组合。然后,您将以标准和平衡的方式做事,而不会对通常的做法进行更难调整和更难评估的即兴更改。