1

我想知道是否可以使用两个不同的数据集在 Spacy 中训练两个可训练组件?事实上,我想使用 NER 和文本分类器,但是由于这两个组件的训练数据集应该以不同方式注释,所以我不知道如何同时训练这两个组件......

我应该在单独的管道中训练每个任务并在最后组装两个管道吗?或者我应该训练 NER,打包这个管道,然后使用这个包作为输入来训练文本分类器?

非常感谢您的帮助

4

1 回答 1

1

如果数据集不同,您将无法同时训练这些。

如果您正在使用 spaCy v3,将两个训练步骤组合到一个最终管道中应该相对简单。例如,创建一个首先训练 NER 的配置,并将其存储到磁盘。然后,从先前训练的管道中创建一个新配置,在其中您source使用 NER,然后将此 NER 组件定义为frozen

[nlp]
pipeline = ["ner", "textcat"]
...

[training]
frozen_components = ["ner"]
...

[components.ner]
source = "your_trained_ner_location"
component = "ner"

[components.textcat]
factory = "textcat"
...

现在在您的textcat.

仅供参考 - 这种多步骤的工作流程可以很容易地设置spacy projects

于 2021-06-08T13:35:14.903 回答