Обнаружение дублирующегося клиента

У меня есть куча данных о клиентах, которые нормализованы в несколько таблиц. Я хочу выбрать наилучшие критерии, чтобы сделать наилучшее предположение, что клиент может быть тем же самым. Должен быть баланс между минимизацией количества дубликатов, а также минимизацией ложных срабатываний и, следовательно, прерыванием пользователей, чтобы спросить о потенциальных обманах.

Я смотрю на некоторую комбинацию имени/фамилии + номер телефона || адрес электронной почты.

Первый вопрос: каков хороший набор критериев для определения того, может ли клиент быть таким же, как другой клиент.

Второй вопрос: для этого конкретного приложения я хочу обнаруживать дубликаты только для клиентов, которые зарегистрировались в течение последних 2 месяцев или около того. Это вообще меняет критерии обнаружения?


person Christopher Martin    schedule 12.04.2012    source источник


Ответы (3)


Как бы вы спросили клиента, является ли он владельцем дубликата учетной записи?

«Привет, Сэм Джонс, есть еще один Сэм Джонс, у которого есть IP-адрес в вашем регионе, его электронная почта — [email protected], и ваша последняя регистрация имела адрес электронной почты [email protected], вы тот же парень? /девочка?"

Если описанное выше даже близко к вашему сценарию, то вы будете разглашать личную информацию. то есть адрес электронной почты другого Сэма Джонса.

Обычно вы не разрешаете клиенту регистрироваться с одним и тем же адресом электронной почты, и, во-вторых, вы проверяете, действителен ли адрес электронной почты, с которым он регистрируется. Таким образом, если они снова зарегистрируются с ошибкой в ​​электронном письме, они не смогут его проверить.

person Matthew Parlane    schedule 12.04.2012
comment
Кроме того, я уверен, что обойти эту проверку на дублирование будет легко. Просто создайте новый адрес электронной почты, и все готово. Возможно, используйте номер наземной линии для первой учетной записи и номер GSM для второй. Обычно вы просто проверяете, существует ли имя пользователя (если оно нужно клиенту) и адрес электронной почты. Может быть, и почтовый адрес тоже, а потом показывать сообщение, что на том же самом адресе есть клиент с таким именем. Но проверять номера телефонов? Я знаю компанию, которая делится этим номером, как бы вы справились с этим? - person Bernhard; 13.04.2012
comment
В этом случае есть сотрудник, который вводит информацию о клиенте. Они берут информацию от клиента, а затем представляют информацию о потенциальных дубликатах. Как правило, было бы больше общей информации, которая намекала бы на то, что клиент такой же, как другой. Например, клиент мог уже указать адрес и имя, написанное по-другому, а также номер телефона и т. д. Похоже, что бывают случаи, когда вы захотите дедуплицировать запись клиента. - person Christopher Martin; 14.04.2012
comment
Но как это сделать без подтверждения заказчика? Я понимаю, почему Google делает это в контактах Google, но я ввел эту информацию или получил ее, поэтому я знаю, является ли она дубликатом или нет. - person Matthew Parlane; 14.04.2012

Важно выбрать атрибуты, которые вряд ли изменятся. Если вы используете что-то вроде номера телефона или адреса электронной почты, вы рискуете получить дубликаты каждый раз, когда кто-то меняет интернет-провайдера или оператора мобильной связи.

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

person bta    schedule 13.04.2012
comment
Вы можете обнаружить, что если вы сохраните хэш номера кредитной карты, на самом деле довольно легко вернуться к исходному значению, что может нарушать правила PCI. - person Colin Breame; 21.06.2016
comment
@ColinBreame, который зависит от используемого вами алгоритма хеширования. Криптографически стойкие хэши, такие как SHA-256, считаются односторонними и обычно не нарушают правила безопасности данных, особенно если они содержат соль. Хэши с известными уязвимостями (например, MD5) могут быть другой историей. - person bta; 03.07.2016

если этот вопрос по-прежнему вас интересует, проверьте этот инструмент https://sourceforge.net/projects/deduper/

Я написал этот инструмент в основном для той цели, которую вы упомянули в этом вопросе.

person vumaasha    schedule 29.10.2012