Как найти адрес в неформатированом тексте?

Есть текст в свободной форме, в нем может содержаться адрес( в неизвестной форме ).
Нужно этот адрес вытащить и привести к нужному формату и привязать к станциям метро.
Адреса могут быть с ошибками написания, могут содержать только часть инфы( если город не указан, значит Москва ).

Если-бы был только адрес, можно было-бы сразу через яндекс-мапс или 2гис поискать.
Если-бы было всегда правильное написание городов и улиц можно было-бы по справочнику сравнить.

Буду рад любым советам.
Заранее спасибо.
  • Вопрос задан
  • 3656 просмотров
Пригласить эксперта
Ответы на вопрос 3
@ondister
Что-то мне подсказывает, что нужен справочник улиц вообще. Различных городов. И по нему искать совпадения.
Ответ написан
@maxfox
В общем случае задача очень масштабная. Вам нужно определиться, на какие допущения вы можете пойти: что-то пропустить, найти лишее и т.д.
Даже человеку сложно найти адрес во фразе типа "вчера был на цветочной".
Другое дело, если есть за что зацепиться: название улицы пишется с заглавной буквы, есть обозначения типа "ул." или "улица", в адресе обязательно есть номер дома и т.д.
Если такие критерии подходят, то:
1. Ищите цифры.
2. Ищите вхождения "ул", "улица", "пр", "проспект", "площадь".
3. Ищите слова, начинающиеся с заглавной буквы в середине предложения.
Затем выбирайте лексемы возле этих позиций и прогоняйте через Яндекс/2gis/ФИАС. Как фильтровать и обрабатывать результаты - зависит от самих результатов. Не стоит пытаться написать универсальный парсер, надо ориентироваться на особенности материала, с которым вы работаете.

Я недавно решал похожую, но чуть более простую задачу. Была база в Excel, где в одной из колонок записывались адреса клиентов. Но записывались в очень свободной форме, т.е. был мусор типа "красный кирпичный дом", "въезд под шлагбаум", "позвонить Васе, как будем на месте" и т.д. Мусор удалось отфильровать, хотя примерно в 2-3 из 100 записей приходилось работать руками (но это потому что адреса вообще могло не быть, а было "завод Заря" или "кафе у Петровича").

В общем, удачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы