Question

Voici un problème intéressant.

J'ai une base de données Oracle avec des informations de nom et d'adresse qui doivent être tenues à jour.

Nous recevons des flux de données provenant d'un certain nombre de sources gouvernementales différentes et devons déterminer les correspondances, et savoir s'il faut ou non mettre à jour la base de données avec les données, ou si un nouvel enregistrement doit être créé.

Il n'existe aucune sorte d'identifiant unique pouvant être utilisé pour relier des enregistrements, et la qualité des données n'est pas toujours très bonne - il y aura toujours des fautes de frappe, des personnes utilisant des noms différents (par exempleJoe contreJoseph), etc.

Je serais intéressé d'entendre quiconque ayant déjà travaillé sur ce type de problème expliquer comment il l'a résolu, ou du moins en a automatisé certaines parties.

Était-ce utile?

La solution

Chacune des principales sociétés de logiciels actives dans cet espace propose des suites de solutions qui gèrent l'analyse des noms et des adresses, la standardisation des données, la déduplication ou la mise en correspondance des enregistrements, la liaison/fusion des enregistrements, la survie, etc.Ils sont tous un peu chers cependant.

Par exemple, la propre solution d'Oracle à ce problème est le produit "Oracle Data Quality (ODQ) pour Oracle Data Integrator (ODI)," qui fait partie de leur pile Fusion Middleware.Comme son nom l'indique, ODQ nécessite ODI (c'est-à-dire qu'il s'agit d'un module complémentaire sous licence séparée et dépendant d'ODI).

La suite de solutions Websphere d'IBM (obtenue grâce à l'acquisition d'Ascential) comprend Étape Qualité.

Business Objects, désormais une société SAP, dispose d'un Qualité des données produit dans le cadre de sa suite Enterprise Information Management (EIM).

Parmi les autres grandes marques de qualité des données figurent Flux de données (une société SAS) et Logiciel Trillium (une société Harte-Hanks)

Le groupe Gartner publie chaque année un Magic Quadrant pour les suites de solutions de qualité des données.Les fournisseurs qui obtiennent de bonnes notes dans ces Magic Quadrants mettent généralement l'intégralité du rapport à la disposition des utilisateurs enregistrés sur leur site Web (Exemple 1, exemple 2).

Autres conseils

Du côté de l'open source, il existe désormais une bibliothèque python pour effectuer ce type de déduplication d'enregistrements/résolution d'entités : Déduplication.

Nécessite des compétences en programmation, mais il est gratuit et peut être exécuté sur un ordinateur portable, par opposition à un énorme serveur.

Voici un aperçu de Comment ça fonctionne.

Leçons tirées de l’utilisation de FirstLogic.(D'autres produits devraient être similaires.) Pour le contexte, nous obtenions des fichiers provenant de dizaines de sources, et chacun serait dans un format différent.Nous avions besoin de savoir qui devait être ajouté à notre base de données, qui devait être mis à jour et qui devait simplement être marqué comme « sur la liste ».

  1. Je m'attendais à ce que le logiciel examine un fichier entier et détermine que, disons, si la colonne A contenait des noms de famille dans 98 lignes sur 100, alors la colonne A devait être la colonne de nom de famille.Ce n'est pas vrai;chaque enregistrement est traité individuellement.

  2. Si vous savez exactement quelles données se trouvent dans quel domaine, vous pouvez le dire au logiciel et il le gérera.Mais si vous n'êtes pas toujours sûr, il vaut mieux lui donner la chaîne entière et laisser le logiciel le comprendre.Un exemple de ceci est un champ de nom de famille qui contient quelque chose comme « Smith Jr MD ».Si vous déclarez qu'il s'agit de la colonne du nom de famille, cela supposera que le nom de famille est « Smith Jr MD ».Mais si vous réussissez "John Smith Jr MD" et laissez le logiciel le comprendre, il identifiera correctement tous les bits.

  3. Certaines choses qui semblaient évidentes ne l’étaient pas.Par exemple, FirstLogic ne suppose pas par défaut qu'une virgule signifie « nom, prénom ».Il a en fait une très grande liste de noms de famille et une très grande liste de prénoms, il pense donc qu'il peut simplement ignorer la virgule.Nous avions constamment des problèmes avec des gens comme "John, Thomas".Et parfois, cela prêtait à confusion parce que ce qui nous semblait être un nom de famille évident était en fait un prénom en espagnol ou quelque chose du genre.

  4. Il est difficile d'utiliser le système pour ajouter des données factices.Si vous avez des personnes nommées comme « Compte de test » ou « À déterminer », elles ne seront pas traitées du tout : FirstLogic supprimera l'enregistrement car il n'a trouvé aucun élément de données reconnu.

  5. La personnalisation du système est possible, mais pas aussi simple que le prétendent les vendeurs.Il existe un million d'options, de fichiers et de dictionnaires personnalisés.Vous devrez investir du temps pour comprendre comment cela fonctionne si vous espérez pouvoir le personnaliser.C'est comme un SGBDR ou un outil ETL.Ce n'est pas une boîte noire magique.

  6. Il dispose également d'une tonne de fonctionnalités de qualité des données qui contribuent à justifier l'achat du logiciel, mais qui nécessitent un effort dédié pour apprendre et appliquer.

  7. Les outils ne sont pas vraiment conçus pour traiter une liste par rapport à un fichier maître ;ils ont été créés pour les opérations de fusion-purge.C'est possible (nous le faisons), mais cela nécessite que vous traitiez votre base de données comme une liste (ce qui vous oblige à extraire tous les enregistrements live dans un fichier plat).De plus, plus vous souhaitez contrôler quels enregistrements vont où (c'est-à-diresi le nom correspond à 80 % et que les deux premiers chiffres du code postal sont identiques, alors il s'agit probablement de la même personne, etc.), plus votre processus par lots sera compliqué.

  8. Enfin, nous avons réalisé que le traitement de « John Smith » et le traitement de « Annabelle DiGiovanni » sont des bêtes très différentes lorsque vous essayez de déterminer si deux personnes à des adresses différentes sont réellement les mêmes.Vous pouvez affiner le logiciel afin que les noms peu communs aient plus de poids dans une correspondance que les noms communs, mais qui a le temps ?Notre processus de mise en correspondance est précis à environ 80 % et nous nous sommes contentés de traiter manuellement les 20 % restants.

Ne le considérez pas comme un outil permettant d'effectuer automatiquement la correspondance.Considérez-le comme un outil permettant à vos processeurs de données humaines d'être plus productifs.De cette façon, vous l'avez configuré de manière à ce que si vous atteignez une précision de 80 %, ce soit un succès retentissant plutôt qu'en deçà de la cible.

Dans mon travail actuel, nous rencontrons de nombreux problèmes d’intégrité des données.Nous essayons de « nettoyer » les données avant qu’elles ne soient chargées pour garantir la qualité.Nous utilisons actuellement Melissa Data pour nettoyer les noms, adresses et e-mails.Il fait un très bon travail en standardisant les choses avant de le charger.De cette façon, nous pouvons éviter les données en double.

De plus, SQL Server Integration Services (je sais que vous utilisez Oracle) dispose d'un composant qui effectue une correspondance "flou" sur les chaînes, vous permettant de trouver une correspondance proche plutôt qu'une correspondance directe un à un.C'est ce qu'on appelle la recherche floue.Fondamentalement, il vous donne un score, vous indiquant à quel point les deux entrées sont proches d'une correspondance...Vous pouvez ensuite définir des seuils pour lui indiquer à quel point il doit être proche pour considérer qu'il s'agit d'une correspondance (c'est-à-diredans les 80 % ou autre).

Dans le passé, j'ai également utilisé SOUNDEX pour déterminer si les noms étaient similaires lors de la détermination des doublons.Il existe de nombreuses implémentations de SOUNDEX.

Bonne chance.

Le terme désignant le problème que vous cherchez à résoudre est « liaison d'enregistrements ».

Je ne peux pas recommander un outil spécifique.Faites une recherche sur « logiciel de liaison d'enregistrements » ou « logiciel de purge de fusion » et avec un peu de recherche, vous devriez être en mesure de trouver quelque chose qui répond à vos besoins.

J'ai pu trouver une solution open source, nommée Février.Cet outil a été initialement développé pour le domaine de la recherche biomédicale, qui explique le nom «liaison d'enregistrements biomédicaux librement extensible». Vous pouvez en savoir plus ici: "Techniques parallèles à grande échelle pour une liaison d'enregistrements haute performance"

Pour un bon aperçu des problèmes/solutions impliqués dans la liaison d'enregistrements, lisez sur "Fusion/Purge et détection des doublons".

Chaque grand fournisseur a sa propre solution.Oracle, IBM, SAS Dataflux, etc. et chacun prétend être le meilleur.

Évaluation indépendante vérifiée :

Une étude a été réalisée au Curtin University Center for Data Linkage en Australie qui a simulé l'appariement de 4,4 millions d'enregistrements.Identifié ce que les fournisseurs avaient en termes d'exactitude (nombre de correspondances trouvées par rapport à celles disponibles).Nombre de fausses correspondances)

  1. DataMatch Entreprise, Précision la plus élevée (>95 %), très rapide, faible coût
  2. Étape qualité IBM , haute précision (>90 %), très rapide, coût élevé (>100 000 $)
  3. Flux de données SAS, précision moyenne (>85%), rapide, coût élevé (>100K)

C’était la meilleure évaluation indépendante que nous puissions trouver, elle était très approfondie.

J'ai fait quelque chose comme ça sur les listes d'adhésion des membres d'une compagnie d'assurance.Heureusement, nous avions des SSN pour déterminer le membre principal, mais je devais décider si les personnes à charge étaient nouvelles ou existantes (par leur nom uniquement).J'ai essayé un algorithme soundex dans le cadre d'une solution, mais cela ne semblait pas convenir, car il semblait associer trop de noms différents à la même chose (et de nombreuses familles ont tendance à nommer leurs enfants avec des noms à consonance similaire).J'ai fini par utiliser le (je pense) aux quatre premières lettres du prénom à charge comme identifiant unique, et l'appelant "assez bon". Je ne sais pas comment je gérerais la famille de George Foreman :-)

J'ai vu Dataflux en action et, selon notre analyste de données « vedette », c'est l'outil de « clustering » le plus précis (comme l'appelle Dataflux) qu'il a trouvé pour relier les noms de personnes et d'entreprises.C'est quand même assez cher.

C'est un problème classique de couplage d'enregistrements.Fautes de frappe, lettres manquantes, etc.peut être traité avec une approche probabiliste en définissant un ensemble de règles de blocage.

Un logiciel qui pourrait bien le faire pour vous est FRIL.En Java, gratuit et très convivial.Il existe des liens vers des didacticiels et des vidéos sur le site Web.Il prend en charge la connectivité DB, même si je ne suis pas sûr de l'oracle.

Lien Rec Cela pourrait être une autre façon de procéder, même si vous devrez probablement travailler plus dur pour le faire fonctionner car il n'y a pas de manuels/tutoriels (à ma connaissance).

Parmi les options gratuites, il y a aussi RELAIS.

j'ai utilisé dataladder.com pour un grand ensemble de données de noms.Ils ont fait un travail fantastique en faisant correspondre différentes bases de données avec des orthographes très différentes et en éliminant de nombreux doublons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top