DaData.ru — сервис автоматической проверки, исправления и дедупликации контактных данных (ФИО, адресов, телефонов, email, паспортов).

У меня в телефоне 453 контакта. Среди них встречаются дубли: один и тот же человек записан то как «Леха», то как «Алексей Мегафон», а то и как «Зиновьев, Алексей Иванович». У Лехи указан скайп и день рождения, у «Алексея Николаевича» — емейл и основной мобильный номер, а у «Мегафона» — запасной номер от понятнокакого оператора.

В телефонных контактах дубли неприятны, но не особо напрягают. Хуже, когда такая чехарда начинается с клиентской базой компании.

Проблема


Когда контактные данные клиентов «размазаны» по нескольким Excel-файлам или базам данных, они усложняют жизнь:

  • Непонятно, во сколько обходится клиент. В 2003 году Виктор Петрович обратился в «МойТвойСтрах» и застраховал жизнь, в 2007 году — автомобиль, а в 2012 — дом. В результате его три раза завели в учетные системы. Автоматически посчитать прибыли и убытки по Виктору Петровичу невозможно, сколько для него должна стоить страховка — непонятно.

  • Рассылка превращается в кошмар. Маркетолог Вика вручную копирует и объединяет телефоны и емейлы из десятка эксель-файлов. Торопится, ругается, ошибается. Впопыхах теряет две тысячи контактов. Когда это выясняется, директор очень недоволен Викой.

  • Взбешенные клиенты. У провайдера «Связьинтерком» клиенты дублируются в трех разных базах (компания работает 20 лет, накопила знатный ИТ-зоопарк). В результате клиент Федор раз за разом получает повторные рекламные письма, звонки и смс. Когда терпение Федора заканчивается, он уходит в «Гуттелеком».

Решение


Найти и уничтожить объединить одинаковых клиентов. Именно это и делает DaData.ru: находит дубли среди клиентов, адресов и телефонов. Объединяет их и строит «эталонную» клиентскую базу для маркетинга, CRM и аналитики.



Кому пригодится:

  • Маркетологу. Построить единый список клиентов из десятка excel-файлов — для рассылки или загрузки в CRM.

  • Отделу продаж. Составить реестр ФИО и телефонов из нескольких баз — для телемаркетинга.

  • Торговой компании. Найти одинаковые торговые точки от разных дилеров, сравнив по адресу — для правильного подсчета прибыли торговой точки.

  • И, в конечном счете, — разработчику. Решить задачи бизнеса, не заработав седых волос и не убив на это лучшие годы жизни.

Проще, чем писать свой велосипед


Пффф, найти дубли, подумаешь. Вот, не благодарите:

address1 == address2

Ах да, могут же еще быть опечатки. Тогда так:

similarity (address1, address2) > 0.95

Ну-ка:

> similarity (
      "мск сухонска 11/-89",
      "сухонская, москва, 11 дом, кв89") > 0.95
False

Получается, данные сначала нужно нормализовать, привести к «каноническому» виду («мск сухонска 11/-89» > «127642, г Москва, ул Сухонская, д 11, кв 89»). И сравнивать с осторожностью, а то получится так:

> similarity (
      "Москва, Тверская-Ямская 1-я, д 20",
      "Москва, Тверская-Ямская 3-я, д 20") > 0.95
True  # упс

А еще не забыть при поиске дублей:

  • проверять по нескольким сценариям: ФИО + дата рождения + телефон, ФИО + адрес, адрес + телефон + email — чтобы не пропустить дубли, у которых часть полей не заполнена;
  • придумать эффективный алгоритм, иначе сложность O(n2) на 100 тыс. клиентов даст ~?1010 сравнений клиентов между собой;
  • различать «гарантированные» (можно автоматически объединять) и не гарантированные (сначала проверить вручную) дубликаты — иначе наобъединяете лишнего.

Не самое простое дело. А в Дадате все уже готово.

Точнее, чем проверять вручную


Люди часто ошибаются в адресах и телефонах, или пишут одно и то же по-разному:
г. Новосибирск, ул. Жемчужная, д. 2
жмчужная нск 2, подъезд 4
Советский район, Новосибирская область,
улица Жемчужная, дом 2, квартира 98

Поэтому вручную сравнивать клиентов тяжело: человек не воспринимает эти данные как одинаковые. Конечно, можно нанять 200 операторов, чтобы они прошерстили всю базу. Работать будут долго, обойдется дорого, а в результате все равно много дублей пропустят.

Дадата обработает 100 тысяч записей за полчаса и разобьет данные на три группы:

  • уникальные: клиенты, которые есть только в одном экземпляре;
  • похожие: люди со сходством по атрибутике, не недостаточно сильным, чтобы автоматически объединить;
  • одинаковые: точно одни и те же люди.



