如何在本机FastText中加载Gensim FastText模型

时间:2018-05-03 18:11:44

标签: gensim fasttext

我在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()的反转。

1 个答案:

答案 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