我正在使用python3在Windows盒子上运行spaCy v2.x。我没有管理员权限,所以我必须将管道调用为:
nlp = en_core_web_sm.load()
当我在 *nix 框上运行相同的脚本时,我可以将管道加载为:
nlp = spacy.load('en', disable = ['ner', 'tagger', 'parser', 'textcat'])
我所做的只是标记化,所以我不需要整个管道。在窗口框上,如果我加载管道,如下所示:
nlp = en_core_web_sm.load(disable = ['ner', 'tagger', 'parser', 'textcat'])
这实际上会禁用组件吗?
关于 NLP 管道的 spaCy 信息
您可以通过以下方式检查当前的管道组件
print(nlp.pipe_names)
如果您对输出不满意,可以通过尝试使用该组件并尝试打印输出来手动检查。例如,尝试禁用解析器并打印依赖项标记。
正如文档所述,您可以在不加载管道的情况下删除管道的某些部分。默认en_core_web_sm
模型具有以下管道:
import spacy
nlp = spacy.load('en_core_web_sm')
print(nlp.pipe_names)
['tagger', 'parser', 'ner']
所以代替:
nlp = spacy.load('en_core_web_sm', disable = ['ner', 'tagger', 'parser'])
print(nlp.pipe_names)
[]
你可以做:
nlp = spacy.load('en_core_web_sm')
nlp.disable_pipes('ner', 'tagger', 'parser')
print(nlp.pipe_names)
[]
或者,如果您只需要移除一个管道:
nlp = spacy.load('en_core_web_sm')
nlp.remove_pipe('ner')
print(nlp.pipe_names)
['tagger', 'parser']