我正在尝试将gensim创建的fasttext模型导出到二进制文件。但是文档尚不清楚如何实现这一目标。 到目前为止,我已经完成了什么:
node
但这似乎不是最好的解决方案。从稍后开始,当我想使用:
加载模型时model.wv.save_word2vec_format('model.bin')
我陷入无限循环。加载由fasttext.load_facebook_model('model.bin')
函数创建的fasttext.model
时,大约需要30秒。
答案 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()
编写的多个相关文件(都具有用户提供的相同前缀)在一起。