Blog

Pourquoi les doublons existent-ils et comment s’en débarrasser ?

Selon Natik Ameen, expert en marketing chez Canz Marketing, les données en double dans le CRM de l’entreprise sont dues à toute une série de raisons :

« d’une erreur humaine à des clients fournissant des informations légèrement différentes à différents moments dans la base de données de l’organisation. Par exemple, un consommateur inscrit son nom en tant que Jonathan Smith sur un formulaire et Jon Smith sur l’autre. Le défi est exacerbé par une base de données en pleine expansion. Il est souvent de plus en plus difficile pour les administrateurs d’assurer le suivi de la DB ainsi que celui des données pertinentes. Il est de plus en plus difficile de s’assurer que la BD de l’organisation reste exacte.« .

Ladéduplication des données se produit lorsque vous stockez des informations sur la même entité plusieurs fois, au lieu de mettre à jour un seul enregistrement. Dans ce guide, nous aborderons quelques concepts de base concernant la duplication des données et une liste de techniques et d’algorithmes couramment utilisés pour y remédier.

Pourquoi les doublons existent-ils ?

Les données ont des représentations multiples – ce qui signifie que les mêmes données peuvent être représentées de différentes manières. C’est la principale raison pour laquelle des enregistrements en double existent dans une base de données. Que les enregistrements soient fusionnés à partir de sources de données indépendantes ou qu’ils soient saisis dans une base de données unique au fil du temps, tous deux conduisent au problème complexe de la duplication des données.

Idéalement, chaque enregistrement d’une base de données devrait représenter une entité unique. Mais pour un certain nombre de raisons (les plus courantes sont mentionnées ci-dessous), nous remarquons que les informations d’une entité s’étendent sur plusieurs enregistrements.

1. Manque d’identifiants uniques

Disposer d’identifiants uniques dans votre base de données est le meilleur moyen d’éviter de stocker des doublons. Un identifiant unique est un champ de données qui est toujours unique pour une entité (par exemple, le numéro de sécurité sociale (SSN) pour les données relatives aux clients, le numéro de pièce du fabricant (MPN) , etc. pour les données relatives aux produits, etc.) À chaque nouvelle entrée de données, vous pouvez vérifier si un enregistrement avec le même identifiant unique existe. Et si c’est le cas, vous pouvez simplement le mettre à jour ou le fusionner, et éviter de stocker un nouvel enregistrement pour la même entité. Mais si votre base de données ne contient pas un tel identifiant unique, le processus de mise en relation des nouvelles entités entrantes avec les entités existantes devient une tâche complexe.

2. Absence de contrôles de validation et de contraintes d’intégrité

Même avec la présence d’identifiants uniques, vous pouvez vous retrouver avec des doublons dans votre base de données. Cela se produit lorsque les identificateurs uniques ne sont pas conformes à des modèles valides (par exemple, AAA-GG-SSSS pour le SSN), ou n’ont pas de contraintes d’intégrité strictes (par exemple, limite de 11 caractères pour le SSN).

3. Erreurs de saisie des données

Le taux d’erreur de saisie des données est de 400 pour 10 000 entrées, ce qui est un chiffre important. Ainsi, même avec la présence d’identifiants uniques, de contrôles de validation et de contraintes d’intégrité, il est possible que l’erreur humaine intervienne et permette la présence de doublons dans votre base de données.

Difficulté de comparaison des données – Hétérogénéité des données

Pour éliminer les doublons dans votre base de données, vous devez comparer les enregistrements et évaluer ceux qui appartiennent à la même entité. Mais lorsque vous comparez des enregistrements de données (soit dans la même base de données, soit appartenant à des bases de données différentes), vous remarquerez qu’ils présentent certaines différences systématiques, ce qui rend difficile leur comparaison exacte. C’est ce qu’on appelle généralement l’ hétérogénéité des données.

De manière générale, on peut classer les données hétérogènes comme suit :

1. Hétérogénéité structurelle

