10% → 96% адресов попадают в базу чистыми и без дублей. Вот как «101 Интернет» этого добились
- «101 Интернет» получают адреса от интернет-провайдеров и сводят в единую базу
- Интернет-провайдеры присылают адреса в разных форматах
- В «101 Интернет» вручную приводили адреса к единому формату, но в базу все равно попадали дубли
- Ручную стандартизацию заменили «Стандартизацией» «Дадаты»
- Сервис «Стандартизация»
- Результат
- Похожий кейс: ics-it определяют ФИАС-айди, чтобы сопоставлять торговые точки с эталонной клиентской базой
Герой статьи. «101 Интернет» — маркетплейс услуг связи. Ведут базу данных с адресами и предложениями интернет-провайдеров. Ее использует сайт.
Задача. Провайдеры присылают «101 Интернет» адреса, по которым оказывают услуги. Нужно найти эти адреса в ФИАС — справочнике адресов налоговой. Затем сопоставить с адресами в своей базе по ФИАС-айди — уникальным идентификаторам домов. И загрузить в базу адреса, которых там еще нет.
Проблема. Адреса приходят в разных форматах и с ошибками, из-за этого в ФИАС находили только 10% домов. Оставшуюся часть не сопоставляли с существующими записями, а загружали как есть. Так в базу попадали «кривые» адреса и дубли. В результате люди не находили свои дома на сайте или не видели тарифов всех провайдеров.
Решение. Отправляют адреса в сервис «Стандартизация» «Дадаты», прежде чем загружать в базу.
Результат. Находят в ФИАС и на картах 96% адресов, которые присылают провайдеры. Еще 4% разбирают вручную, среди них — несуществующие дома, адреса с лишними частями или с альтернативными вариантами. Теперь в базе не плодят дубли и «кривые» адреса, поэтому люди без проблем выбирают тарифы провайдеров на сайте.
«101 Интернет» получают адреса от интернет-провайдеров и сводят в единую базу
«101 Интернет» — маркетплейс услуг связи. Люди заходят туда, чтобы подключить интернет: в квартиру, на дачу или в офис. Вбиваешь на сайте адрес — и видишь тарифы провайдеров, которые занимаются интернетом в доме. Остается изучить их предложения и выбрать выгодное:

У сайта «101 Интернет» под капотом лежит база данных. В ее таблицах хранят семь миллионов адресов, предложения 70 провайдеров и связи между этими адресами и предложениями. Для любого дома известно, какие услуги, кто и по какой цене оказывает. Это показывают посетителям сайта.
Базу актуализируют. Провайдеры присылают «101 Интернет» свои адреса с услугами, а ребята загружают списки себе. Это регулярная задача.
Актуализация глобально состоит из таких этапов:
- Каждый адрес от провайдеров ищут в эталонном справочнике. Используют ФИАС (ГАР) — адресный реестр налоговой. Это самый полный справочник российских адресов среди публичных.
- Берут ФИАС-айди найденного дома — уникальный 16-значный идентификатор — и смотрят, хранится ли дом с таким айди в базе «101 Интернет».
- Если дом уже лежит в базе, обновляют его связи с провайдерами и услугами. А если нет, добавляют в базу новый адрес.

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

Разные форматы и ошибки берутся, например, потому что адреса вводят монтажники, когда прокладывают инфраструктуру для интернета. Они записывают улицы и дома как придется, и в таком виде адреса попадают в базы провайдеров.
«Подсказки»
Сервис, который помогает вводить адреса быстро, в едином формате и без ошибок.
РазузнатьЕще бывает, что формат адресов в выгрузках провайдера меняется на ровном месте. Выходит новый менеджер — и адреса с этого момента присылают по-другому. Скажем, вместо «ул» пишут «улица».
В «101 Интернет» вручную приводили адреса к единому формату, но в базу все равно попадали дубли
Бесполезно искать в ФИАС адреса провайдеров как есть. Сначала их нужно стандартизировать — разделить на компоненты, исправить ошибки, привести сокращения к единому написанию. В общем, сделать так, чтобы адреса были, как в ФИАС: тогда найдутся.
Раньше адреса в «101 Интернет» стандартизировали вручную. Модераторы открывали списки адресов в Excel и применяли формулы с автозаменами, чтобы из условного «Ленинский пр., д10 к1, Москва» сделать «г Москва, пр-кт Ленинский, д. 10 к. 1».
После ручной стандартизации в ФИАС находили около 10% адресов: исходные варианты такие разные, что их не охватить автозаменами. А разбирать каждый адрес вручную не вариант, потому что в файлах десятки тысяч строк.
Не найденные в ФИАС адреса загружали в базу, не сопоставляя с существующими записями. Разве что размечали, где в адресе район, город, улица и дом.
В результате в базе появились дубли — одинаковые адреса, записанные по-разному. К каждому такому дублю привязывали своего провайдера с тарифами, поэтому пользователи на сайте не видели всех предложений сразу.
Допустим, человек уже использует интернет «Ростелекома». На сайте «101 Интернет» он вбивает «Ленинский пр-т 10», видит только предложения «Ростелекома» и уходит, ведь альтернатив нет. А вообще-то по адресу работает еще и «Билайн». Но в базе его предложения привязаны к «пр. Лениский д. 10», поэтому человек их не увидел.
Помимо дублей в базу попадали «кривые» адреса. Люди не находили их на сайте, потому что в базе искомые адреса записаны как-то иначе.

