Jul 25, 2016 22:01
Занимаюсь задачкой автоматической нормализации адресов. На первый взгляд - все просто. Есть справочник налоговой инспекции, ФИАС, в котором содержатся все существующие регионы, районы, населенные пункты и улицы России. Надо просто преобразовать в нужный вид и все готово.
В подобного рода задачках самый простой и очевидный способ дает весьма неплохие результаты относительно вложенных сил. Скажем, получается корректно нормализовать 75% адресов. Этот результат можно получить, скажем дня за 2-3. И как всегда, нет ничего удивительного, что на прирост в 20% уходит несколько месяцев.
Поначалу кажется, что модель данных адресов проста - есть регион, район, населенный пункт, улица и дом. Но потом выясняется, что оказывается, один населенный пункт может содержаться в другом. Например "г. Москва, поселок Мосрентген".
А еще нужно учитывать что русский - флективный язык. И "поселок Октябрьский" легко может оказаться "деревней Октябрьской" или даже чем-нибудь вроде "колхоза имени Красного Октября".
И традиционная проблема - непоследовательность данных. Например, в Старом Осколе есть "ул. XXII партсъезда" и в нем же есть "ул. XXV съезда КПСС".
Для меня стало открытием, что оказывается, весьма часто в одном и том же городе есть две улицы с одинаковым названием, но разными типами. В Астрахани например есть "улица Николая Островского" и "проезд Николая Островского".
Неожиданным было и то, что в названии может содержаться тип улицы, и он отличается от формального типа улицы. Например, в Москве есть Мичуринский проспект. С ним все хорошо, это - честный проспект. А еще есть улица "Мичуринский проспект. Олимпийская деревня".
Как известно, подготовка и формализация данных - самый тяжелый процесс при решении задач автоматического анализа.