gensim - 如何以二进制和文本格式保存 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:文件必须具有“写入”属性
解决方案
FastTextsave()/load()
示例中的文档具有误导性,他们建议您使用get_tmpfile
. 如果我将数据文件名作为字符串传递并且不将其包装在get_tmpfile
:
model.save("fasttext.model")
然后你可以用同样的方式加载,直接传递字符串:
model = FastText.load("fasttext.model")
请注意,这将为大型模型保存多个文件。但是,当您加载模型时,您只需要指定 main fasttext.model file
,该函数会自动加载附加文件(如果有)。
推荐阅读
- amazon-web-services - AWS S3 存储桶 MFA 启用
- google-cloud-platform - 如何限制谁可以运行我的 GCP Cloud 功能?
- embedded - 在 BusyBox 嵌入式系统上安装 OpenVPN
- python - 在 Pandas 中通过修改复制一行
- php - 如何在排除中给出多个文件?
- c++ - 为什么继承的结构成员在联合中不可访问?
- angular - 使用ui-router延迟加载时可以触发模块的预加载吗
- r - 如何在 R 中在限制范围内预测 ARIMA?
- debugging - 为什么计算机程序员使用 16 位十六进制而不是 32 位数字系统来表示二进制编码值?
- c - C: 为什么 &= 比 = 更好?