2016-05-07 3 views
0

В моем проекте используется Stanford Parser, где я буду разбирать более 100 000 предложений. Поскольку запуск Stanford Parser из Java или NLTK сначала загружает синтаксический анализатор, а затем фактически выполняет над ним предложение. Я хотел узнать, сколько времени загрузки по сравнению с фактическим временем разбора входного предложения.Профилирование Stanford Parser

Есть ли способ добавить заявления печати в код, скомпилировать его и узнать время, которое требуется для каждого предложения.

ответ

0

Прежде всего, вы должны убедиться, что используете shift reduce parser (~ 10 раз быстрее), и если вам нужны только анализы зависимостей, то dependency parser (~ 100 раз быстрее).

Но для профилирования: если вы разбираете несколько сотен предложений, время, затрачиваемое на разбор предложений, будет значительно выше, чем время загрузки моделей. Модель загружается только один раз при запуске программы. Если это не достаточно гранулировано, вы всегда можете поместить вызов System.currentTimeMillis() до и после вызова анализатора и профилировать его таким образом.