如何加快Spacy的nlp调用速度?

2024-01-17

我必须处理数十万条文本。我发现以下内容中花费时间最长的事情:

nlp = English()
ruler = EntityRuler(nlp)
patterns = [...]
ruler.add_patterns(patterns)
nlp.add_pipe(ruler)
...
#This line takes longer than I would like
doc = nlp(whole_chat)

当然,我有很多模式。但有没有办法加快速度呢?我只有实体尺管,没有其他。


默认情况下,Spacy 将许多模型应用于您的文档:POS 标记器、句法解析器、NER、文档分类器,也许还有其他东西。

也许您不需要其中一些模型。如果是这种情况,您可以禁用它们,这将加快您的管道速度。您可以在创建管道时执行此操作,如下所示:

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

或者,按照 @oleg-ivanytskiy 的回答,您可以在nlp.pipe() call:

nlp = spacy.load("en_core_web_sm")
for doc in nlp.pipe(texts, disable=["tagger", "parser"]):
    # Do something with the doc here
    print([(ent.text, ent.label_) for ent in doc.ents])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何加快Spacy的nlp调用速度? 的相关文章

随机推荐