- PVSM.RU - https://www.pvsm.ru -
Продукты HFLabs [1] ищут дублированных клиентов в базах федеральных компаний. Очевиднейший способ найти одинаковые клиентские карточки — сравнить паспорта или другие документы, удостоверяющие личность.
Раньше мы сравнивали номера документов строго: одинаковые — отлично, нет — извините. На ручной разбор из-за опечатки в номере уходили даже те карточки, у которых совпадали ФИО и адреса́ проживания. Такой подход излишне нагружал персонал заказчиков.
Поэтому мы с головой залезли в данные, изучили статистику и вывели критерии — когда разные номера действительно разные, а когда дело в опечатках. Рассказываю, как работает алгоритм.
Делить номера паспортов и прочих документов на «совпадают-не совпадают» — слишком грубое решение. Можно действовать тоньше и отлавливать простые ошибки.
Допустим, в компании работают такие правила поиска дубликатов (ДУЛ — документ, удостоверяющий личность):
Автоматика объединяет карточки с коэффициентом выше 97. Остальное когда-нибудь разберут руками специальные люди — дата-стюарды. Если повезет и дойдет очередь.
Итог — в очереди на ручной разбор лежат вполне очевидные дубли. Даже те карточки, у которых ФИО и адреса совпадают, а номера паспортов отличаются распространенной опечаткой. Как в случае с 46 01 859473 и 45 01 859473 (клавиши 6 и 5 находятся рядом, их часто путают.) Дата-стюарды отвлекаются на простые опечатки, а реальные дубли выявляются медленнее.
Посмотрев на происходящее, мы научили свои продукты считать «похожесть» номеров в документах. Заказчики уже используют новый параметр в правилах автоматического объединения дублей.
Сравнивая документы, алгоритм первым делом чистит номера от мусора. Оставляет только буквы и цифры: A—Z, А—ЯЁ, 0–9. А дальше начинается магия, ради которой я написал эту статью — расчет коэффициента «похожести».
Важная оговорка: коэффициент — не вероятность. Это число нужно, чтобы поделить дубли на группы с однотипными ошибками. Не важно даже, какова «похожесть» в абсолютном значении — это просто параметр сравнения номеров.
А теперь — к правилам расчета.
Правило | Коэффициент «похожести» | Пример | Комментарий |
---|---|---|---|
Полное совпадение | 100 |
|
Тут и говорить не о чем, все понятно |
Трансграфика | 100 |
|
Трансграфика — это когда символы одного алфавита заменяют на такие же из другого.
В первом случае символы кириллические, во втором — латинские. Типичная безобидная опечатка |
Одна распространенная опечатка | 95 |
|
Распространенная опечатка — это когда символы близко расположены на одном из цифровых блоков клавиатуры или схожи по написанию.
«Фактор» ищет распространенные опечатки по таблице «похожести» [2], которую собрали наши аналитики. (Лучше качать скорее, пока коллеги не заставили убрать ссылку) |
Смена раскладки | 94 |
|
Работает, если в одной строке только цифры и кириллица, а в другой — только цифры и латиница. Иначе не похоже, чтобы человек добросовестно ошибся с раскладкой |
Замена римских цифр на арабские | 93 |
|
Работает только в начале строки. Логика такая: «честные» римские цифры могут быть только в серии, а серия — только в начале |
Одна нераспространенная опечатка | 90 |
|
Нераспространенная опечатка — та, что не входит в таблицу распространенных |
Одна перестановка двух символов | 90 |
|
Типичная опечатка, тут и добавить нечего |
Перепутаны пары символов | 89 |
|
Работает только для серий длиной от четырех символов.
Считаем за опечатку, только если встретилась в начале строки. Это типичная ошибка операторов при вводе серии документа. И немудрено — на бланке серию печатают двумя парами цифр. В середине и конце строки такие перестановки — ошибка |
Один номер целиком входит в другой | 88 |
|
Этим сравнением мы отлавливаем случаи «потеряли серию».
Работает только для строк длиной от шести символов. Шесть символов — минимальная длина номера в известных нам документах. За опечатку считаем только в начале или в конце строки. Иначе вместо случайно обрезанного реквизита найдутся фрагментарные вхождения одних последовательностей в другие. Так можно и почтовый индекс внутри ИНН принять за добросовестную опечатку |
Две любые опечатки | 80 |
|
Уже довольно близко к границе, но ошибки все еще походят на «честные» опечатки |
Все остальные случаи | 0 |
|
Объяснять опечатками остальные расхождения опасно. Вероятность ошибиться слишком велика |
Новые правила уже использует банк федерального уровня — с помощью них там ищут дубли среди потенциальных клиентов. Следующей подключим крупную страховую.
При интеграции мы корректируем сценарии поиска дубликатов так, чтобы учитывать «похожесть» номеров в документах.
Вернемся к типичным правилам поиска дубликатов, я описал их в начале:
Встраивая новые правила сравнения номеров, мы меняем сценарии поиска дублей у заказчика:
Автоматика по-прежнему «склеит» все карточки с коэффициентом выше 97. Но при новых порядках на ручной разбор не уйдут карточки, которые отличаются лишь опечатками в номерах документов. Явные дубли мгновенно схлопываются, а дата-стюарды разбирают действительно сложные случаи.
Статья впервые вышла в блоге HFLabs [3].
Автор: DEADStop
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/algoritmy/343345
Ссылки в тексте:
[1] Продукты HFLabs: https://hflabs.ru/
[2] таблице «похожести»: https://fs.hflabs.ru/blog/CharacterMatchingTable.pdf
[3] в блоге HFLabs: http://blog.hflabs.ru/
[4] Источник: https://habr.com/ru/post/483348/?utm_campaign=483348&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.