duplicates - guia - Herramientas para hacer coincidir los datos de nombre/dirección
qgis manual (10)
Cada proveedor importante tiene su propia solución. Oracle, IBM, SAS Dataflux, etc. y cada uno afirma ser el mejor.
Evaluación verificada independiente:
Hubo un estudio realizado en el Centro de la Universidad de Curtin para Data Linkage en Australia que simulaba la coincidencia de 4,4 millones de registros. Identificó qué proveedores tenían en términos de precisión (número de coincidencias encontradas vs disponibles) Número de coincidencias falsas
- DataMatch Enterprise , la precisión más alta (> 95%), muy rápido, bajo costo
- Etapa de calidad de IBM , alta precisión (> 90%), muy rápido, alto costo (> $ 100K)
- Flujo de datos SAS, Precisión media (> 85%), Rápido, Alto costo (> 100K)
Esa fue la mejor evaluación independiente que pudimos encontrar, fue muy exhaustiva.
Aquí hay un problema interesante.
Tengo una base de datos de Oracle con información de nombre y dirección que necesita mantenerse actualizada.
Recibimos datos de diferentes fuentes gubernamentales y necesitamos determinar las coincidencias, y si actualizar o no la base de datos con los datos, o si se necesita crear un nuevo registro.
No existe ningún tipo de identificador único que pueda usarse para vincular registros, y la calidad de los datos no siempre es buena; siempre habrá errores tipográficos, personas que usen nombres diferentes (es decir, Joe vs. Joseph), etc.
Me interesaría saber de alguien que haya trabajado anteriormente sobre este tipo de problema cómo lo resolvieron, o al menos partes automatizadas de él.
Cada una de las principales compañías de software que están activas en este espacio ofrece paquetes de soluciones que manejan el análisis de nombre y dirección, la estandarización de datos, la desduplicación o coincidencia de registros, la vinculación / vinculación de registros, la supervivencia, etc. Aunque son un poco caros.
Por ejemplo, la propia solución de Oracle para este problema es el producto " Oracle Data Quality (ODQ) para Oracle Data Integrator (ODI) ", que es parte de su pila de Fusion Middleware. Como su nombre lo indica, ODQ requiere ODI (es decir, es un módulo complementario que tiene licencia por separado y depende de ODI).
El paquete de soluciones Websphere de IBM (obtenido a través de su adquisición de Ascential) incluye QualityStage .
Business Objects, ahora una empresa de SAP, tiene un producto de calidad de datos en su suite Enterprise Information Management (EIM).
Otras marcas importantes de calidad de datos incluyen Dataflux (una compañía SAS) y Trillium Software (una compañía Harte-Hanks)
Gartner Group lanza un Magic Quadrant anual para suites de soluciones de calidad de datos. Los proveedores que califican bien en estos Cuadrantes Mágicos generalmente hacen que todo el informe esté disponible en línea para los usuarios registrados en su sitio web ( ejemplo 1 , ejemplo 2 ).
El término para el problema que busca resolver es "Grabar enlace".
No puedo recomendar una herramienta específica. Realice una búsqueda de "software de enlace de registros" o "software de purga de combinación" y, con un poco de investigación, podrá encontrar algo que satisfaga sus necesidades.
Pude encontrar una solución de código abierto, llamada Febrl . Esta herramienta fue desarrollada originalmente para el ámbito de la investigación biomédica, que explica el nombre "Enlace de registro biomédico libremente extensible". Puede leer más sobre esto aquí: "Técnicas paralelas de gran escala para el enlace de registros de alto rendimiento"
Para obtener una buena visión general de los problemas / soluciones involucradas en la vinculación de registros, lea sobre "Merge / Purge and Duplicate Detection" .
En el frente de código abierto, ahora hay una biblioteca de Python para hacer este tipo de resolución de deduplicación / entidad de registro: Dedupe .
Requiere habilidades de programación, pero es gratis y se puede ejecutar en una computadora portátil, en comparación con un servidor enorme.
Aquí hay una descripción general de cómo funciona .
En mi trabajo actual, tenemos muchos problemas de integridad de datos. Intentamos "restregar" los datos antes de que se carguen para garantizar la calidad. Actualmente usamos Melissa Data para eliminar nombres, direcciones y correos electrónicos. Hace un buen trabajo al estandarizar las cosas antes de cargarlas. De esa forma, podemos evitar la duplicación de datos.
Además, SQL Server Integration Services (sé que está utilizando Oracle) tiene un componente que hace coincidir "difusa" en cadenas, lo que le permite encontrar una coincidencia cercana en lugar de una coincidencia directa uno a uno. Se llama búsqueda difusa. Básicamente le da un puntaje, diciéndole qué tan cerca de un partido son las dos entradas ... Puede establecer umbrales para decirle qué tan cerca tiene que ser para considerarlo un partido (es decir, dentro del 80% o lo que sea).
En el pasado, también usé SOUNDEX para determinar si los nombres eran similares para determinar duplicados. Hay muchas implementaciones de SOUNDEX.
Buena suerte.
Es un problema clásico de vinculación de registros. Typos, letras faltantes, etc. pueden manejarse con un enfoque probabilístico definiendo un conjunto de reglas para el bloqueo.
Un software que podría hacerlo bien para usted es FRIL . En Java, gratis y muy amigable. Hay enlaces a tutoriales y videos en el sitio web. Admite conectividad DB, aunque no estoy seguro del oráculo.
RecLink podría ser otro camino por recorrer, aunque probablemente deba esforzarse más para tenerlo en funcionamiento, ya que no hay manuales / tutoriales (que yo sepa).
Desde opciones gratuitas, también hay RELAIS .
He visto a Dataflux en acción y, de acuerdo con nuestro analista de datos "estrella", es la herramienta más precisa para "agrupar" (como lo llama Dataflux) que ha encontrado para vincular nombres de personas y empresas. Sin embargo, es bastante caro.
Hice algo así en las listas de membresía para una compañía de seguros. Afortunadamente, teníamos el SSN para determinar el miembro primario, pero tenía que decidir si los dependientes eran nuevos o existentes (solo por nombre). Probé con un algoritmo soundex como parte de una solución, pero no parecía ajustarse a la factura, porque parecía asignar demasiados nombres diferentes a la misma cosa (y muchas familias tienden a nombrar a sus hijos con nombres que suenan similares). Terminé usando las (primeras) cuatro letras del primer nombre de las personas dependientes como un identificador único y llamé "lo suficientemente bueno". No sé cómo manejaría la familia de George Foreman :-)
Lecciones aprendidas del uso de FirstLogic. (Otros productos deberían ser similares.) Por contexto, estábamos obteniendo archivos de docenas de fuentes, y cada uno estaría en un formato diferente. Necesitábamos saber quién necesitaba ser agregado a nuestra base de datos, quién necesitaba ser actualizado y quién solo necesitaba ser marcado como "en la lista".
Esperaba que el software mirara un archivo completo y determinara que, por ejemplo, si la columna A tenía apellidos en 98 de 100 filas, entonces la columna A debe ser la columna del apellido. Eso no es cierto; cada registro se procesa individualmente
Si sabe exactamente qué datos hay en qué campo, puede decirle al software y lo manejará. Pero si no siempre estás seguro de que estás mejor solo dándole toda la cadena y dejando que el software lo resuelva. Un ejemplo de esto es un campo de apellido que contiene algo así como "Smith Jr MD". Si declara que es la columna del apellido, asumirá que el apellido es "Smith Jr MD". Pero si pasa "John Smith Jr MD" y deja que el software lo resuelva, identificará correctamente todos los bits.
Algunas cosas que parecían obvias no lo eran. Por ejemplo, de fábrica, FirstLogic no supone que una coma significa "apellido, nombre". En realidad, tiene una gran lista de apellidos y una gran lista de nombres, por lo que puede ignorar la coma. Constantemente tuvimos problemas con personas como "John, Thomas". Y a veces se confundía porque lo que parecía ser un apellido obvio para nosotros en realidad era un nombre en español o algo así.
Es difícil usar el sistema para agregar datos ficticios. Si tienes personas nombradas como "Cuenta de prueba" o "TBD", no se procesarán en absoluto. FirstLogic descartará el registro porque no encontró ningún dato que reconociera.
Personalizar el sistema es posible, pero no tan fácil como lo hacen las personas de ventas. Hay un millón de opciones y archivos y diccionarios personalizados. Necesitará invertir el tiempo para comprender cómo funciona si espera poder personalizarlo. Es como un RDBMS o una herramienta ETL. No es una caja negra mágica.
También tiene un montón de características de calidad de datos que ayudan a justificar la compra del software, pero que requieren un esfuerzo dedicado para aprender y aplicar.
Las herramientas en realidad no están diseñadas para procesar una lista en un archivo maestro; fueron creados para operaciones de fusión-purga. Es posible (lo estamos haciendo), pero requiere que trate su base de datos en una lista (que requiere que extraiga todos los registros activos en un archivo plano). Además, cuanto más control desee sobre qué registros irán (es decir, si el nombre es una coincidencia del 80% y los primeros dos dígitos del código postal son idénticos, entonces es probable que sea la misma persona, etc.), el complicado proceso de su lote es va a ser.
Finalmente, nos dimos cuenta de que procesar "John Smith" y procesar "Annabelle DiGiovanni" son bestias muy diferentes cuando intenta determinar si dos personas en diferentes direcciones son realmente iguales. Puede ajustar el software para que los nombres poco comunes tengan más peso en una coincidencia que los nombres comunes, pero ¿quién tiene el tiempo? Nuestro proceso de coincidencia es aproximadamente el 80% de precisión y estamos satisfechos con el procesamiento manual del 20% restante.
No piense en ello como una herramienta para hacer automáticamente la comparación. Piense en ello como una herramienta para permitir que sus procesadores de datos humanos sean más productivos. De esa manera lo has configurado de modo que si alcanzas el 80% de precisión, es un éxito rotundo en vez de corto.
Utilicé dataladder.com para un gran conjunto de datos de nombres. Hicieron un trabajo fantástico al combinar diferentes bases de datos con grafías muy diferentes y cortar muchos duplicados.