Ce type de différence se produit lorsque des champs de différentes bases de données représentent la même information d’une manière structurellement différente. Par exemple, une base de données peut stocker le nom d’un contact en tant que Nom du contact, tandis que dans une autre base de données, il est stocké dans plusieurs colonnes telles que Salutation, Prénom, Second prénom et Nom de famille.

2. Hétérogénéité lexicale

Ce type de différence se produit lorsque les champs de différentes bases de données sont structurellement les mêmes, mais qu’ils représentent la même information d’une manière syntaxiquement différente. Par exemple, deux bases de données ou plus peuvent avoir le même champ Adresse , mais l’une peut avoir une valeur d’adresse : 32 E St. 4, alors que l’autre peut avoir pour valeur 32 East, 4 th rue.

Processus de déduplication des données

En termes simples, le processus de déduplication implique :

  1. Préparer les données en normalisant les champs dans toutes les bases de données
  2. Mise en correspondance des champs qui représentent la même information
  3. choisir une technique appropriée de mise en correspondance des champs (en fonction de la nature des données), puis calculer la similarité entre les champs de données

Dans les prochaines sections, nous détaillerons un peu plus les étapes mentionnées ci-dessus.

1. Préparation des données

La première étape du processus consiste à assurer l’uniformité de toutes les bases de données en termes de structure de données et de champs. Ce processus réduit l’hétérogénéité structurelle des bases de données, du moins dans une certaine mesure. Il s’agit de suivre deux étapes :

a. Nettoyage et normalisation des données

Il s’agit de supprimer toute erreur ou variation dans les formats et les types de données des valeurs, ou dans la structure des bases de données. Ceci peut être réalisé par :

  1. Analyse syntaxique des longues chaînes de caractères pour identifier les composants importants des données. C’est le cas, par exemple, lorsque vous avez l’adresse complète dans un seul champ. L’analyse du champ Adresse permet d’obtenir les éléments de données suivants : nom de la rue, numéro de la rue, code postal, ville, État et pays. L’appariement devient plus facile sur ces éléments analysés, par rapport à l’appariement sur le champ entier.
  2. Transformer les valeurs des données pour obtenir des types de données, des conventions de dénomination, etc. similaires. Cela peut se faire en convertissant les types de données (par exemple, une chaîne de caractères en un nombre), en renommant les noms des colonnes ou en fusionnant les champs.
  3. Normalisation des modèles pour toutes les valeurs contenues dans un champ de données, de sorte que chaque valeur est censée suivre le modèle spécifié. Par exemple, vous pouvez normaliser le modèle du champ  » Numéro de téléphone » à XXX-XXX-XXXX. Les comparaisons et les rapprochements sont donc plus faciles et plus précis.
b. Cartographie des champs de données

Une fois que les bases de données sont normalisées (autant que possible), l’étape suivante consiste à mettre en correspondance les champs qui représentent les mêmes informations. Cela se fait soit manuellement (par exemple, Adresse à Adresse, Numéro de téléphone à Numéro de téléphone, etc.), ou en effectuant des vérifications pour identifier les valeurs des champs qui se chevauchent avec les champs de l’autre base de données. Pour les petits ensembles de données, la première technique est utile, mais si vous avez de grands ensembles de données où les colonnes sont nommées différemment, la seconde est très utile.

2. Calcul de la similarité à l’aide de techniques de comparaison de champs

Une fois cette étape franchie, les données sont relativement plus faciles à comparer et à identifier les doublons. Mais les fautes d’orthographe, les erreurs typographiques humaines et les variations conventionnelles existent toujours. C’est pourquoi les techniques de correspondance exacte ne sont pas utiles ici, et nous avons besoin de techniques qui prennent en compte ces aspects des données tout en calculant des scores pour évaluer la similarité entre les valeurs individuelles, et donc, l’enregistrement entier.

a. Métriques de similarité basées sur les caractères

Étant donné que la plupart des erreurs typographiques se produisent dans des chaînes de caractères, nous examinerons dans cette section les techniques les plus courantes de recherche de similitude entre chaînes de caractères.

i. Distance d’édition

