Есть ли хорошая библиотека обработки естественного языка

Мне нужно реализовать некоторые НЛП в моем текущем модуле. Я ищу хорошую библиотеку, которая может помочь мне здесь. Я наткнулся на «LingPipe», но не мог полностью следить за тем, как его использовать.
В принципе, нам нужно реализовать функцию, в которой приложение может расшифровать инструкции клиента (инструкции по доставке), введенные простым английским языком. Например:

  • Завтра будет завтра в 12:00
  • Запросить доставку после 10 июня
  • Пожалуйста, не отправляйте до среды
  • Добавить еще 10 единиц XYZ к заказу

LingPipe очень хорош и хорошо документирован. Вы также можете взглянуть на:

  • OpenNLP
  • Стэнфордский НЛП
  • Apache UIMA
  • ВОРОТА
  • CogComp-NLP
  • FrameNet

Последнее может быть особенно интересно для вас, хотя я не знаю, есть ли какие-либо легкодоступные Java-реализации (и, может быть, это слишком большая пушка для вашей проблемы в любом случае 🙂

Идея Пола использовать DSL, вероятно, проще и быстрее реализовать и более надежна для использования для ваших клиентов. Я тоже рекомендую сначала изучить это.

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

В пространстве Java Groovy имеет некоторую поддержку для создания DSL .

Для других языков JVM см.

  • Scala : Scala NLP – Бриз и Эпик (родственный spark-project.org )
  • Clojure: clojure-opennlp
  • Инструменты для упрощения текста (Java)
  • Как правильно задать слово «a» и «an»?
  • Java Stanford NLP: Часть лейблов речи?
  • Как я могу разделить несколько соединенных слов?
  • Лемматизация java
  • Code Golf: число для слов
  • Как мне выполнить слово Stemming или Lemmatization?
  • Нечеткая строка поиска в Java
  • Как работает Google «Вы имели в виду?» Алгоритм работы?
  • Как вы реализуете «Вы имели в виду»?
  • Стермеры против Лемматизаторов
  • Давайте будем гением компьютера.