如何在 FastText 中使用预训练词向量?
How to use pre-trained word vectors in FastText?
我刚开始使用 FastText。我正在通过使用我的数据集的 .csv
文件作为输入来对一个小数据集进行交叉验证。要处理我使用此参数的数据集:
model = fasttext.train_supervised(input=train_file,
lr=1.0,
epoch=100,
wordNgrams=2,
bucket=200000,
dim=50,
loss='hs')
不过,我想使用来自维基百科的预训练嵌入 on the FastText website。可行吗?如果是这样,我必须在参数列表中添加一个特定的参数吗?
我没有注意到 Facebook FastText 文档中有任何提及在 supervised-mode 训练之前预加载模型,我也没有看到任何声称这样做的示例。
此外,由于 word-vector 训练的目标在无监督模式(预测邻居)和监督模式(预测标签)中不同,我不确定这样的操作是否有任何好处。
即使 word-vector 稍微 head-start 进行了训练,最终您还是希望 运行 训练足够的时期 'converge' 模型 as-good-as-it-can-be 在其训练任务中,预测标签。并且,到那时,原始 word-vector 的任何剩余影响可能已经消失,因为它们针对另一项任务进行了优化。
你为什么要这样做?对您的数据进行典型的监督训练在哪些方面不够充分,您希望从 word-vectors 开始从其他模式和数据集得到什么好处?
动机
如果你的训练数据集很小,你可以从 FastText 预训练向量开始,让分类器从一些预先存在的知识开始。
为了提高分类器的性能,可能有益也可能无用:你应该做一些测试。
从预训练向量开始训练 fastText 分类器
您可以从 this page 下载预训练向量(.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)
改变向量维度
您可能不需要更改向量维度。但如果必须,您可以考虑分三步进行此更改:
我刚开始使用 FastText。我正在通过使用我的数据集的 .csv
文件作为输入来对一个小数据集进行交叉验证。要处理我使用此参数的数据集:
model = fasttext.train_supervised(input=train_file,
lr=1.0,
epoch=100,
wordNgrams=2,
bucket=200000,
dim=50,
loss='hs')
不过,我想使用来自维基百科的预训练嵌入 on the FastText website。可行吗?如果是这样,我必须在参数列表中添加一个特定的参数吗?
我没有注意到 Facebook FastText 文档中有任何提及在 supervised-mode 训练之前预加载模型,我也没有看到任何声称这样做的示例。
此外,由于 word-vector 训练的目标在无监督模式(预测邻居)和监督模式(预测标签)中不同,我不确定这样的操作是否有任何好处。
即使 word-vector 稍微 head-start 进行了训练,最终您还是希望 运行 训练足够的时期 'converge' 模型 as-good-as-it-can-be 在其训练任务中,预测标签。并且,到那时,原始 word-vector 的任何剩余影响可能已经消失,因为它们针对另一项任务进行了优化。
你为什么要这样做?对您的数据进行典型的监督训练在哪些方面不够充分,您希望从 word-vectors 开始从其他模式和数据集得到什么好处?
动机
如果你的训练数据集很小,你可以从 FastText 预训练向量开始,让分类器从一些预先存在的知识开始。 为了提高分类器的性能,可能有益也可能无用:你应该做一些测试。
从预训练向量开始训练 fastText 分类器
您可以从 this page 下载预训练向量(.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)
改变向量维度
您可能不需要更改向量维度。但如果必须,您可以考虑分三步进行此更改: