Как стать автором
Поиск
Написать публикацию
Обновить
HFLabs
Повышаем качество клиентских данных для бизнеса

Собрали всем «Хабром» справочник «Кем выдан…» для паспортов. Качайте на здоровье

Время на прочтение5 мин
Количество просмотров62K


С пару месяцев назад мы поэкспериментировали: получится ли на «Хабре» собрать годный справочник подразделений, выдавших российские паспорта. Дело полезное: эти данные нужны много кому, канонического источника нет, а существующие — очень так себе.

И знаете, все получилось. Пригодный к использованию справочник готов, можно качать и пользоваться. А еще мы сделали подсказки, которые ускоряют ввод подразделений в электронные формы.

«Голый» CSV — в открытом доступе


Собранный и очищенный справочник мы выложили на GitHub. Внутри все просто, CSV с двумя полями:

  • код подразделения;
  • название подразделения.

Лежит здесь github.com/hflabs/fms-unit/releases/latest.

Есть еще готовые подсказки для форм ввода (причем бесплатные)


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

«Подсказки» DaData.ru можно интегрировать в сайт, CRM или CMS и прослыть заботливым малым: пользователю достаточно ввести код подразделения, а название заполнит сервис.


Кажется, все ненавидят заполнять название подразделения. Мы пытались облегчить страдания людей

Еще «Подсказки» вытаскивают регион и тип подразделения из кода, иногда удобно. Вот краткая спецификация ответа.
Название Описание
value Значение одной строкой (как показано в списке подсказок)
data.code Код подразделения
data.name Название подразделения в творительном падеже («кем выдан?»)
data.region_code Код региона
data.type Вид подразделения:

  • 0 — подразделение ФМС;
  • 1 — ГУВД или МВД региона;
  • 2 — УВД или ОВД района или города;
  • 3 — отделение полиции.
До 10 000 запросов к «Подсказкам» в день даем бесплатно, это ≈300 заполненных форм. Больше — в составе подписки, от 5 000 ₽ в год. Работает через jQuery-плагин, API либо компоненты для разных CRM, CMS, «1C» и прочего.

Детали — на dadata.ru/suggestions/outward/fms_unit/.

«Хабр» здорово помог с данными


Первый вопрос тех, кто слышит о проекте: «Реально через „Хабр“ собрали?». Помог не один только «Хабр», но вклад хабражителей велик и обширен. Мы благодарны и немного удивлены: первый раз обратились к сообществу, и сразу такой результат.

Изначально у нас были кое-какие наработки. Но, во-первых, далеко не полный справочник. Во-вторых, хотелось проверить, насколько данные адекватны реальным паспортам.

Многие прислали подразделения из своих паспортов через форму для сбора, когда мы кинули клич. Слали по и одной и по пять-десять записей. Героям, не поленившимся вбивать все это руками, — уважение.

Три человека предложили в личке базы почтенного размера. Доброжелательно и безвозмездно.


Тем, кто тревожится за безопасность: все справочники присылали обезличенными, ни байта персональных данных

Такие подарки ощутимо двигали дело вперед. В итоге недели через три мы собрали объем, из которого не стыдно делать пригодный к промышленному использованию продукт.

Путь к успеху — «Куча сырых данных + 300 регекспов + немного питонячки»


Итак, сырые данные на руках у продуктовода «Дадаты» nalgeon. Дальнейшие пляски он описал цитатой из заголовка. Все, что мы собрали, прошло череду чудесных трансформаций.

Для начала нормализовали названия подразделений. Здесь пришлось задорно поработать напильником. Например, в «живых» паспортах номера территориальных подразделений указывают с «№»: «ТП № 1 В Г. ХИМКИ...». Так же и в большинстве собранных справочников, кроме одного — в нем все номера без «№»: «ТП 1 В Г. ХИМКИ...». Пришлось вставлять.

Схлопнули годы. В нескольких справочниках названия подразделений «размазаны» по годам, даже когда не меняются со временем.