Cet algorithme calcule la distance entre deux chaînes de caractères, calculée caractère par caractère. La distance est calculée en comptant le nombre d’éditions nécessaires pour transformer la première chaîne en la deuxième chaîne. Ensuite, on définit un seuil qui permet de classer deux chaînes de caractères comme concordantes (si la distance est de < ) ou non concordantes (si la distance est de > ). Trois types de modifications sont autorisés pour calculer la distance : l’insertion d’un caractère dans la chaîne, la suppression d’un caractère de la chaîne, le remplacement d’un caractère par un autre dans la chaîne.

Normalement, le compte d’une opération d’édition est considéré comme étant égal à « 1 ». Mais les différents modèles proposent un coût différent pour chaque montage. Par exemple, la distance de Levenshtein considère que le coût de chaque modification est égal à 1, alors que Needleman et Wunsch expliquent que le coût de chaque modification dépend de la nature de la modification (remplacer O par 0 a un coût plus faible, puis remplacer T par M).

ii. Distance affine de l’écart

L’algorithme de distance d’édition ne fonctionne pas bien avec les chaînes de caractères qui ont des initiales ou des formes courtes. Par exemple, la distance d’édition peut classer Jennifer Lily Stevens et Jen L. Stevens comme non concordantes. C’est là que la distance d’écart affine peut être utile car elle introduit deux opérations d’édition supplémentaires appelées :

  • Espace ouvert : il s’agit d’ajouter un espace à une chaîne de caractères où il n’y en avait pas.
  • Prolonger l’écart : il s’agit d’ajouter un écart (ou espace) à une chaîne de caractères où il y avait déjà un écart.

Il est évident que le coût de l’ouverture d’une brèche (là où il n’y en avait pas) est plus élevé que celui de l’extension d’une brèche (là où il y en avait déjà une). Cette variante de la distance d’édition permet également de calculer la similarité entre des chaînes de caractères raccourcies.

iii. Distance Smith-Waterman

Il s’agit d’une autre variante de la distance d’édition et de la distance d’écart affine. Ce modèle réduit le coût des non-concordances trouvées au début ou à la fin des chaînes de caractères, puisque les préfixes et les suffixes sont souvent différents. Par exemple, la correspondance de ces deux chaînes avec la distance S-W est plus logique : Dr Jennifer Lily Stevens et Jennifer Lily Stevens, médecin au centre médical Nat.

iv. Distance de Jaro

Jaro a introduit une formule permettant de comparer la similitude entre le prénom et le nom de famille. L’algorithme qui calcule la métrique Jaro est le suivant :

  1. Calculez les longueurs des deux chaînes de caractères à comparer (S1 et S2).
  2. Identifiez le nombre de caractères qui sont communs aux deux chaînes de caractères (C).
  3. Comparez chaque caractère de la première chaîne au caractère correspondant de la seconde, et calculez chaque caractère non correspondant comme une transposition (T).
  4. Évaluer la métrique Jaro comme :
    Jaro = 1/3 * [ (C/S1) + (C/S2) + ((C-(T/2))/C)]

Plus la valeur de la métrique Jaro est faible, plus deux chaînes de caractères sont similaires.

v. Distance N-gram.

Cet algorithme crée des sous-chaînes de N lettres à partir des chaînes correspondantes, et compare les sous-chaînes, plutôt que le mot entier. Prenons l’exemple des mots Guide et Guode . Pour calculer la distance de 2 grammes entre eux, les sous-chaînes suivantes sont créées :

  • Guide = {‘gu’, ‘ui’, ‘id’, ‘de’}
  • Guode = {‘gu’, ‘uo’, ‘od’, ‘de’}

La similarité est ensuite calculée en évaluant le nombre de sous-chaînes qui sont identiques. Cela montre évidemment si l’utilisateur a voulu taper le même mot et s’il s’agit simplement d’une erreur typographique.

b. Métriques de similarité basées sur les jetons

Les mesures de similarité basées sur les tokens entrent en jeu lorsque vous souhaitez comparer des chaînes de caractères réarrangées différemment, mais ayant la même signification. Par exemple, le prénom et le nom de famille sont généralement réarrangés. Ainsi, Jennifer Stevens est la même chose que Stevens, Jennifer. Mais la comparaison basée sur le caractère ne sera pas efficace pour de tels scénarios. C’est là que nous utilisons les métriques de similarité basées sur les jetons.

