nlp - Spacy - 使用两个可训练的组件和两个不同的数据集

标签 nlp spacy spacy-3

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

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

非常感谢您的帮助

最佳答案

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

如果您使用的是 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 轻松设置

关于nlp - Spacy - 使用两个可训练的组件和两个不同的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67607627/

相关文章:

python - 集群的计算

text - 注意力网络是如何运作的?

python-3.x - 使用自然语言处理从段落中提取特定类型的单词

python - 使用 textblob 或 spacy 更正法语拼写

python - 如何导出 "Document with entities from spaCy"以在 doccano 中使用

nlp - 判断意图的常用方法有哪些

Python 将输出转换为句子

python-3.x - 尝试从 'SentenceSegmenter'包导入 'spacy.pipeline'时出现导入问题如何解决?

nlp - Spacy 手动下载 en_core_web_lg

python - spacy 3 NER Scorer() 抛出 TypeError : score() takes 2 positional arguments but 3 were given