Есть ли способ получить предмет предложения с помощью OpenNLP?
Есть ли способ получить предмет предложения с помощью OpenNLP?
Я пытаюсь определить наиболее важную часть предложения пользователей. Как правило, пользователи будут отправлять предложения в наш "движок", и мы хотим точно знать, какова основная тема этого предложения.
В настоящее время мы используем openNlp для:
- Разделите предложение
- Определите имя-фраза, глаголы и т.д. предложения
- Определите все "темы" предложения
- (НЕ ЕСТЬ СДЕЛАНО!) Определите "основную тему" предложения
Пожалуйста, дайте мне знать, если у вас есть яркие идеи.
Ответы
Ответ 1
Зависимость Parser
Если вам интересно извлекать грамматические отношения, например, какое слово или фраза является предметом предложения, вы действительно должны использовать парсер зависимостей. Хотя OpenNLP поддерживает синтаксический анализ структуры фразы, я не думаю, что он еще раз анализирует зависимость.
Программное обеспечение с открытым исходным кодом
Пакеты, написанные на Java, которые поддерживают анализ зависимостей, включают:
Из них Стэнфордский Парсер является самым точным. Однако некоторые конфигурации MaltParser могут быть безумно быстрыми (Cer и др. 2010).
Ответ 2
Для грамматического объекта вам нужно будет полагаться на конфигурационную информацию в дереве. Если синтаксис выглядит примерно так (TOP (S (NP ----) (VP ----)), то вы можете взять NP в качестве объекта; часто, хотя и вовсе не всегда, так будет. Однако только некоторые предложения будут иметь такую конфигурацию; можно легко представить структуры с предметами, которые не находятся в этом положении - например, пассивные конструкции.
Вероятно, вам лучше использовать MaltParser.