i. Cordes atomiques

La métrique de similarité basée sur les jetons la plus courante est celle des chaînes atomiques. Dans cet algorithme, la chaîne entière est divisée en mots délimités par des ponctuations, telles que l’espace, la virgule, le point, etc. Et ensuite, les mots sont comparés les uns aux autres, plutôt qu’à la chaîne entière.

ii. WHIRL

L’algorithme des chaînes atomiques n’attribue aucun poids aux mots pendant la comparaison. De ce fait, Docteur Jennifer Stevens, et Amanda Tates, Docteur seront considérés comme assez similaires (puisqu’un seul mot correspond parfaitement). WHIRL corrige ce problème en attribuant un poids relativement faible aux mots couramment utilisés et calcule la similarité en conséquence.

iii. N-grams avec WHIRL

WHIRL n’a pas pris en compte les fautes d’orthographe dans son algorithme de comparaison de la similarité. Il a été étendu pour inclure la technique de comparaison des n-grammes, de sorte que les n-grammes sont comparés au lieu de mots entiers (ou tokens).

c. Métriques de similarité phonétique

Les algorithmes basés sur les caractères et les jetons ont été conçus pour comparer des chaînes de caractères qui reflètent une similarité dans leur composition. D’autre part, nous avons d’autres cas où nous devons comparer des cordes qui ne se ressemblent pas du tout mais qui ont un son très similaire lorsqu’elles sont prononcées. C’est là que les mesures de similarité phonétique sont utiles. Examinons les techniques les plus courantes de calcul des mesures de similarité phonétique.

i. Soundex

Le Soundex est couramment utilisé pour identifier des noms de famille dont l’orthographe peut être différente, mais qui sont phonétiquement similaires. Cela permet de détecter toute erreur typographique ou orthographique survenue lors de la saisie des données. Mais l’algorithme donne surtout de bons résultats avec les noms de famille anglais et n’est pas un bon choix pour les noms d’autres origines.

Les algorithmes de Soundex calculent un code pour chaque chaîne de caractères et comparent la similitude des codes de deux chaînes de caractères distinctes. Le code Soundex est calculé comme suit :

  1. Gardez la première lettre du nom.
  2. Ignorez toutes les occurrences de w et h.
  3. Les lettres a, e, i, o, u et y ne sont pas codées et ne sont conservées que temporairement (car elles seront complètement abandonnées dans la dernière étape).
  4. Remplacez les lettres suivantes par ces chiffres :
    1. b, f, p, v → 1
    2. c, g, j, k, q, s, x, z → 2
    3. d, t → 3
    4. l → 4
    5. m, n → 5
    6. r → 6
  5. Si deux chiffres identiques ou plus sont présents dans le code, ne conservez que la première occurrence et laissez tomber les autres.
  6. Laissez tomber ces lettres : a, e, i, o, u, et y.
  7. Conservez la première lettre (de l’étape A.) et les trois premiers chiffres créés. S’il y a moins de trois chiffres, ajoutez des zéros.

Par exemple, ces deux chaînes de caractères « Fairdale » et « Faredayle » produisent le code Soundex F634, puisqu’elles sont phonétiquement identiques. Soundex s’avère être précis à 95,99% lors de la localisation de noms de famille à consonance similaire.

ii. Système d’identification et de renseignement de l’État de New York (NYSIIS)

Comme son nom l’indique, cet algorithme a été conçu en 1970 pour le système d’identification et de renseignement de l’État de New York, qui fait désormais partie de la Division des services de justice pénale de l’État de New York. Son taux de précision est de 98,72 % (2,7 % de plus que celui de Soundex) car il conserve les détails sur la position des voyelles dans le code (il les fait correspondre à la lettre A). De plus, les consonnes sont mises en correspondance avec d’autres alphabets et non avec des chiffres, ce qui crée un code alpha complet – sans aucun chiffre.

iii. Métaphone, Double Métaphone, et Métaphone 3

