我在Gensim中训练了一个FastText模型。我想用它来编码我的句子。具体来说,我想在本机FastText中使用此功能:
// Manually configure Firebase Options
FirebaseOptions options = new FirebaseOptions.Builder()
.setApplicationId("1:27992087142:android:ce3b6448250083d1") // Required for Analytics.
.setApiKey("AIzaSyADUe90ULnQDuGShD9W23RDP0xmeDc6Mvw") // Required for Auth.
.setDatabaseUrl("https://myproject.firebaseio.com") // Required for RTDB.
.build();
如何在Gensim中保存模型,使其成为本机FastText可以理解的正确二进制格式?
我在Python 3.4.3下使用FastText 0.1.0和Gensim 3.4.0。
本质上,我需要Gensim FastText doc中给出的load_binary_data()的反转。
答案 0 :(得分:0)
您可能在gensim中找不到这样的功能,因为这意味着依赖于内部结构和代码,就像您在fasttext-python中看到的那样(使用pybind直接调用内部fasttext api)。对于外部库有如此巨大的依赖性是gensim的创建者想要避免的,这就是他们可能deprecated the functionality to call the fasttext wrapper的原因。现在,gensim只通过自己的内部实现来寻求提供fasttext算法。我建议你使用python bindings for fasttext。
$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
$ pip install .
现在使用fasttext模型在python应用程序中运行训练集。
from fastText import train_unsupervised
model = train_unsupervised(input="pathtotextfile", model='skipgram')
model.save_model('model.bin')
这将以fastText命令行格式保存模型。所以你现在应该能够运行以下内容。
$ ./fasttext print-word-vectors model.bin < queries.txt