如何将gensim创建的快速文本模型导出到二进制文件?

时间:2019-11-15 12:01:11

标签: python nlp gensim fasttext

我正在尝试将gensim创建的fasttext模型导出到二进制文件。但是文档尚不清楚如何实现这一目标。 到目前为止,我已经完成了什么:

node

但这似乎不是最好的解决方案。从稍后开始,当我想使用:

加载模型时
model.wv.save_word2vec_format('model.bin')

我陷入无限循环。加载由fasttext.load_facebook_model('model.bin') 函数创建的fasttext.model时,大约需要30秒。

1 个答案:

答案 0 :(得分:1)

使用.save_word2vec_format()仅将全字向量保存为Google最初的word2vec.c版本所使用的简单格式。它不会保存有关完整FastText模型的独特之处。此类文件将使用匹配的.load_word2vec_format()重新加载。

.load_facebook_format()方法以Facebook原始(非Python)FastText代码版本保存的格式加载文件。 (此方法的名称被误导了,因为'facebook'可能意味着除了特定数据格式以外的许多其他事物。)Gensim没有匹配的方法来保存为相同的格式-尽管可能不会实施起来非常困难,因此对称地支持该导出选项。

Gensim的模型通常实现gensim-native .save().load()选项,这些选项结合了Python的“棘手”序列化和原始的大数组文件。如果要保存完整的模型状态,以便以后重新加载回Gensim,这些是最好的选择。

(其他FastText实现无法加载此类文件。)

在将保存的模型移动到新位置时,请确保将由此.save()编写的多个相关文件(都具有用户提供的相同前缀)在一起。