Одинаковых Дадата объединит сама. А похожих лучше посмотреть вручную:
«Овчинников Федор, 12.10.1990, Самара Кирова 12» и «Fedor ovchinnikov, Samara, fedor@thefedor.ru» — один и тот же человек? Можно поднять историю его заказов и разобраться, Дадата здесь не поможет.

Как работает и сколько стоит


Дадата использует готовые алгоритмы сравнения ФИО, адресов и телефонов с учетом ошибок и опечаток. За восемь лет мы отладили их на проектах с крупными корпоративными заказчиками и теперь даем доступ всем.

Когда Дадата объединяет похожих клиентов, от каждого берет лучшее: ФИО, адрес, телефон. Если адресов или телефонов несколько, берет все. Одинаковые — объединяет в один.

Если клиенты недостаточно похожи, чтобы объединить, сообщает об этом:
Таких клиентов объединим
Елена Баева, родилась 10.11.1990
г Москва, ул Норильская, д 17, кв 25

Елена Баева
Нарильская мск, дом 17 кв25, этаж 4
А этих — нет (отец и сын)
Алексей Ефремов, 18.06.1951
г Новошахтинск, ул Красных Зорь, д 7

Алексей Ефремов, 12.03.1976
г Новошахтинск, ул Красных Зорь, д 7

Работает с файлами, API пока нет. Напишите в комментариях, если нужно (и как стали бы использовать).

Стоит 25 копеек за запись в файле (10?000 записей = 2?500 рублей). Статистика по файлу и просмотр 100 записей — бесплатно. Попробуйте сами.

Комментарии (40)


  1. datacompboy
    16.12.2015 13:01
    +17

    Где гарантии, что эти данные вы не продадите кому?


    1. reff
      16.12.2015 13:19
      +3

      Вспоминая, например, утечку смс из Мегафона: «Где гарантии, что эти данные не утекут после взлома?».


    1. algenon
      16.12.2015 13:20
      +2

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


      1. evnuh
        16.12.2015 13:28
        +6

        Если представить себя на месте таких ребят, то логика следующая «Мои клиенты чаще всего нарушают закон, отдавая нам на обработку персональные данные физ. лиц, т.к. почти всегда их согласие не спрашивается, ведь необходимо обработать форму ещё до того, как клиент сделал заказ. Плюс в оферте у меня написано:

        4.1 Исполнитель не передает третьим лицам, и не использует иным способом, не
        предусмотренным условиями договора, обрабатываемую информацию
        Пользователя.

        где „по условиям договора“ я могу делать всё, что хочу:

        3.2 «Стандартизация»: сервис нормализации контактных данных —
        автоматизированная обработка данных из файлов или посредством API без
        участия Оператора.

        Термин „обработка“ максимально широк, хоть саму передачу третьим лицам обещают не делать


        1. Artima
          16.12.2015 21:32

          Тот случай когда тебе предлагают отличный сервис, а он оказывается запрещен странным законом.


          1. VolCh
            17.12.2015 09:53

            Каким законом он запрещен?


            1. Artima
              17.12.2015 13:29
              -3

              Закон «О персональных данных», очевидно.


  1. Xazzzi
    16.12.2015 13:57
    +22

    Продайте свои услуги спамерам, пожалуйста, а то ведь бывает по 4-5 одинаковых спам-писем за день, даже читать неинтересно.


  1. dummy2002
    16.12.2015 15:42

    А как Вы собираетесь получать согласие человека на обработку его персональных данных (согласно федерального закона «О персональных данных»)? Ведь если Ваш клиент и получил от своего абонента согласие на обработку его данных, но этот клиент никак не мог получить согласие на делегирование процесса обработки третьими лицами?


    1. grossws
      17.12.2015 02:41

      Часто такое разрешение даётся. Во многих бланках согласия на обработку есть стандартная формулировка, касающаяся передачи ПДн третьим лицам.


      1. dummy2002
        17.12.2015 09:01

        Везде сталкивался с тем, что берут согласие на передачу третьим лицам персональных данных. Там есть строчка, что третьим лицам разрешается еще и их обработка?


        1. grossws
          17.12.2015 12:15

          Должно быть указано с какими целями будет осуществляться передача.


  1. mtt
    16.12.2015 17:11
    +3

    Если два брата-близнеца, Иванов Алексей Иванович и Иванов Александр Иванович проживают по одному адресу и имеют один домашний телефон, их система посчитает одинаковыми и сольет в один контакт?


    1. roboter
      16.12.2015 17:18
      -1

      Сразу песенка Слепакова приходит на ум, Два Кирила, Два Кирила…


    1. algenon
      16.12.2015 17:23
      +4

      Нет. Имя ведь отличается.


      1. roboter
        17.12.2015 16:49

        у моего сына имя и фамилия такая же :)


        1. miwa
          17.12.2015 20:56

          Даты рождения у вас разные — есть такое в статье.


          1. ALIron
            18.12.2015 11:31

            А такие случаи обрабатываете?
            Научной базы маловато под статьёй. Крупнейшие компании есть в проектах, а всё исповедуется подход «Третий сорт не брак».
            На выборках в 1000 записей сработает ключ уникальности «ФИО+Дата Рождения», а на стране — даже «ФИО+Дата рождения + Место рождения» не срабатывает иногда.


          1. ALIron
            18.12.2015 12:47

            и да FAR / FRR какие при разборе? Прямая и обратная ошибка при дедубликации.


  1. past
    16.12.2015 17:33
    +2

    Было бы неплохо увидеть реализацию в виде приложения для андроид для дедупликации адресной киниги.


  1. Geckelberryfinn
    16.12.2015 17:39
    +1

    Ну да, классическая задача MDM =)
    Свое решение под капотом используется, или от известного вендора, типа Quality Stage или MDM Server?
    Если свое, то на основе какого подхода ищете дублоны? частотный анализ? нейросети?
    Что с локализацией? есть ли правила для нормализации иностранных адресов?


    1. algenon
      16.12.2015 18:00

      Свое (HFLabs), специализируемся на российских данных. Разбиваем все множество записей на сегменты, дальше внутри сегмента сравниваем кандидатов по куче сценариев. С учетом нюансов вроде разночтений в ФИО и частичной похожести адресов на уровне дроби-корпуса-строения-квартиры.


      1. roman_kashitsyn
        17.12.2015 11:20

        Разбиваем все множество записей на сегменты

        Используете Locality-Sensitive Hashing?


  1. darkgool
    16.12.2015 17:45

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


    1. algenon
      16.12.2015 17:54

      А какая у вас задача? Какие есть более подходящие варианты решения?


  1. rboots
    16.12.2015 21:11
    +8

    Лично мне сервис не очень нужен, но маркетинг шикарен, статья убеждает, респект. Мне бы в юридическую фирму такой маркетинг.


    1. algenon
      17.12.2015 11:33

      Спасибо! Для юристов может быть полезен другой сервис — подсказки: быстро получить всю информацию по адресу или организации.


  1. Stas911
    16.12.2015 23:51
    +2

    А по КЛАДРу (или что там сейчас вместо него) адреса проверяет?


    1. algenon
      17.12.2015 11:37
      +1

      Обязательно. Адреса приводит к ФИАС (это наследник КЛАДР) и восстанавливает доп. информацию (координаты, часовой пояс). Приводит к единому виду ФИО и телефоны, исправляет опечатки.


  1. amarao
    17.12.2015 00:20
    +15

    Мне ваш сервис по профессии не нужен, но статья — идеальный образец того, как надо представлять свои продукты публике. Описание проблемной области, критика наивных решений, предложение собственного решения, цены/условия.

    Супер.


    1. algenon
      17.12.2015 11:40
      +1

      Спасибо за такую высокую оценку :–)


  1. PavelMSTU
    17.12.2015 09:53

    Вот что будет в false-positive?
    Клиент просто удалится из базы?..


    1. algenon
      17.12.2015 11:48
      +1

      Сервис ничего из данных не удаляет. Возвращает два состояния входного набора данных: «до слияния» и «поcле слияния». В первом похожие и одинаковые записи сгруппированы, но не объединены. Во втором — одинаковые объединены.

      До слияния:


      После слияния:


  1. VolCh
    17.12.2015 09:56

    Знакомая проблема… Работаете по российским установочным данным? На Украину не смотрели?


    1. algenon
      17.12.2015 11:48

      По российским.


  1. mezastel
    17.12.2015 12:38

    A вы пoддepживaeтe мexaнизмы oбфуcкaции, или нaпpимep вклинивaниe пoльзoвaтeлями вcякиx “нeвидимыx” юникoдныx cимвoлoв пpямo в дaнныe? Haпpимep, вoт этoт мoй комментарий не совсем обычный, xoтя c виду мoжeт и нe paзoбpaть.


    1. algenon
      17.12.2015 12:59

  1. xenohunter
    17.12.2015 13:08
    +1

    Классный сервис! Не предусматриваете ли продажу или предоставление по подписке оффлайн-решения?


    1. algenon
      17.12.2015 14:19
      +1

      Спасибо! Да, есть оффлайн-версия (Фактор). Стоит сильно дороже, чем облачный вариант. Если интересно, пишите в личку, обсудим.


      1. Envek
        18.12.2015 19:46

        Ух ты! А на какой порядок цен ориентироваться, хоть примерно? Просто бывают бешеные заказчики, что живут в закрытых сетях, где интернетов отродясь не было. И вдруг им потребуется мало того, что распарсить адреса, что были напечатаны лапой макаки в безумстве, а ещё и загеокодировать… Блин, уже страшно :-) Коли такой случай возникнет, будем вас рассматривать.