Python 空间:启用以前禁用的管道

Python 空间:启用以前禁用的管道,python,spacy,Python,Spacy,我有一个包含两个管道的模型:['sbd','tagger']。第一个是句子标记器,第二个是标记器。现在我想用这个模型训练一个NER,这样我就可以得到一个带有三个管道的最终模型:['sbd'、'tagger'、'NER']。根据,我需要禁用标记器管道,以便仅培训NER。我做到了,训练过程顺利进行 我的问题是,最终保存的模型只包含一个管道,即NER系统。我是否可以启用以前禁用的管道,以便使用完整管道保存最终模型?好的,我发现我可以恢复以前禁用的管道。假设我在nlp中加载了我的模型,并禁用了除ner之

我有一个包含两个管道的模型:
['sbd','tagger']
。第一个是句子标记器,第二个是标记器。现在我想用这个模型训练一个NER,这样我就可以得到一个带有三个管道的最终模型:
['sbd'、'tagger'、'NER']
。根据,我需要禁用
标记器
管道,以便仅培训NER。我做到了,训练过程顺利进行


我的问题是,最终保存的模型只包含一个管道,即NER系统。我是否可以启用以前禁用的管道,以便使用完整管道保存最终模型?

好的,我发现我可以恢复以前禁用的管道。假设我在
nlp
中加载了我的模型,并禁用了除
ner
之外的所有管道:

other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
disabled = nlp.disable_pipes(*other_pipes)

training...

disabled.restore()

好的,我发现我可以恢复以前禁用的管道。假设我在
nlp
中加载了我的模型,并禁用了除
ner
之外的所有管道:

other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
disabled = nlp.disable_pipes(*other_pipes)

training...

disabled.restore()

为了完全避免此问题,您可以禁用受培训范围限制的
with
块中的管道:

with nlp.disable_pipes(*other_pipes):
    train_model()

# continue with other stuff

为了完全避免此问题,您可以禁用受培训范围限制的
with
块中的管道:

with nlp.disable_pipes(*other_pipes):
    train_model()

# continue with other stuff