预训练的spacy模型或spacy.blank,用于自定义NER的正确方法是什么?

时间:2020-08-24 16:53:48

标签: python nlp spacy entities ner

我想训练一个伪造的自定义NER模型,这是最好的选择吗?

火车数据已准备就绪(doccano)

选项1.使用现有的预先训练的spacy模型,并使用自定义NER?对其进行更新。

选项2.使用带有自定义NER的spacy.blank()创建一个空模型?

我只想在文本中标识我的自定义实体,目前还没有其他类型的实体...

1 个答案:

答案 0 :(得分:0)

您希望尽可能多地利用 transfer learning:这意味着您很可能希望使用预先训练的模型(例如在 Wikipedia 数据上)并针对您的用例对其进行微调。这是因为从头开始训练 spacy.blank 模型需要大量数据,而微调预训练模型可能只需要几百个标签。

但是,请注意 catastrophic forgetting,即在对某些新标签进行微调时,模型可能会“忘记”一些旧标签,因为它们不再存在于训练集中.

例如,假设您正尝试在标记 DOCTORLOCPERSON 的预训练 NER 模型之上标记实体 ORG。您标记 200 个 DOCTOR 记录并使用它们微调您的模型。您可能会发现模型现在将每个 PERSON 预测为 DOCTOR

在不了解您的数据的情况下只能说这么多。请查看spacy docs on training ner了解更多详情。