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

Оказывается, в CPAN уже есть http://search.cpan.org/~liosha/Geo-Names-Russian-0.01_1/lib/Geo/Names/Russian.pm, как ни странно, Лёшин. Не знаю, стоит ли его дублировать.

В Екб появилась улица с «неправильным» адресом от новичка. Как часто бот ходит проверять адреса?

Вроде как вручную по запросу.

Хм, хотелось бы регулярно…

И ещё. Другой новичок пронумеровал дома, но в адресе не указал статус. Это как-то можно починить автоматом?

По Казани и Волжску в Марий-Эл бот порезвился основательно, у половины названия улиц статусная часть в начале у половины в конце. Хотя по Волжску всё было правильно до этого.
http://www.openstreetmap.org/?lat=55.87576&lon=48.35594&zoom=16&layers=M

Наконец-то всё правильно сделали.

Бот сделал правильно, по-ботски. Не все люди разделяют такой подход.

Всё стало правильно.

Страница в вики и графики не обновлялись уже почти два месяца, но бота периодически вижу в истории изменений разных городов. Как там, ситуация всё улучшается?

Да не то чтобы сильно - проглядываю периодически валидатор и исправляю мелкие скопления и свежие ошибки, количество багов держится примерно на одном уровне (что означает улучшение ситуации, учитывая что общее количество улиц и адресов быстро растёт). Пока ещё осталось прилично улиц без статусных частей. А график (который http://addresses.amdmi3.ru/api/0.1/plot)) обновляется постоянно.

AMDmi3, запусти по Свердловской области бота еще раз

похоже у нас ситуация снова требует нормализации адресов

http://addresses.amdmi3.ru/?zoom=14&lat=56.95319&lon=63.25223&layers=B00T

фиксить руками такое количество мне не особо хочется…

dedNikifor
В джосме плагином делается за 5 минут…

Пышму поправил, но это нельзя сделать по всей области - отсутствующие статусные части нужно брать из КЛАДР для каждого отдельного НП. Ещё где-то нужно?

каким плагином?)

Без плагина, тупо поиском - за семь :wink:

FixAddresses

del

Как многим уже известно, последний месяц я занимался, как и собирался, общероссийским реестром топонимов. Думаю, пришло время его анонсировать.

Проект назвается streetmangler, лежит тут https://github.com/AMDmi3/streetmangler и состоит из базы названий улиц, C++ библиотеки для работы с ней и утилиты, позволяющей выбрать из дампа .osm улицы, сравнить с базой и классифицировать.

Что умеет: всё то же, что и старый нормализатор (т.е. сказать, правильно ли написано название, в противном случае по возможности предложить исправление), быстрее, без костылей и с дополнительными возможностями плюс функциональность моего Perl модуля Geo::Names::Russian::Mangle, т.е. возможность конвертировать адреса в нужный формат (например, “улица Ленина” → “Ленина ул.” для навигаторов).

  • быстрее, потому что на C++. Россия парсится за 4 минуты.
  • есть биндинги к Python, в планах также Perl
  • улицы сравниваются с базой, поэтому вероятность ложных срабатываний (по крайней мере по части канонического написания) крайне мала и возможна только при ошибках в базе. На данный момент всё, что добавляется в базу я кропотливо просматриваю, а в будущем планируется также сверка с КЛАДР и базы с самой собой, что позволит выявить закравшиеся ошибки, если таковые будут
  • более продвинутая классификация улиц. Кроме канонической формы (т.е. полная статусная часть с правильной стороны) ищутся опечатки с произвольной глубиной:

улци 50 лет Октября|улица 50 лет Октября
ульвар Яна Райниса|бульвар Яна Райниса
уляца Зимняя|Зимняя улица

а также автоматически определяется отсутствие статусной части.

  • возможность задавать свои правила написания статусных частей и добавлять поддержку новых языков.

Основной минус проекта вытекает из того же, из чего вытекают плюсы, а именно из наличия базы и того факта, что она должна быть полной. На данный момент 42.94% уникальных названий улиц в OSM совпадают с базой (старый нормализатор давал 77.40% +/- ошибки в обе стороны). По общему количеству названий (т.е. название с улицы + со всех addr:street на домах) 84.33% и 96.29% соответственно. В общем, наполнена пока только половина базы, но, во-первых, пополнение продолжается, во-вторых, “уникальные” неправильно написанные названия из OSM рано или поздно будут исправлены, и в будущем старый нормализатор будет обогнан.

Планы:

  • перевод нормализации названий на новые рельсы. Собственно, я уже некоторое время ей не занимался, так что число ошибок возросло, но теперь вместо ручной проверки списка замен можно будет исправлять всю Россию автоматически ежедневно с выкладыванием лога замен, для чего, наверное, стоит зарегистрировать нового пользователя. Это, разумеется, касается только приведения к канонической форме, опечатки всегда будут проверяться руками (особенно при неполной базе)
  • наверное, стоит запилить просматривалку по аналогии с addresses.amdmi3.ru
  • дальнейшее пополнение и проверка базы. Нужно как минимум догнать старый нормализатор.
  • потихоньку начать (пока ручное) исправление улиц - канонические формы по областям и отдельные опечатки по всей России. Чем правильнее данные в OSM, тем легче пополнять базу.

Да, проект уже используется в поиске на http://openstreetmap.by, и если ваша улица написана неправильно или её нет в базе, находиться она не будет, так что исправляйте названия в OSM и присылайте добавления к базе.

Всю Россию, всё-таки, не стоит. Лучше сделать poly с только теми регионами, участники из которых согласились на такое. Новый пользователь нужен, конечно.

Zverik
+1
Иногда правильное с точки зрения бота название просто режет слух местного жителя. Давайте уважать мнение тех кто рисует свои города и не навязывать им грамотность, учитывая что все почтовые адреса и вывески в городе принято писать иначе (даже в официальных документах).

Южно-Сахалинск: улица Комсомольская (не Комсомольская улица), улица Бумажная (не Бумажная улица), улица Украинская (а не Украинская улица) и т.д. Что за мода у программистов принимать решения за всю страну.