Я думаю, что ваш первоначальный подход стоит продолжить. Я вижу вариант для 2 шагов здесь:
Получите «текстовое» содержимое почты с помощью Jsoup. Пример этого здесь: Получить текст из html Использование Jsoup.
Используйте OpenNLP или StanfordNLP NER для извлечения именованных сущностей. Места, имена и т. д.
Другие варианты включают в себя игру с деревом синтаксического анализа, созданным из предложений, и посмотреть, есть ли шаблон для данных, которые вы открыты для извлечения.
Что касается получения from location
и to location
, вы можете попытаться создать дерево синтаксического анализа для предложений, здесь есть отличный пример: Извлечь именное словосочетание из предложений OpenNLP. Просто измените код, чтобы получить PP
(предложная фраза) в line 65
, поскольку в настоящее время он получает NP (именная фраза).
Вы заметите, что from location
и to location
являются предложными фразами (от и до являются предлогами). Как только вы получите предложные фразы из предложений, вы можете попытаться извлечь компонент существительного (после предлога) и использовать другие эвристики, чтобы определить, являются ли они местоположениями.
Что-то, что также может быть очень полезным, это если у вас есть лексикон возможных местоположений. Если есть лексикон, то ваше «пространство поиска» меньше, вы можете проверить свои предложные фразы, чтобы увидеть, являются ли они известными местоположениями.
Как кто-то упомянул в комментарии, ни один распознаватель сущностей не может идеально работать из коробки. Эти вещи обычно требуют большой настройки, поэтому вы должны стремиться экспериментировать и смотреть на то, что говорят данные.
Надеюсь это поможет
person
pelumi
schedule
19.03.2016