Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Разбор адреса


Автор: infarch 24.6.2010, 10:29
Не встречался ли кто с модулями позволяющими разбирать адреса. Например строку "г. Москва, ул. В. Пупкина, дом 555, кв.666" надо разложить на город, улицу, дом и квартиру. Следует так-же учитывать что не все адреса написаны в едином стиле. Может отсутствовать точка или запятая, ну и так далее. Я делал такой разборщик, но вижу что много не распознается. Может, есть что либо готовое?

Автор: migaro 28.6.2010, 05:19
Ну покажите что у вас уже есть.. а там и поглядим..  smile 

Автор: infarch 29.6.2010, 10:30
Показывать не буду, а общий принцип могу рассказать. Адрес режется по запятым, а потом каждая часть анализируется по разным признакам. Типа "ул. ...", "пгт ...", "... пр-т" и так далее. Но учитывая криворукость адресописателей этот метод обрабатывает порядка 75 процентов записей. Хотелось бы повысить этот процент smile Возможно сделаю анализ позиции распознаваемой части по ее положению в строке, и поиск нераспознанных частей по базе городов и улиц. Но если такое уже есть, то изобретать велосипед я не хочу.

Автор: Suppir 29.6.2010, 10:40
Это сложная задача. В первую очередь необходимо собрать все возможные варианты адресов.
Если в адресах некоторые части могут переставляться местами, то будет еще веселее.

Не надейтесь найти готовое решение, которое будет распознавать 100% адресов.

Добавлено через 5 минут и 10 секунд
Если не очень торопитесь, могу взяться за эту задачу через два месяца.
Напишу очень точный парсер (есть опыт работы в аналогичных задачах). 

Автор: infarch 29.6.2010, 10:46
А то я не знаю что сложная smile Начал я с того что спарсил с инета пару десятков тысяч разных адресов и на них отлаживал алгоритм. Дня 4 ушло даже на такой процент распознавания.

Автор: migaro 29.6.2010, 10:48
Цитата(Suppir @ 29.6.2010,  10:40)
Если в адресах некоторые части могут переставляться местами, то будет еще веселее.

Не надейтесь найти готовое решение, которое будет распознавать 100% адресов.

Да.. это точно.. Дело в том что адресс можно записать по разному.. Нет единого стандарта для этого.. а если бы и был.. То врятли бы все писали по нему..  smile 

Автор: Suppir 29.6.2010, 10:55
У меня есть парсер, которые распознает заголовки актов органов власти (делит на "орган", "тип документа", "дату", "номер", "название"). Так вот, несмотря на единые стандарты - в каждом регионе, каждый орган власти умудряется писать по-своему.  Набоковы, блин! smile  Этому парсеру уже три года и он используется в нескольких программах, но мне каждую неделю приходится добавлять исключения и изменять существующие правила  smile 

Автор: infarch 29.6.2010, 11:27
Цитата(Suppir @ 29.6.2010,  10:40)

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

Спасибо, но я лучше сам поиграюсь smile Это не настолько важно, чтобы привлекать сторонних специалистов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)