500-168,ОТДЕЛЕНИЕМ УФМС РОССИИ ПО МОСКОВСКОЙ ОБЛ. В Г. ТРОИЦКЕ,2007
500-168,ОТДЕЛЕНИЕМ УФМС РОССИИ ПО МОСКОВСКОЙ ОБЛ. В Г. ТРОИЦКЕ,2008
500-168,ОТДЕЛЕНИЕМ УФМС РОССИИ ПО МОСКОВСКОЙ ОБЛ. В Г. ТРОИЦКЕ,2009
500-168,ОТДЕЛЕНИЕМ УФМС РОССИИ ПО МОСКОВСКОЙ ОБЛ. В Г. ТРОИЦКЕ,2010

Такие записи мы объединили, привязав к периоду: в примере выше из четырех записей получилась одна с датами «2007–2010».

Собрали еще один справочник — «2018+». В 2018 году случился переворот — теперь в паспортах пишут название не подразделения, а «верховного» управления МВД по региону. Поэтому в документе, выданном в Красноярском крае, вне зависимости от кода указывают «ГУ МВД РОССИИ ПО КРАСНОЯРСКОМУ КРАЮ».

Мы взяли все собранные коды, разбили по регионам и нагенерили для них одинаковые названия в стиле 2018 года. Названия брали из собранных справочников, кое-что пришлось искать в интернете. Получилось что-то подобное.

240-001,ГУ МВД РОССИИ ПО КРАСНОЯРСКОМУ КРАЮ,2018
240-002,ГУ МВД РОССИИ ПО КРАСНОЯРСКОМУ КРАЮ,2018
240-003,ГУ МВД РОССИИ ПО КРАСНОЯРСКОМУ КРАЮ,2018


Убрали годы. Оказалось, в справочниках совершенная кутерьма: где-то годы есть, где-то нет. Осталось или везде убрать годы ради более полного справочника, или оставить только подразделения с годами ради непонятно чего. Выбрали более полный справочник.

Объединили справочники, данные в экстазе слились воедино. Результат хорошенько потерли тряпкой, причесали и напомадили: например, «РА» где нужно превратили в «Республику Алтай» и сделали еще десяток подобных изменений.

И вот, справочник готов. Пользуйтесь, делали как для себя (собственно, для себя и делали :).

Пара тонкостей для въедливых


В справочнике много записей с одинаковыми кодами подразделений. Это из-за того, что в разные годы в паспортах написание одного и того же подразделения отличалось. Похожие варианты мы объединили, а сильно отличающиеся оставили: пусть пользователь сам выбирает, как у него в документе.

Может оказаться, что в вашем паспорте и в справочнике написано немного по-разному. Без минимальной нормализации у каждого подразделения получилась бы такая куча похожих вариантов, что нужное поди найди. Поэтому мы сократили «УПРАВЛЕНИЕ ВНУТРЕННИХ ДЕЛ» до «УВД», «ГОРОДА» и «ГОР.» — до «Г.», «ОТДЕЛА ПАСПОРТНО-ВИЗОВОЙ СЛУЖБЫ» — до «ОПВС» и т. д.


Если начать набирать название, «Подсказки» тоже поспособствуют

Но! Ни один закон или подзаконный акт не требует, чтобы название подразделения в документах побуквенно совпадало с вариантом в паспорте. Допускаются и сокращения, и пропуски слов. Главное, чтобы было примерно похоже и совпадали остальные реквизиты: серия, номер, дата, код подразделения.

Об ошибках можно сообщать нам dadata.ru/fix/fms. Укажите код и название проблемной записи, а в комментарии напишите, что не так. Поправим и выложим обновленный справочник для всех. Или присылайте пул-реквесты на GitHub.

Естественно, можно руками поправить CSV, если у вас голый справочник без «Подсказок». Но непонятно, как все смерджится, если когда-нибудь заберете очередную версию справочника у нас.

В общем, пользуйтесь на здоровье:


Если поделитесь статьей, поможете людям, которые ищут справочник подразделений из паспортов. Страждущих хватает, они будут благодарны.
Теги:
Хабы:
Всего голосов 57: ↑56 и ↓1+55
Комментарии100

Публикации

Информация

Сайт
www.hflabs.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
Максим Пименов