禁用部分 nlp 管道

问题描述 投票:0回答:3

我正在使用 python3 在 Windows 盒子上运行 spaCy v2.x。我没有管理员权限,所以我必须将管道称为:

nlp = en_core_web_sm.load()

当我在 *nix 盒子上运行相同的脚本时,我可以将管道加载为:

nlp = spacy.load('en', disable = ['ner', 'tagger', 'parser', 'textcat'])

我所做的只是标记化,所以我不需要整个管道。在 Windows 盒子上,如果我像这样加载管道:

nlp = en_core_web_sm.load(disable = ['ner', 'tagger', 'parser', 'textcat'])

这实际上会禁用组件吗?

有关 nlp 管道的 spaCy 信息

python-3.x nlp spacy
3个回答
13
投票

您可以通过以下方式检查当前管道组件

print(nlp.pipe_names)

如果您对输出结果不满意,您可以通过尝试使用该组件来手动检查并尝试打印输出。例如,尝试禁用解析器并打印依赖项标签。


11
投票

正如文档所述,您可以在不加载管道的情况下删除部分管道。默认

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']

0
投票

pyLDAvis.enable_notebook() vis = pyLDAvis.gensim_models.prepare(lda_model, doc_term_matrix, 字典) 可见 运行上述单元格时出现错误: BrokenProcessPool:任务无法取消序列化。请确保函数的参数都是可挑选的。 有谁知道怎么解决吗

© www.soinside.com 2019 - 2024. All rights reserved.