如何在FastText中使用预训练的词向量?

Pel*_*ide 2 python fasttext

我刚刚开始使用 FastText。.csv我正在通过使用数据集文件作为输入来对小型数据集进行交叉验证。为了处理数据集,我使用以下参数:

 model = fasttext.train_supervised(input=train_file,
                                   lr=1.0,
                                   epoch=100,
                                   wordNgrams=2,
                                   bucket=200000,
                                   dim=50,
                                   loss='hs')
Run Code Online (Sandbox Code Playgroud)

不过,我想使用FastText 网站上提供的维基百科中的预训练嵌入。可行吗?如果是这样,我必须将特定参数添加到参数列表中吗?

Ste*_*n87 8

动机

如果您的训练数据集很小,您可以从 FastText 预训练向量开始,使分类器从一些预先存在的知识开始。为了提高分类器的性能,它可能是有益的,也可能是无用的:你应该做一些测试。

从预训练向量开始训练 fastText 分类器

您可以从此页面下载预训练向量(.vec 文件)。

这些向量的维度为 300。您可以通过执行以下操作来训练模型:

model = fasttext.train_supervised(input=TRAIN_FILEPATH, lr=1.0, epoch=100,
                             wordNgrams=2, bucket=200000, dim=300, loss='hs',
                             pretrainedVectors=VECTORS_FILEPATH)
Run Code Online (Sandbox Code Playgroud)

更改向量维度

您可能不需要更改向量维度。但如果必须的话,您可以考虑分三个步骤进行此更改:

  • 下载.bin模型(从这里
  • 减少 .bin 模型维度(请参阅
  • 将 .bin 模型转换为 .vec 文件(请参阅此答案