Простой запуск исходного языка для Java

Я готов начать разработку проекта по НЛП. Я не знаю много доступных инструментов. После поиска в Интернете около месяца. Я понял, что openNLP может быть моим решением.

К сожалению, я не вижу полного руководства по использованию API. Всем им не хватает каких-то общих шагов. Мне нужен учебник с уровня земли. Я видел много загрузок по сайту, но не знаю, как их использовать? мне нужно тренироваться или что-то в этом роде... Вот что я хочу знать -

Как установить/настроить систему nlp, которая может -

  • разбор слов английского слова
  • идентифицировать разные части речи

Ответ 1

Вы говорите, что вам нужно "разобрать" каждое предложение. Вы, вероятно, уже знаете это, но только для того, чтобы быть явным, в NLP термин "синтаксический анализ" обычно означает восстановление некоторой иерархической синтаксической структуры. Наиболее распространенными типами являются составная структура (например, через контекстно-свободную грамматику) и структуру зависимостей.

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

Большой недостаток в синтаксическом анализе - сложность времени. Конечные маркеры POS часто работают со скоростью тысяч слов в секунду. Даже жадные парсеры зависимостей значительно медленнее, а составные парсеры обычно работают от 1-5 предложений в секунду. Поэтому, если вам не нужна иерархическая структура, вы, вероятно, захотите придерживаться конечного POS-теггера для эффективности.

Если вы решите, что вам нужна структура синтаксиса, несколько рекомендаций:

Я думаю, что парсер Стэнфорда, предложенный @aab, включает как составной парсер, так и анализатор зависимостей.

The Berkeley Parser (http://code.google.com/p/berkeleyparser/) - довольно известный составной парсер PCFG, обеспечивает самую современную точность (равную или превосходящую Stanford parser, я считаю), и разумно эффективен (~ 3-5 предложений в секунду).

Браузер BUBS (http://code.google.com/p/bubs-parser/) также может работать с высокоточной грамматикой Беркли и повышает эффективность примерно до 15-20 предложений/сек. Полное раскрытие информации - я один из основных исследователей, работающих над этим парсером.

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

И пара ссылок Wikipedia для фона при необходимости:

Ответ 2

Как правило, вы выполняете эти две задачи в другом порядке:

  • Выполнение тегов с частичной речью
  • Запустите парсер, используя теги POS, как вход

Документация OpenNLP не настолько тщательна, и некоторые из них трудно найти из-за переключения на apache. Некоторые (возможно, немного устаревшие) учебники доступны в старой SF wiki.

Возможно, вы захотите взглянуть на инструменты Stanford NLP, в частности, Stanford POS Tagger и Stanford Parser. У обоих есть загружаемые файлы, которые включают в себя предварительно подготовленные файлы моделей, а также демонстрационные файлы в каталоге верхнего уровня, в которых показано, как начать работу с API и короткими командами оболочки, которые показывают, как использовать инструменты из командной строки.

LingPipe может быть еще одним хорошим набором инструментов для проверки. Быстрый поиск здесь приведет вас к ряду подобных вопросов со ссылками на другие альтернативы тоже!

Ответ 4

Самые популярные:

  • GATE: прост в использовании и довольно быстро начать с
  • UIMA: медленная кривая обучения, но более эффективная и более общая