Обработка почтовых адресов делается по КЛАДР/ФИАС и состоит в поиске такого адреса из адресной базы, который наилучшим образом подходит к исходным данным.

Дополнительно записываются все сделанные в ходе разбора действия, из которых составляются коды разбора и на основании которых результату присваивается статус разбора (категория достоверности).

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

Найденный адрес представляется в гранулированном виде: индекс, регион, район, город, населённый пункт, улица, дом, расширение дома. В дополнение есть опция получения кодов КЛАДР, ОКАТО и ИФНС. На выходе адрес в соответствии с настройками вывода может быть представлен одной строкой или оставлен в отдельных полях, а также отформатирован в удобном виде.

Обработка адреса включает:

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

Пример

Исходные данные Результат
Растов Вавилова 666 13 344064, обл Ростовская, г Ростов-на-Дону, ул Вавилова, дом 666, квартира 13
индекс регион тип рег. район тип р-на город тип г. н/п тип н/п
344064 Ростовская обл Ростов-на-Дону г
улица тип ул. дом расш. дома коды статус
Вавилова ул 666 кв 13 EDIT_3 REST_0 REST_1 NDEF_0 TYPE_3 TYPE_5 REL

Коды разбора

  • Разбор точный OK
  • Исправление/актуализация части названия на уровне N EDIT_N
  • Восстановление пропущенной части адреса на уровне N REST_N
  • Исправление обозначения типа части адреса на уровне N TYPE_N
  • Неоднозначность адреса на уровне N AMBI_N
  • Не найдена часть адреса на уровне N NDEF_N
  • Дом не найден в адресной базе H_NF
  • Адрес актуализирован, название изменилось ACTZ
  • В процессе разбора сделаны допущения ASSM
  • Некоторые части адреса не распознаны NCOV
  • Иностранный адрес FRGN

Суффиксы уровня

  • индекс _0
  • регион _1
  • район _2
  • город _3
  • н/п _4
  • улица _5
  • дом _6
  • расширение дома _7

Статус

REL
Найден только один вариант разбора или же из нескольких найденных соответствий оставлено одно, значительно превосходящее другие по степени достоверности. Полученный результат разбора считается точным и достоверным.
UNC
Алгоритм разбора не совсем уверен в единственности или правильности полученного результата. Либо исходные данные не поддаются однозначному разбору, либо было найдено несколько одинаково хороших/плохих вариантов, из которых не удалось выбрать только один.