用于快速检测名词的自然语言处理
Natural Language Processing for fast detection of nouns
我有很长的文本需要从中提取名词。我用 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
来完成这项特定工作吗?
您可以通过禁用不需要的预训练管道来加速 spaCy:
with nlp.disable_pipes("tagger", "parser"):
# your code
(请注意,如果您仍想访问 token.tag
,则无法禁用 tagger
)
或者您甚至可以完全避免加载这些组件:
nlp = spacy.load("en_core_web_lg", disable=["tagger", "parser"])
即使只禁用 parser
也绝对可以提高您的速度。
有关详细信息,请参阅 here。
我有很长的文本需要从中提取名词。我用 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
来完成这项特定工作吗?
您可以通过禁用不需要的预训练管道来加速 spaCy:
with nlp.disable_pipes("tagger", "parser"):
# your code
(请注意,如果您仍想访问 token.tag
,则无法禁用 tagger
)
或者您甚至可以完全避免加载这些组件:
nlp = spacy.load("en_core_web_lg", disable=["tagger", "parser"])
即使只禁用 parser
也绝对可以提高您的速度。
有关详细信息,请参阅 here。