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

Python 如何在FastText中使用预先训练好的词向量?,python,fasttext,Python,Fasttext,我刚刚开始使用FastText。我正在使用数据集的.csv文件作为输入,对一个小数据集进行交叉验证。要处理数据集,我使用以下参数: model=fasttext.train\u受监控(输入=train\u文件, lr=1.0, 纪元=100, wordNgrams=2, 桶=200000, 尺寸=50, 损失(='hs') 不过,我想使用维基百科提供的经过预培训的嵌入。可行吗?如果是这样,我必须在参数列表中添加一个特定的参数?我没有注意到Facebook FastText文档中提到在监督模式培

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

model=fasttext.train\u受监控(输入=train\u文件,
lr=1.0,
纪元=100,
wordNgrams=2,
桶=200000,
尺寸=50,
损失(='hs')

不过,我想使用维基百科提供的经过预培训的嵌入。可行吗?如果是这样,我必须在参数列表中添加一个特定的参数?

我没有注意到Facebook FastText文档中提到在监督模式培训之前预加载模型,也没有看到任何声称这样做的示例

此外,由于无监督模式(预测邻居)和有监督模式(预测标签)中的词向量训练目标不同,我不确定这样的操作是否有任何好处

即使单词向量让训练稍微领先一步,最终你也会希望在足够的时间内运行训练,以“聚合”模型,使其在训练任务中尽可能好地预测标签。而且,到那时,原始词向量的任何剩余影响可能已经稀释为零,因为它们已针对另一项任务进行了优化

你为什么要这样做?对于您的数据,典型的有监督的培训在哪些方面是不够的?从其他模式和数据集的单词向量开始,您希望得到什么好处?

如果您的训练数据集很小,可以从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)
改变向量维数 您可能不需要更改向量维度。但如果必须这样做,您可以考虑分三个步骤进行更改:

  • 下载.bin模型(从)
  • 减少.bin模型维度(请参见)
  • 将.bin模型转换为.vec文件(请参见)

感谢您的重播。我正在写一篇论文,我正在比较使用不同方法获得的基线结果。事实上,我在SVM中使用了来自wikipedia的预训练嵌入,然后我使用FastText处理了相同的数据集,没有预训练的嵌入。为了进行更详细的比较,我想知道使用维基百科预先训练过的嵌入在FastText中进行第二次测试是否有意义。