spacy 如何向现有实体标尺添加图案?

spacy how to add patterns to existing Entity ruler?

我的 spacy 版本是 2.3.7。我有一个现有的经过训练的自定义 NER 模型,带有 NER 和 Entity Ruler 管道。 我想更新和重新训练这个现有的管道。

创建实体标尺管道的代码如下-

ruler = EntityRuler(nlp)
for i in patt_dict:
  ruler.add_patterns(i)
nlp.add_pipe(ruler, name = "entity_ruler")

其中 patt_dict 是我制作的原始模式字典。

现在,完成训练后,我有了更多的输入数据,想用新的输入数据更多地训练模型。

当我稍后加载 spacy 模型并想用更多输入数据重新训练它时,如何修改上面的代码以将更多模式字典添加到实体标尺?

通常最好从头开始重新训练。如果您只训练新数据,您可能 运行 进入“灾难性遗忘”,即模型忘记了新数据中没有的任何东西。

这在 this spaCy blog post 中有详细介绍。从 v3 开始,这里概述的方法在 spaCy 中可用,但它仍处于试验阶段,需要一些工作。无论如何,它仍然是一种解决方法,最好的办法是使用所有数据从头开始训练。