Lawrence Philips a développé une meilleure version de Soundex, appelée Metaphone, en 1990. Il a obtenu des résultats remarquables car il a pris en compte les détails des variations et des incohérences qui existent dans la prononciation et l’orthographe anglaises. Dans ses algorithmes, il a utilisé 16 sons consonants qui sont utilisés pour prononcer une grande bibliothèque de mots anglais et non anglais.

Plus tard, Philips a publié une version plus récente intitulée Double Metaphone, dans laquelle il a également incorporé des détails sur un certain nombre de langues – en plus de l’anglais. Enfin, en 2009, il a mis au point Metaphone 3, qui s’est avéré exact à 99 % pour les mots anglais, les autres mots familiers aux Américains et les prénoms et noms de famille couramment utilisés aux États-Unis.

d. Métriques de similarité numérique

Il existe de nombreuses méthodes pour calculer les différences basées sur les chaînes de caractères, mais pour les ensembles de données numériques, ces méthodes sont limitées. Les différences numériques simples sont généralement évaluées en calculant la distance entre les valeurs, mais pour les calculs complexes, la distribution des données numériques peut également être prise en compte. Des algorithmes tels que le Cosinus Similaire peuvent également être utilisés pour localiser les différences numériques.

Quelle technique de mise en correspondance des champs utiliser ?

Comme nous venons de le voir, le processus de recherche de similarité entre deux champs de données est assez complexe. Nous avons examiné plusieurs techniques de rapprochement des données, mais nous avons remarqué que chacune d’entre elles résout un problème spécifique de déduplication des données, et qu’il n’existe pas une seule technique qui promet d’être performante pour tous les types et formats de données.

Le choix d’une technique d’appariement dépend fortement de ces facteurs :

  • La nature de vos données – ou le type de données. Par exemple, la distance Jaro donne de bons résultats pour les chaînes de caractères, mais la similarité cosinus est largement utilisée pour les ensembles de données numériques.
  • Type de doublons qui sont présents dans votre ensemble de données. Par exemple, les fautes de frappe et d’orthographe sont mieux suivies à l’aide de la métrique de similarité basée sur les caractères, tandis que les champs formatés différemment sont mieux suivis à l’aide de la métrique de similarité basée sur les jetons.
  • Domaine de vos données. Par exemple, si vous faites correspondre des noms ou des prénoms anglais, Metaphone fonctionne bien, mais si votre ensemble de données contient également des noms non anglais, il est plus judicieux d’utiliser Double Metaphone ou Metaphone 3.

Automatisation du processus de déduplication

Comprendre les mécanismes internes des techniques de mise en correspondance des données et choisir une technique appropriée pour votre ensemble de données est une tâche difficile. Dans de nombreuses situations, une seule technique n’est pas suffisante, et une combinaison de techniques est utilisée pour déduire les données avec précision. C’est pourquoi le besoin d’outils numériques augmente. Des outils qui non seulement optimisent le temps et l’effort, mais aussi sélectionnent intelligemment les techniques de rapprochement des données en fonction de la nature de la structure et des valeurs de vos données.

DataMatch Enterprise est l’un de ces outils qui gère l’ensemble de votre processus de qualité des données du début à la fin. Il offre une gamme de modules qui prennent en charge les données provenant de différentes sources, permettent la mise en correspondance des champs et suggèrent une combinaison de définitions de correspondance spécifiques à vos données. Vous pouvez utiliser les champs de correspondance et les algorithmes proposés ou sélectionner les vôtres. L’outil peut également être utilisé pour évaluer la précision de correspondance de différentes techniques de correspondance sur votre ensemble de données, et conclure quel algorithme est le plus performant.

Pour en savoir plus, inscrivez-vous à un essai gratuit dès aujourd’hui ou organisez une démonstration avec l’un de nos experts, et commencez à déduire vos données !

In this blog, you will find:

Try data matching today

No credit card required

« * » indique les champs nécessaires

Hidden
Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

Want to know more?

Check out DME resources

Merging Data from Multiple Sources – Challenges and Solutions

Aïe ! Nous n’avons pas retrouvé votre formulaire.