Как более эффективно комментировать длинный текст с помощью Stanford CoreNLP Server?

Я пытаюсь комментировать 200 тыс. Документов, по одному документу с помощью Stanford CoreNLP. Каждый документ содержит в среднем 200 номеров предложений или эквивалентно 6 тыс. Токенов.

Я не знаком с java, поэтому использую pycorenlp. Я запускаю сервер следующей командой, как было предложено (позже я отредактировал ее с дополнительными аргументами).

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

Я использую java 1.8 и python 3.6. Ниже приведены проблемы, с которыми я столкнулся, и способы, которые я пытался решить, а также мои вопросы:

1.Java OutOfMemory, превышен предел накладных расходов сборщика мусора:

Я сделал: увеличил память Java и добавил -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics

Эффект: Пока все нормально. Не уверен, что будет дальше. Мне не удалось обработать весь текст.

Проблема: пока нет.

2. Проблемы с соединением / поломкой трубы

Я сделал: Завершал работу сервера каждые четыре документа в моем коде. (Я могу обработать максимум 4 документа. Иногда я даже не могу обработать один документ)

Эффект: вроде работает нормально. Однако после перезапуска сервера это кажется довольно медленным.

Вопрос: Есть ли лучшие или умные решения? Если я буду продолжать это делать, у меня будут проблемы с использованием сервера, например запрет на использование сервера?

3. Низкая скорость

Я сделал: Увеличил потоки до 12, 18 при вызове сервера.

Эффект: работа намного лучше, чем 1 поток

Вопрос: Есть ли предложения по ускорению? Обработка даже одного документа занимает почти полчаса из-за длины документов, хотя я вызываю несколько аннотаторов. (Я понимаю, что использование большего количества аннотаторов занимает больше времени, но мне все равно нужно их использовать.)

4. Нет ответа от сервера вообще. Даже с ошибками.

Это самая болезненная проблема. Поскольку на самом деле у меня нет опыта в сфере ИТ, становится очень трудно понять, в чем заключаются проблемы. Вот где программа застревает. Ни предупреждений, ни ошибок. Может быть, через час это будет продолжаться. Или он может оставаться там навсегда, пока я не убью программу.

[pool-1-thread-2] INFO CoreNLP - [/127.0.0.1:56846] API call w/annotators tokenize,ssplit,pos,depparse,lemma,ner,parse,dcoref,natlog,openie
the same field as the previous one is detected with magnitude @xmath107 photometric redshift, like borg_ 0240- 1857_ 129, is peaked at @xmath111, with a broad higher- redshift wing......(further content omitted)

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


0 ответов

Другие вопросы по тегам