У меня есть таблицы с плохо образованными адресами в них, и мне нужно, чтобы они были достаточно хороши для геокодирования. Я пробовал некоторые из библиотек Python для парсинга адресов, но они не могут определить некоторые из них. В качестве примера,Используйте regex и python для перемещения города в адресный блок, добавьте амперсанд
«N Monon AVE FRANCESVILLE Вт ЖЕЛТАЯ СТ»
состояние для всех из них Индиана, который у меня нет проблем конкатенации в представленной строке. В приведенном выше примере, это пересечение, что геокодировщик действительно принимают как:
«N Monon AVE & W YELLOW ST FRANCESVILLE»
Мое мышление является то, что самый простой способ, чтобы найти первое слово после того, тип улицы (Ave, Dr, Ct и т. д.), переместите его до конца и добавьте амперсанд вместо него.
У меня есть этот код, который, вероятно, ужасно неэффективен, но он захватывает только первый тип улицы; в приведенном выше примере будет выводиться AVE.
/(Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St)[^(Avenue|Lane|Road|Boulevard|Drive|Street|Ave|Dr|Rd|Blvd|Ln|St)]/i
То, что я не знаю, как сделать, это сказать ему, чтобы захватить все, что слово сразу после первого экземпляра типа улицы. Оттуда я должен использовать re.search и .group [n] для извлечения города и бросить в анализируемую строку.
См https://regex101.com/r/Am033H/1 и http://ideone.com/UNgnAy. –