首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用部分nlp管道

禁用部分nlp管道
EN

Stack Overflow用户
提问于 2018-12-20 22:28:38
回答 2查看 5.5K关注 0票数 10

我在装有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'])

这真的会禁用组件吗?

spaCy information on the nlp pipeline

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-21 20:43:01

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

代码语言:javascript
复制
print(nlp.pipe_names)

如果您对输出不满意,您可以尝试使用组件进行手动检查,并尝试打印输出。例如,尝试禁用解析器和打印依赖标记。

票数 9
EN

Stack Overflow用户

发布于 2020-10-05 18:16:06

正如documentation所说,您可以在不加载管道的情况下删除部分管道。默认en_core_web_sm模型具有以下管道:

代码语言:javascript
复制
   import spacy
   nlp = spacy.load('en_core_web_sm')
   print(nlp.pipe_names)
   ['tagger', 'parser', 'ner']

因此,不是:

代码语言:javascript
复制
    nlp = spacy.load('en_core_web_sm', disable = ['ner', 'tagger', 'parser'])
    print(nlp.pipe_names)
    []

您可以执行以下操作:

代码语言:javascript
复制
    nlp = spacy.load('en_core_web_sm')
    nlp.disable_pipes('ner', 'tagger', 'parser')
    print(nlp.pipe_names)
    []

或者,如果您只需要删除一个管道:

代码语言:javascript
复制
    nlp = spacy.load('en_core_web_sm')
    nlp.remove_pipe('ner')
    print(nlp.pipe_names)
    ['tagger', 'parser']
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53870599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档