В начале июня мы представили «Антидубликаты» — свежий подход к сокращению «серой зоны». «Единый клиент» по-новому проверяет лежащие в «серой зоне» карточки, которые формально могут описывать одного человека. Теперь система по неким признакам понимает, когда речь идет все же о разных клиентах. Такие записи система выводит из «серой зоны», сокращая ее без участия дата-стюардов.
В этом посте я расскажу, что такое антидубликаты с точки зрения алгоритмов «Единого клиента» и как именно работает поиск.
При поиске антидублей важны паспорта, телефоны и адреса
90+% «серой зоны» — это люди, у которых совпадают только ФИО и день рождения. Именно в этой массе мы ищем антидубли. Задача: найти среди пар похожих клиентов тех, кто гарантированно не является одним человеком. Посмотрев на статистику, мы собрали три правила поиска таких антидубликатов.
Конфликтуют паспорта РФ, а также регионы в адресах. Система считает карточки антидублями, если соблюдены пять условий.
- ФИО и дата рождения совпадают.
- Первые две цифры в сериях паспортов не совпадают. Это ОКАТО-код региона, в котором напечатали бланк паспорта.
- Номера паспортов не равны (страховка от опечатки в серии).
- (Если в обеих карточках есть хотя бы один адрес). Регионы во всех адресах первой карточки не совпадают ни с одним из регионов в адресах второй карточки.
- В карточках нет других документов, полностью совпадающих по серии и номеру.
Конфликтуют регионы в адресах и телефонах.
- ФИО и дата рождения совпадают.
- Хотя бы в одной карточке нет паспорта.
- Регионы во всех адресах первой карточки не совпадают ни с одним из регионов в адресах второй карточки.
- Регионы всех телефонов первой карточки не совпадают ни с одним из регионов в телефонах второй карточки.
- В карточках нет других документов, полностью совпадающих по серии и номеру.
Конфликтуют регионы в адресах.
- ФИО и дата рождения совпадают.
- Хотя бы в одной карточке нет паспорта.
- Хотя бы в одной карточке нет телефона.
- Регионы во всех адресах первой карточки не совпадают ни с одним из регионов в адресах второй карточки.
- В карточках нет других документов, полностью совпадающих по серии и номеру.
При поиске мы не смотрим на массовые атрибуты — те, которые встречаются более чем у 500 записей.
Алексей — страховой агент в крупной компании. Он продает полисы членам семьи, друзьям и всем, до кого дотянется. За каждого клиента Алексей получает деньги от компании.
Алексей уже столкнулся с типичной проблемой страховых агентов. Когда срок полисов подходит к концу, его клиентам названивают конкуренты и пытаются переманить. Неясно, где конкуренты находят номера телефонов, но звонят они всегда.
Поэтому Алексей, оформляя полис, вместо номера телефона клиента указывает собственный. И это помогает: действительно, конкуренты остаются у разбитого корыта.
Для компании коммуницировать с клиентом по такому номеру, а уж тем более использовать его при поиске дублей или антидублей, — дело сомнительное.
Дополнительный критерий: места рождения
Придумав критерии, мы нашли антидубли в базе заказчика и отдали их дата-стюардам. Ребята посмотрели и говорят: «В целом хорошо. Но мы опасаемся ставить „Антидубликат“ парам, у которых кроме ФИО и даты рождения совпадает место рождения. Слишком велик риск, что речь идет об одном человеке».
Поэтому места рождения хорошо бы сравнить. А для этого привести их к одному формату — стандартизировать. Казалось бы, с этой задачей давно справляется наш продукт «Фактор», но не все так просто.
Название областей, городов и стран меняются. Даже один населенный пункт записывают в разных паспортах по-разному. Меняются границы и подчиненность регионов. Все это усложняет стандартизацию мест рождения.
Человек родился в славном городе Горький в 1990 году. В 2004-м получил первый паспорт с местом рождения «г. Горький». А в 2010-м, сменив документ в 20 лет, обнаружил новое место рождения — «г. Нижний Новгород». Классика.
И вот перед машиной две карточки: в одной «Горький», в другой «Нижний Новгород». Чтобы правильно их сравнить, «Единый клиент» должен привести города к одному виду.
Не буду рассказывать о сложностях, с которыми мы столкнулись на пути стандартизации. Было тяжело, но справились. «Единый клиент» научился очищать и хранить места рождения в стандартизированном формате.
Теперь, чтобы «Единый клиент» посчитал места рождения разными, должен сработать любой из критериев:
- не совпали страны в карточках клиентов;
- не совпали регионы при одинаковой стране;
- не совпали группы «район + город + населенный пункт» при одинаковых стране и регионе.
Проверка места рождения — опция, можно обойтись без нее при поиске дублей и антидублей. Но если компания хранит места рождения клиентов, логично применить их для уточнения поиска.
Исключения и тонкости
Изучив кейсы с антидублями, мы нашли исключения из правил.
Сравнивая паспорта, мы сравниваем ОКАТО-коды регионов. При этом за прошедшие годы часть кодов мигрировала между субъектами, некоторые коды упразднили. А еще есть два резервных кода, паспорта с ними выдают в разных регионах. При сравнении паспортов мы считаем все эти коды неконфликтными.
ОКАТО 1 | ОКАТО 2 | Описание |
76 | 43 | Забайкальский край и бывший Агинский Бурятский автономный округ |
57 | 48 | Пермский край и бывший Коми-Пермяцкий автономный округ |
30 | 51 | Камчатский край и Корякский автономный округ |
4 | 59 | Красноярский край и бывший Таймырский автономный округ |
25 | 62 | Иркутская область и бывший Усть-Ордынский Бурятский автономный округ |
4 | 72 | Красноярский край и бывший Эвенкийский автономный округ |
35 | 67 | |
40 | 41 | Санкт-Петербург и Ленинградская область |
45 | 46 | Москва и Московская область |
Любой | 39 | Резервная серия, выдавали во множестве регионов |
Любой | 9 | Резервная серия, выдавали во множестве регионов |
Сравнивая адреса и телефоны, мы также считаем неконфликтными часть регионов. Обычно это субъекты федерации, которые территориально находятся внутри других субъектов:
- Севастополь и Крым;
- Санкт-Петербург и Ленинградская область;
- Москва и Московская область;
- Архангельская область и Ненецкий автономный округ;
- Адыгея и Краснодарский край;
- Тюменская область и Ханты-Мансийский автономный округ Югра, и Ямало-Ненецкий автономный округ;
- Красноярский край и Таймырский (Долгано-Ненецкий) автономный округ, и Эвенкийский автономный округ;
- Иркутская область и Усть-Ордынский Бурятский автономный округ;
- Пермский край и Коми-Пермяцкий автономный округ.
Подключаем антидубли как доработку
«Единый клиент», вооруженный новым набором правил, сузит «серую зону» компании. При этом совсем не нагружая дата-стюардов.
Мы уже внедрили новую технологию в крупном банке. Подключаем как доработку: предварительно анализируем данные заказчика и полируем алгоритмы поиска. Если интересно, обращайтесь, все расскажем.