Приведение названий улиц в соответствие соглашению и правка адресов

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

На данный момент соглашению соответствует почти 94% всех названий (name= на улицах и addr:street), все или почти все административные центры и крупные города сконверчены, а сейчас то, что можно исправить автоматически, я конверчу целыми областями. С улицами без статусных частей сложнее - их надо по-населённо-пунктно брать из КЛАДР’а, и чтобы причесать все деревни из десятка улиц понадобится куча времени - по видимому для этого придётся написать очередного КЛАДРобота. Пока такие баги показываются в валидаторе addresses.amdmi3.ru прежде всех остальных, так что просьба исправлять их по возможности.

В общем, главный результат, ради чего, собственно, всё и затевалось: количество ненайденных по addr:street улиц сократилось с ~116000 до ~31000. Не факт что дальше оно сильно снизится - остаются дома с отсутствующими улицами (в Белгороде, кажется, их много) и адресация по районам/кварталам/населённым пунктам, которую планируется решить поиском по всему подряд, включая landuse и place. Также было исправлено большое количество опечаток и расставлено много статусных частей.

Нормализатор оброс словарями и костылями и всё ещё часто ошибается (и будет ошибаться), так что есть следующая идея - составить на основе сконвертированного списка улица и КЛАДР общероссийский реестр топонимов, с которым хитрым образом сравнивать все названия. Это поможет контролировать и порядок слов, и опечатки и, возможно, разночтения названий (улица Толстого vs. улица Льва Толстого vs. улица Л.Н.Толстого), в том числе сопоставляя OSM с другими базами типа КЛАДР.

Недовольных оказался только один человек из Энема (Карелия) - он за формат “Ленина ул.” поскольку так удобнее работает автодополнение в josm. Nuff said. Также нашлось несколько человек, которые заполняют addr:street и addr:housenumber заглушками типа 1 или *, якобы им так удобнее потом заполнять адреса. Не понял тут вообще ничего, пришлось выкинуть их из статистики (а этих звёздочек около 6 тысяч). Приличный же список тех, кто был за конвертацию у меня пока ещё не дошли руки перенести из лички в wiki. Итого, по моему мнению, по данному вопросу сообщество всё-таки пришло к единому решению и одим поводом для споров и войн стало меньше.

Для тех, кому нужен любой другой формат написания названий, напомню, есть perl модуль: https://github.com/AMDmi3/Geo-Names-Russian-Mangle, который позволяет поставить статусную часть с любой стороны и по желанию сократить её. В планах добавить туда также поддержку номерной части и поясняющего слова, а также освоить CPAN и залить его туда. При условии соответсвия названия улицы соглашению логика работы достаточно тривиальна и легко может быть реализована на любом другом языке.

Интересные ссылки:
График по багам: http://amdmi3.ru/files/addresses.svg
График по нормализатору: http://amdmi3.ru/files/street-names.svg (считаются только названия улиц)
Статистика нормализатора по областям: http://amdmi3.ru/files/names-stat1.txt , http://amdmi3.ru/files/names-stat2.txt (считаются и названия улица и addr:street, сортировка по количеству названий для которых нормализатор предложил/не предложил замену соответственно; первое, обычно, сокращения и неправильный порядок слов, второе - отсутствие статусной части).
Страница в wiki с прогрессом: http://wiki.openstreetmap.org/wiki/User:AMDmi3/Конвертация_названий_улиц