簡體   English   中英

如何將由 gensim 創建的 fasttext model 導出到二進制文件?

[英]How to export a fasttext model created by gensim, to a binary file?

我正在嘗試將 gensim 創建的 fasttext model 導出到二進制文件。 但是文檔不清楚如何實現這一點。 到目前為止我所做的:

model.wv.save_word2vec_format('model.bin')

但這似乎不是最好的解決方案。 以后當我想使用以下命令加載 model 時:

fasttext.load_facebook_model('model.bin')

我進入了一個無限循環。 在加載由model.save('fasttext.model) fasttext.model創建的 fasttext.model 時,大約需要 30 秒。

使用.save_word2vec_format()僅將全詞向量保存為 Google 原始word2vec.c版本使用的簡單格式。 它不會保存有關完整 FastText model 的獨特內容。 此類文件將使用匹配的.load_word2vec_format()重新加載。

.load_facebook_format()方法以 Facebook 的原始(非 Python)FastText 代碼版本保存的格式加載文件。 (這個方法的名字很容易被誤導,因為“facebook”可能意味着除特定數據格式之外的許多不同的東西。)Gensim 沒有匹配的方法來保存到相同的格式——盡管它可能不會很難實現,並且對支持此導出選項具有對稱意義。

Gensim 的模型通常實現 gensim-native .save().load()選項,它們混合使用 Python 'pickle' 序列化和原始大數組文件。 如果您想保存完整的 model state,這些是您最好的選擇,以便以后重新加載回 Gensim。

(其他 FastText 實現無法加載此類文件。)

將保存的 model 移動到新位置時,請務必將由此.save()寫入的多個相關文件(都具有相同的用戶提供的前綴)保存在一起。

更新(2020 年 5 月): gensim的最新版本(例如 3.8.3 及更高版本)包含一個新貢獻的FastText.save_facebook_model()方法,該方法保存為原始 Facebook FastTExt 二進制格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM