首页 > 解决方案 > 如何以二进制和文本格式保存 fasttext 模型?

问题描述

文档有点不清楚如何将fasttext 模型保存到磁盘-如何在参数中指定路径,我尝试这样做,但失败并出现错误

文档中的示例

>>> from gensim.test.utils import get_tmpfile
>>>
>>> fname = get_tmpfile("fasttext.model")
>>>
>>> model.save(fname)
>>> model = FastText.load(fname)

此外,我怎样才能像 word2vec 模型那样以文本格式保存模型?

'word2vecmodel.wv.save_word2vec_format("D:\w2vmodel.txt")'

编辑

在尝试先创建文件的建议后,我在运行此代码时一直出现与以前相同的错误

savepath = os.path.abspath('D:\fasttextmodel.v3.bin');
from gensim.test.utils import get_tmpfile
fname = get_tmpfile(savepath)
fasttext_model.save(fname)

TypeError:文件必须具有“写入”属性

标签: gensimfasttext

解决方案


FastTextsave()/load()示例中的文档具有误导性,他们建议您使用get_tmpfile. 如果我将数据文件名作为字符串传递并且不将其包装在get_tmpfile

model.save("fasttext.model")

然后你可以用同样的方式加载,直接传递字符串:

model = FastText.load("fasttext.model")

请注意,这将为大型模型保存多个文件。但是,当您加载模型时,您只需要指定 main fasttext.model file,该函数会自动加载附加文件(如果有)。


推荐阅读