我使用FastText生成单词嵌入。我从https://fasttext.cc/docs/en/crawl-vectors.html下载了预先训练过的模型,模型有300个维,但是我想要100个维,所以我使用了减少模型命令,但是我得到了一个错误。
import gensim
model = gensim.models.fasttext.FastText.load_fasttext_format('cc.th.300.bin')
gensim.models.fasttext.utils.reduce_model(model, 100)
我得到了AttributeError: module 'gensim.utils' has no attribute 'reduce_model'
以下是FastText文档的代码
import fasttext
import fasttext.util
ft = fasttext.load_model('cc.en.300.bin')
fasttext.util.reduce_model(ft, 100)
如何修复此错误,我无法为新命令找到任何文档。
谢谢
发布于 2021-10-20 05:57:00
正如错误消息所描述的,模块gensim.fasttext.utils没有函数reduce_model()。
这不是一个普通的/标准的操作--这只是Facebook包装器决定实现的东西。(看起来它使用了标准主成分分析( PCA )对向量的一个极小的子样本,每一个这里的源代码)。
你为什么要降低维数?
请注意,您将失去模型的一些表现力,如果您能够加载模型来进行缩减,那么对于您的RAM来说就不会太大。如果您的主要目标是保存模型大小,那么可能有更好的方法,例如根据您的原因放弃更少的单词。
如果您绝对需要执行这样的缩减,一些选项可以是:
https://stackoverflow.com/questions/69640025
复制相似问题