Есть ли способ получить предмет предложения с помощью OpenNLP?

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

В настоящее время мы используем openNlp для:

  • Разделите предложение
  • Определите имя-фраза, глаголы и т.д. предложения
  • Определите все "темы" предложения
  • (НЕ ЕСТЬ СДЕЛАНО!) Определите "основную тему" ​​предложения

Пожалуйста, дайте мне знать, если у вас есть яркие идеи.

Ответы

Ответ 1

Зависимость Parser

Если вам интересно извлекать грамматические отношения, например, какое слово или фраза является предметом предложения, вы действительно должны использовать парсер зависимостей. Хотя OpenNLP поддерживает синтаксический анализ структуры фразы, я не думаю, что он еще раз анализирует зависимость.

Программное обеспечение с открытым исходным кодом

Пакеты, написанные на Java, которые поддерживают анализ зависимостей, включают:

Из них Стэнфордский Парсер является самым точным. Однако некоторые конфигурации MaltParser могут быть безумно быстрыми (Cer и др. 2010).

Ответ 2

Для грамматического объекта вам нужно будет полагаться на конфигурационную информацию в дереве. Если синтаксис выглядит примерно так (TOP (S (NP ----) (VP ----)), то вы можете взять NP в качестве объекта; часто, хотя и вовсе не всегда, так будет. Однако только некоторые предложения будут иметь такую ​​конфигурацию; можно легко представить структуры с предметами, которые не находятся в этом положении - например, пассивные конструкции.

Вероятно, вам лучше использовать MaltParser.