用于快速检测名词的自然语言处理

时间:2020-03-03 15:08:33

标签: nlp spacy

我有很长的文本需要从中提取名词。我使用spaCy作为

nlp = spacy.load("en_core_web_lg") # for better name entity detection
doc = nlp(text)
for token in doc:
    if token.tag_=='NN' or token.tag_=='NNP':
        # store token.lemma_
for ent in doc.ents:
    # store ent.text

但是,它非常慢,因为spaCy进行了我不需要的完整分析。

我可以加快spaCy来完成这项特定工作吗?

1 个答案:

答案 0 :(得分:1)

您可以通过禁用不需要的预训练管道来加快处理速度:

with nlp.disable_pipes("tagger", "parser"):
   # your code

(请注意,如果您仍然想访问token.tag,则不能禁用tagger

或者您甚至可以完全避免加载这些组件:

nlp = spacy.load("en_core_web_lg", disable=["tagger", "parser"])

即使仅禁用parser也绝对可以提高速度。

有关更多信息,请参见here