Найти и слить дубликаты

Основная техническая цель идентификации и слияния дубликатов — привести данные к первой нормальной форме и поддерживать это состояние в ходе эксплуатации базы данных CRM (или любой другой).

Основная бизнес-цель — это собрать разнородные источники о клиентах компаний (excel-файлы, записные книжки в outlook, несколько разрозненных баз и т.д.), сделать единую базу, интегрировав всю информацию о каждом клиенте. Результатом идентификации дубликатов является табличка вида (ID1, ID2, Score), где перечислены все пары кандидатов в дубликаты и некоторый показатель степени их дубликатности, который варьируется от 0 (абсолютно разные) до 100 (бинарно идентичные). На практике — от 70 до 100. То есть изменения данных в ходе этого процесса не происходит.

Следующий процесс — это слияние дубликатов. Слияние найденных дубликатов всегда делается под требования заказчика, стандартной процедуры нет. В основном из-за того, что редко результат слияния дубликатов оказывается в виде плоской таблицы. Часто во время слияния дубликатов происходит переход от плоской структуры к реляционной.

Идентификация дубликатов происходит по согласованных заказчиком сценариям. Каждый сценарий описывает поля-участники и способы их участия. Например: "Имя — с точностью до синонимов, Отчество — точно, но может и отсутствовать, Фамилия - с похожестью выше 80%, телефон — точно, но может и отсутствовать". Таких сценариев может быть много, обычно от 10 до 30.

Идентификации дубликатов обязательно должна предшествовать очистка и стандартизация, чтобы гарантировать одинаковое написание одинаковых данных. Это значительно повышает качество.

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