Почему один и тот же вызов на сервер Stanford CoreNLP иногда> в 50 раз медленнее, чем предыдущие вызовы? - PullRequest
0 голосов
/ 24 июня 2019

Почему один и тот же вызов к серверу Stanford CoreNLP иногда> в 30 раз медленнее, чем предыдущие аналогичные вызовы?

Демонстрация (в этом случае каждый вызов ~ 12 API происходит в ~ 30 раз медленнее, даже если проанализированный текстто же самое):

enter image description here

Например, если я запускаю сервер Stanford CoreNLP с помощью:

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

и запускаю следующеекод, который делает 200 одинаковых вызовов API к серверу Stanford CoreNLP через пакет Python pycorenlp:

import os
import json
from pycorenlp import StanfordCoreNLP
import time
import sys
nlp = StanfordCoreNLP('http://localhost:9001')
total_start_time = time.time()

for i in range(200):
    text = 'without the dataset the paper {0} is useless'.format(i)
    print('text: {0}'.format(text))
    start_time = time.time()
    output = nlp.annotate(text, properties={
        'annotators': 'ner',
        'outputFormat': 'json'
    })
    elapsed_time = time.time() - start_time
    print('elapsed_time: {0:.4f} seconds'.format(elapsed_time))

print('total_start_time: {0:.4f} seconds'.format(time.time()-total_start_time))

Время от времени я замечаю, что вызов API> в 30 раз медленнее, чем обычно, например, см. две выделенные строкиниже:

текст: без набора данных бумага 0 бесполезнаистекшее время: 0,0199 секундтекст: без набора данных бумага 1 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 2 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 3 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 4 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 5 бесполезнаистекшее время: 0,0169 секундытекст: без набора данных бумага 6 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 7 бесполезнаистекшее время: 0,0180 секундтекст: без набора данных бумага 8 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 9 бесполезнаистекшее время: 0,0190 секундтекст: без набора данных бумага 10 бесполезна истекшее время: 0,6911 секунды текст: без набора данных бумага 11 бесполезнаистекшее время: 0,0130 секундтекст: без набора данных бумага 12 бесполезнаистекшее время: 0,0140 секундтекст: без набора данных бумага 13 бесполезнаистекшее время: 0,0150 секундтекст: без набора данных бумага 14 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 15 бесполезнаистекшее время: 0,0179 секундтекст: без набора данных бумага 16 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 17 бесполезнаистекшее время: 0,0140 секундтекст: без набора данных бумага 18 бесполезнаистекшее время: 0,0179 секундтекст: без набора данных бумага 19 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 20 бесполезнаистекшее время: 0,0150 секундтекст: без набора данных бумага 21 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 22 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 23 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 24 бесполезна истекшее время: 0,6343 секунды текст: без набора данных бумага 25 бесполезнаистекшее время: 0,0130 секундтекст: без набора данных бумага 26 бесполезнаистекшее время: 0,0130 секундтекст: без набора данных бумага 27 бесполезнаистекшее время: 0,0160 секундтекст: без набора данных бумага 28 бесполезнаистекшее время: 0,0150 секундтекст: без набора данных бумага 29 бесполезнаистекшее время: 0,0170 секундтекст: без набора данных бумага 30 бесполезнапрошедшее время: 0,0167 секундтекст: без набора данных бумага 31 бесполезнаистекшее время: 0,0180 секунд[…]

(я использую форматирование кавычек вместо блока кода, чтобы добавить акцент.)

Я использую Python 3.6 и Stanford CoreNLP версии 3.9.2, то есть 2018-10-05.Я наблюдал такое поведение на трех компьютерах под управлением Windows 7 SP1 x64 Ultimate, Microsoft Windows 18.03 «Professional» и Ubuntu 16.04.4 LTS 1 (GNU / Linux 4.4.0-128-generic x86_64).

Кажетсячто проблема в основном затрагивает аннотатор ner.Аннотатор parse также затронут, но в меньшей степени.У аннотаторов tokenize,ssplit,pos,depparse,truecase, похоже, нет этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...