我正在使用Stanford的CoreNLP库以及Stanford CoreNLP Python Wrapper处理大量文档。我正在使用以下注释器:
tokenize, ssplit, pos, lemma, ner, entitymentions, parse, dcoref
以及shift-reduce解析器模型
englishSR.ser.gz
。我主要将CoreNLP用于其共引用解析/命名实体识别,据我所知,为此目的我正在使用最少的注释器集。我可以采取哪些方法来加快文档的批注?
其他SO答案都建议不要为每个文档加载模型,但是我已经这样做了(因为包装器启动了服务器一次,然后来回传递文档/结果)。
我正在处理的文档平均长度为20个句子,其中一些句子最长为400个句子,而某些句子则短至1个。每个句子的平均解析时间为1秒。我每天可以在一台机器上运行一个单线程进程来解析约2500个文档,但我想将其加倍(如果不是更多的话)。
最佳答案
尝试设置Stanford CoreNLP服务器,而不是每次运行都加载注释器。这样,您可以一次加载注释器并更快地处理文档。第一个过程将较慢,但其他过程将较快。查看Stanford CoreNLP server的更多详细信息。
话虽如此,这通常是准确性和速度之间的权衡。因此,您可能想对其他工具(例如NLTK和spacy)进行尽职调查,以了解最适合您的工具。
关于python - 我该如何加快斯坦福大学的CoreNLP(dcoref/ner)的速度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31562880/