Pycorenlp: "CoreNLP request timed out. Your document may be too long"



我试图在长文本上运行pycorenlp,并得到一条CoreNLP request timed out. Your document may be too long错误消息。如何修复?有没有办法增加Stanford CoreNLP的超时时间?

我不想把文本分割成更小的文本。

这是我使用的代码:

'''
From https://github.com/smilli/py-corenlp/blob/master/example.py
'''
from pycorenlp import StanfordCoreNLP
import pprint
if __name__ == '__main__':
    nlp = StanfordCoreNLP('http://localhost:9000')
    fp = open("long_text.txt")
    text = fp.read()
    output = nlp.annotate(text, properties={
        'annotators': 'tokenize,ssplit,pos,depparse,parse',
        'outputFormat': 'json'
    })
    pp = pprint.PrettyPrinter(indent=4)
    pp.pprint(output)

斯坦福核心NLP服务器是使用启动的

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer 9000

您可以在properties字典中添加'timeout': '50000'(单位为ms):

output = nlp.annotate(text, properties={
    'timeout': '50000',
    'annotators': 'tokenize,ssplit,pos,depparse,parse',
    'outputFormat': 'json'
})

否则,您可以启动Stanford Core NLP服务器,指定超时:

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 50000

(文档中没有提到timeout参数,也许他们忘记添加了,它至少出现在stanford-corelp-full-2015-12-09,也就是3.6.0中,这是最新的公开版本)

相关内容

  • 没有找到相关文章

最新更新