2016-05-20 2 views
3

Я пытаюсь обновить мою версию Stanford CoreNLP до последней версии (ранее на v3.5.2, попытался перейти на v3.6.0). После компиляции всех новых фляг, необходимых для v3.6.0, я запустил автономный сервер Stanford CoreNLP (используя Apache Thrift v0.9.3).Ошибка ввода-вывода Стэнфордский сдвиг Уменьшить парсер

Кроме того, я использую сокращающий парсер Стэнфорда, который можно найти по следующей ссылке: Stanford Shift Reduce Parser. Я считаю, что последняя версия модели была опубликована 23.10.2014. В частности, мне нужна модель englishSR.beam.ser.gz (английская пусковая модель с уменьшением пучка).

К сожалению, на работает мой новый сервер (Stanford CoreNLP v3.6.0/Apache Бережливость v0.9.3), журналы отображается сообщение об ошибке:

Reading in configuration from scripts/config... 
Initializing Parser... 
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [0.6 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [0.5 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [1.5 sec]. 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/defs.sutime.txt 
May 20, 2016 3:41:00 AM edu.stanford.nlp.ling.tokensregex.CoreMapExpressionExtractor appendRules 
INFO: Read 83 rules 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.sutime.txt 
May 20, 2016 3:41:01 AM edu.stanford.nlp.ling.tokensregex.CoreMapExpressionExtractor appendRules 
INFO: Read 267 rules 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.holidays.sutime.txt 
May 20, 2016 3:41:01 AM edu.stanford.nlp.ling.tokensregex.CoreMapExpressionExtractor appendRules 
INFO: Read 25 rules 
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0.4 sec]. 
03:41:01.566 [main] ERROR edu.stanford.nlp.io.IOUtils - Loading parser from serialized file edu/stanford/nlp/models/srparser/englishSR.beam.ser.gz ... 
done [10.4 sec]. 
Initializing Tokenizer... 
The CoreNLP server is running... 

С другой стороны, это журнал, который виден при запуске старый сервер (Stanford CoreNLP v3.5.2/v0.9.3 бережливость):

Reading in configuration from scripts/config... 
Initializing Parser... 
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [1.3 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [1.1 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [2.7 sec]. 
Initializing JollyDayHoliday for SUTime from classpath: edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1. 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/defs.sutime.txt 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.sutime.txt 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.holidays.sutime.txt 
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [0.5 sec]. 
Loading parser from serialized file edu/stanford/nlp/models/srparser/englishSR.beam.ser.gz ... done [9.8 sec]. 
Adding annotator dcoref 
Initializing Tokenizer... 
The CoreNLP server is running... 

Как вы можете видеть, новые ошибки сервера из при попытке загрузить в srparser и не заканчивается «Добавление Annotator dcoref». Я не изменял ни один из других файлов и не уверен, что могло вызвать несоответствие. В настоящее время ищет файл свойств NLP в Stanford Core, но я был бы признателен за любую помощь в этом вопросе. Заранее спасибо!

+0

Удостоверьтесь, что у вас есть английская модель jar в вашем CLASSPATH.Вы можете скачать эту банку здесь: http://stanfordnlp.github.io/CoreNLP/download.html ..., что jar определенно содержит файл анализатора смены shift – StanfordNLPHelp

+0

Также вам может быть интересно: http: //stanfordnlp.github .io/CoreNLP/corenlp-server.html – StanfordNLPHelp

+0

Кроме того, я не уверен, почему вы говорите «перестроен с помощью муравья» ... если вы хотите использовать v3.6.0 все, что вам нужно, это jar stanford-corenlp-3.6.0.jar и соответствующие зависимости и модели ... все, что вам нужно, доступно здесь: http://stanfordnlp.github.io/CoreNLP/download.html – StanfordNLPHelp

ответ

0

Я выполнил эту команду и не было никаких проблем:

java -Xmx6g -cp "stanford-corenlp-full-2015-12-09/*:stanford-english-corenlp-2016-01-10-models.jar" edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,parse -file sample-text.txt -outputFormat text -parse.model edu/stanford/nlp/models/srparser/englishSR.beam.ser.gz 

Это используя распределение для Стэнфордского CoreNLP 3.6.0 и новейшие модели банки, которые мы используем.

Обязательно используйте эти банки и только те банки, если в вашем CLASSPATH есть более старые версии вещей, которые могут вызывать проблемы совместимости, которые могут заставить работу не работать.

И только для того, чтобы быть понятным, в дистрибутив входит стандартная модель, которая содержит некоторые основные функции для использования инструментария. Затем отдельно есть английская модель jar, которая ОГРОМНА и содержит ВСЕ английские ресурсы.

Модели смены парсера на английском языке все в английских моделях jar, которые мы распространяем сейчас, у которых есть ВСЕ английские ресурсы. Это рекомендуемый способ получения английских ресурсов, недоступных в стандартной банке. Возможно, мне придется обновить некоторые страницы, чтобы отразить эту информацию. Возможно, старая смена уменьшает размеры банок не совместима с 3.6.0, я буду исследовать.

Все эти вещи доступны здесь: http://stanfordnlp.github.io/CoreNLP/download.html

Если вы все еще возникают вопросы, дайте мне знать, и дайте мне знать, где баночка причиной проблемы исходит от и я буду исследовать. Но если вы запустите эту команду с ресурсами, загруженными по ссылке выше, она будет работать нормально.

+0

Написал ответ в нижней части моего вопроса и не уверен, что вы смогли его увидеть; возможно, мы могли бы перевести это в чат? Стандартное распределение, похоже, работает отлично, но моя временная реализация сервера/клиента может быть проблемой ... –

0

Вы назвали метод ShiftReduceParser.loadModel?

Этот метод вызывает метод IOUtils.readObjectAnnouncingTimingFromURLOrClasspathOrFileSystem, и его источником является следующим:

try { 
    Timing timing = new Timing(); 
    logger.error(msg + ' ' + path + " ... "); 
    obj = IOUtils.readObjectFromURLOrClasspathOrFileSystem(path); 
    timing.done(); 
} catch (IOException | ClassNotFoundException e) { 
    throw new RuntimeIOException(e); 
} 
return obj; 

"logger.error" является ошибкой, вероятно. Думаю, это будет «logger.info».

+0

Я действительно вызывал метод loadModel(), но немного не уверен в том, какова ваша претензия. Вы хотите сказать, что сообщение об ошибке вводит в заблуждение? Все, кажется, прекрасно разбирается даже с ошибкой при загрузке файла модели, указанного выше, за вычетом аннотаций coref, сделанных «аннотатором dcoref», который, похоже, не загружается. –

Смежные вопросы