如何微调 spacys 词向量

how to fine tune spacys word vectors

我正在使用预训练的 spacy 词嵌入来预测文档的相似性。因为我有很多领域特定的词,所以我想在一个包含我的领域特定词汇的相当小的数据集上微调我的向量。

我的想法是用我的数据再次训练 spacy 模型。但是由于 spacy 中的词向量是内置的,我不知道该怎么做。有没有办法用我的数据再次训练 spacy 模型?

经过一些研究,我发现我可以使用 Gensim 训练自己的向量。在那里我必须下载一个预训练模型,例如 Google 新闻数据集模型,然后我可以用我的数据集再次训练它。这是唯一的方法吗?或者有没有办法继续我的 spacy 模型?

非常感谢任何帮助。

更新:这里的正确术语是“增量训练”,pre-trained spacy 模型不可能做到这一点。 但是,可以对 gensim 模型执行增量训练。我在另一个预训练向量集的帮助下做到了这一点(我使用了 fasttext 模型),然后我用我自己的语料库再次训练了这个使用 fasttext 向量训练的 gensim 模型。这很有效

如果您 pre-trained 在您的域中使用 fasttext 进行词嵌入并希望将它们与 spaCy 一起使用,您可以 extend/replace 来自现有 spaCy 模型的标记与您的新 fasttext 词汇表和向量使用类似的东西这个:

https://github.com/explosion/spaCy/issues/2538#issuecomment-404888091

或从头开始:

https://spacy.io/usage/vectors-similarity#converting

这种方法的优点是 (1) 您可以继续使用 spacy 和 (2) 如果某些标记存在于 pre-trained spaCy 但不在您的语料库中,您仍然可以使用它们