Ручную стандартизацию заменили «Стандартизацией» «Дадаты»
«Стандартизация»
Сервис, который приводит списки адресов к единому формату, исправляет в них ошибки и обогащает полезной информацией.
РазузнатьНужно было изменить этап стандартизации адресов так, чтобы для большинства находить ФИАС-айди. Для этого ручной процесс заменили сервисом «Стандартизация». Он автоматически приводит адреса к единому формату и исправляет в них ошибки:

Теперь в «101 Интернет» так актуализируют базу данных:
- сервис-загрузчик получает excel-файл с адресами провайдера и разбирает этот файл на строки;
- каждую адресную строку отправляет «Стандартизации» — по API;
- «Стандартизация» присылает ответ — адрес в едином формате, разбитый по полям и сразу с ФИАС-айди. Поэтому не нужно отдельным этапом искать адреса в ФИАС;
- адрес загружают в базу и сопоставляют с существующими адресами по ФИАС-айди.
Бывает, «Стандартизация» не присылает ФИАС-айди дома. В этом случае смотрят на причину. Сервис сообщает ее с помощью кодов качества — специальных полей, которые приходят для каждого адреса.
Возможны два варианта:
- «Стандартизация» не нашла дом в ФИАС, но нашла на карте. Так, например, случается с новостройками — в справочник налоговой их не успели добавить, зато на картах дом уже появился. Подобные адреса сопоставляют с базой по набору полей: город с городом, район с районом, улицу с улицей, дом с домом.
- «Стандартизация» не нашла дом ни в ФИАС, ни на карте. Так бывает, если дом не существует или у адреса есть альтернативные варианты. Скажем, «Москва Ленина 1» может оказаться и улицей Ленина, и переулком, и площадью. Такие адреса вручную разбирает модератор.

В процессе есть еще отдельный этап, который мы не упомянули — адреса готовят к обработке в «Стандартизации». Это иногда нужно, чтобы сервис разбирал записи определенным образом, как ждут в «101 Интернет». Вот пример:
Если отправить в «Стандартизацию» строку «г санкт-петербург, ш южное, д 55 корп 3», то сервис вернет дом с корпусом — «г Санкт-Петербург, ш Южное, д 55, к 3». Но если в том же адресе вместо «корп» написать «к», сервис вернет дом с квартирой — «г Санкт-Петербург, ш Южное, д 55, кв 3».
Причина — в алгоритмах «Стандартизации». Они сначала принимают «к.» за корпус → проверяют, существует ли дом с корпусом в ФИАС → если дома нет, считают «к.» квартирой. Это логично.
В «101 Интернет» адреса без квартир, то есть «к.» там железно означает корпус. Поэтому перед «Стандартизацией» сокращения «к.» заменяют на «корп.», чтобы сервис однозначно считал их корпусами.
Ребята общаются с нашей поддержкой: приносят кейсы, в которых поведение «Стандартизации» не подходит или кажется странным. Мы объясняем логику и советуем, как ее обойти, если нужно. В результате растет доля адресов, которые «Стандартизация» разобрала как надо.

Результат
«Стандартизация» справляется с 96% адресов, которые приходят от провайдеров. Еще 4% — несуществующие дома, адреса с лишними частями или с альтернативными вариантами. Такие уходят на ручной разбор модератору. В базе больше не плодят дубли и «кривые» адреса, так что пользователи без проблем выбирают тарифы провайдеров на сайте.
Следующий шаг — прогнать через «Стандартизацию» всю базу адресов «101 Интернет», чтобы исправить:
- «кривые» адреса, которые не найти на сайте;
- дубли;
- адреса с неправильными ФИАС-айди, которые по ошибке указали модераторы. Это провоцирует дубли — несколько одинаковых адресов с разными ФИАС-айди.
Похожий кейс: ics-it определяют ФИАС-айди, чтобы сопоставлять торговые точки с эталонной клиентской базой
Задача. Получать базы торговых точек от дистрибьюторов и торговых сетей, и затем автоматически сопоставлять эти базы с эталонным справочником торговых точек. Это нужно, чтобы обогатить исходный перечень географической иерархией и недостающими атрибутами, удалить записи-дубликаты.
Решение. Сопоставлять торговые точки по ФИАС-кодам. Определять коды, отправляя адреса точек сервису «Стандартизация».
Результат. «Стандартизация» автоматически определяет коды ГАР для 70-80% исходных адресов. Оставшиеся 20% адресов операторы обрабатывают вручную.
