2016-04-05 2 views
3

Я пытаюсь запустить pycorenlp по длинному тексту и получить сообщение об ошибке CoreNLP request timed out. Your document may be too long. Как это исправить? Есть ли способ увеличить время ожидания Stanford CoreNLP?pycorenlp: «Запрошен запрос 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 

ответ

3

Вы можете добавить 'timeout': '50000' (блок мс) в properties словаре:

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

В противном случае вы можете запустить сервер NLP Stanford Core, указав t он таймаут:

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

(documentation не упоминает параметр timeout, может быть, они забыли добавить, что это по крайней мере, присутствует в stanford-corenlp-full-2015-12-09, a.k.a. 3.6.0., который является последним публичный релиз)

+1

Похоже, они это делают сейчас но кажется, что нет неограниченного таймаута, и они также не указывают максимальное значение в документах. – displayname

+1

@displayname Один шаг за раз:/ –

+1

Да, к сожалению [проблема, с которой я сейчас сталкиваюсь] (http://stackoverflow.com/questions/39809061/edu-stanford-nlp-io-runtimeioexception-could-not- connect-to-server) может иметь какое-то отношение к проблеме тайм-аута или что-то в этом роде. – displayname