我有很长的文本需要从中提取名词。我使用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
来完成这项特定工作吗?
答案 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。