Blog

¿Por qué existen los duplicados y cómo deshacerse de ellos?

Según Natik Ameen, experto en marketing de Canz Marketing, la duplicación de datos en el CRM de la empresa se debe a una serie de razones:

«desde un error humano hasta que los clientes proporcionen información ligeramente diferente en distintos momentos de la base de datos de la organización. Por ejemplo, un consumidor pone su nombre como Jonathan Smith en un formulario y Jon Smith en el otro. El reto se ve agravado por una base de datos cada vez mayor. A menudo es cada vez más difícil para los administradores hacer un seguimiento de la base de datos y también de los datos relevantes. Cada vez es más difícil garantizar que la base de datos de la organización sea precisa«.

La deduplicación de datos se produce cuando se almacena información sobre la misma entidad varias veces, en lugar de actualizar un único registro. En esta guía, discutiremos algunos conceptos básicos relacionados con la duplicación de datos y una lista de técnicas y algoritmos que se utilizan habitualmente para solucionarla.

¿Por qué existen los duplicados?

Los datos tienen múltiples representaciones, es decir, los mismos datos pueden representarse de diferentes maneras. Esta es la principal razón por la que existen registros duplicados en una base de datos. Tanto si los registros se fusionan a partir de fuentes de datos independientes, como si se introducen en una única base de datos a lo largo del tiempo, ambos conducen al complejo problema de la duplicación de datos.

Lo ideal es que cada registro de una base de datos represente una única entidad. Pero debido a una serie de razones (las más comunes se mencionan a continuación), observamos que la información de una entidad abarca varios registros.

1. Falta de identificadores únicos

Tener identificadores únicos en su base de datos es la mejor manera de evitar el almacenamiento de duplicados. Un identificador único es un campo de datos que siempre es único para una entidad (por ejemplo, el número de la Seguridad Social (SSN ) para los datos de los clientes, el número de pieza del fabricante (MPN) para los datos de los productos, etc.). En cada nueva entrada de datos, puede comprobar si existe un registro con el mismo identificador único. Y si existe, puede simplemente actualizarlo o fusionarlo, y evitar almacenar un nuevo registro para la misma entidad. Pero si su base de datos no contiene ese identificador único, el proceso de relacionar las nuevas entidades entrantes con las existentes se convierte en una tarea compleja.

2. Falta de controles de validación y restricciones de integridad

Incluso con la presencia de identificadores únicos, puede terminar con duplicados en su base de datos. Esto ocurre cuando los identificadores únicos no se ajustan a patrones válidos (por ejemplo, AAA-GG-SSSS para el SSN), o no tienen restricciones estrictas de integridad (por ejemplo, límite de 11 caracteres para el SSN).

3. Errores en la introducción de datos

La tasa de error en la introducción de datos es de 400 por cada 10.000 entradas, lo cual es una cifra importante. Así, incluso con la presencia de identificadores únicos, comprobaciones de validación y restricciones de integridad, existe la posibilidad de que el error humano intervenga y permita la existencia de duplicados en su base de datos.

Dificultad en la comparación de datos – Heterogeneidad de los datos

Para deshacerse de los duplicados en su base de datos, debe comparar los registros y evaluar cuáles pertenecen a la misma entidad. Pero cuando se comparan los registros de datos (ya sea en la misma base de datos o pertenecientes a bases de datos diferentes), se observa que tienen algunas diferencias sistemáticas, lo que dificulta su comparación exacta. Esto suele conocerse como heterogeneidad de los datos.

En términos generales, se pueden clasificar los datos heterogéneos como:

1. Heterogeneidad estructural

Este tipo de diferencia se produce cuando los campos de diferentes bases de datos representan la misma información de manera estructuralmente diferente. Por ejemplo, una base de datos podría almacenar el nombre de un contacto como Nombre de Contacto, mientras que en una segunda base de datos, se almacena en múltiples columnas como, Saludo, Nombre, Segundo Nombre y, Apellido.

2. Heterogeneidad léxica

Este tipo de diferencia se produce cuando los campos de diferentes bases de datos son estructuralmente iguales, pero representan la misma información de forma sintónica diferente. Por ejemplo, dos o más bases de datos pueden tener el mismo campo Dirección , pero una puede tener un valor de dirección 32 E St. 4, mientras que la otra puede tener 32 East, 4 th Street.

Proceso de deduplicación de datos

En pocas palabras, el proceso de deduplicación implica:

  1. Preparación de los datos mediante la normalización de los campos en todas las bases de datos
  2. Asignación de los campos que representan la misma información
  3. Elección de una técnica de comparación de campos adecuada (en función de la naturaleza de los datos) y, a continuación, cálculo de la similitud entre los campos de datos

En las próximas secciones, entraremos en un poco más de detalle de los pasos mencionados anteriormente.

1. Preparación de los datos

El primer paso en el proceso es garantizar la uniformidad en todas las bases de datos en términos de estructura de datos y campos. Este proceso reduce la heterogeneidad estructural de las bases de datos, al menos hasta cierto punto. Se trata de seguir dos pasos:

a. Depuración y normalización de datos

Se trata de eliminar cualquier error o variación en los formatos y tipos de datos de los valores, o en la estructura de las bases de datos. Esto puede lograrse mediante:

  1. Análisis de cadenas largas para identificar componentes de datos importantes. Un ejemplo de esto es cuando se tiene toda la dirección en un solo campo. El análisis del campo Dirección le proporcionará sus componentes de datos subsiguientes, como el nombre de la calle, el número de la calle, el código postal, la ciudad, el estado y el país. La búsqueda de coincidencias se hace más fácil en estos elementos analizados, en comparación con la búsqueda de coincidencias en todo el campo.
  2. Transformación de los valores de los datos para conseguir tipos de datos similares, convenciones de nomenclatura, etc. Esto puede hacerse convirtiendo los tipos de datos (por ejemplo, de cadena a número), renombrando los nombres de las columnas o fusionando los campos.
  3. Estandarización de patrones para todos los valores contenidos en un campo de datos, de modo que se espera que cada valor siga el patrón especificado. Un ejemplo de esto es cuando se estandariza el patrón del campo Número de teléfono a XXX-XXX-XXXX. De este modo, las comparaciones y los cotejos son más fáciles y precisos.
b. Asignación de campos de datos

Una vez estandarizadas las bases de datos (en la medida de lo posible), el siguiente paso es asignar los campos que representan la misma información. Esto se hace manualmente (por ejemplo, Dirigirse a Dirección, Número de teléfono para Número de teléfono, etc.), o bien ejecutar comprobaciones para identificar los valores de los campos que se solapan con los de la otra base de datos. Para conjuntos de datos más pequeños, la primera técnica es útil, pero si tiene conjuntos de datos grandes en los que las columnas tienen nombres diferentes, la segunda es bastante útil.

2. Cálculo de la similitud mediante técnicas de comparación de campos

Una vez hecho esto, ahora los datos están en una forma relativamente mejor para comparar e identificar duplicados. Pero siguen existiendo errores ortográficos, errores tipográficos humanos y variaciones convencionales. Por ello, las técnicas de comparación exacta no son útiles en este caso, y necesitamos técnicas que tengan en cuenta estos aspectos de los datos al calcular las puntuaciones para evaluar la similitud entre los valores individuales y, por tanto, el registro completo.

a. Métricas de similitud basadas en los caracteres

Dado que la mayoría de los errores tipográficos se producen en las cadenas, en esta sección veremos las técnicas más comunes para cotejar la similitud entre cadenas.

i. Editar la distancia

Este algoritmo calcula la distancia entre dos cadenas, computada carácter por carácter. La distancia se calcula contando el número de ediciones necesarias para transformar la primera cadena en la segunda. Y luego se define un umbral que clasifica dos cadenas como coincidentes (si la distancia < umbral) o no coincidentes (si la distancia > umbral). Hay tres tipos de ediciones permitidas para calcular la distancia: insertar un carácter en la cadena, eliminar un carácter de una cadena, sustituir un carácter por otro en la cadena.

Normalmente, el recuento de una operación de edición se considera «1». Pero los distintos modelos proponen un coste diferente de cada edición. Por ejemplo, la distancia Levenshtein considera el coste de cada edición como 1, mientras que Needleman y Wunsch explicaron que el coste de cada edición depende de la naturaleza de la misma (sustituir O por 0 tiene un coste menor, luego sustituir T por M).

ii. Distancia de separación afín

El algoritmo de la distancia de edición no funciona bien con cadenas que tienen iniciales o formas cortas. Por ejemplo, la distancia de edición podría clasificar a Jennifer Lily Stevens y Jen L. Stevens como no coincidentes. Aquí es donde la distancia afín a la brecha puede ser útil, ya que introduce dos operaciones más de edición llamadas:

  • Hueco abierto: se refiere a añadir un hueco (o espacio) a una cadena donde no lo había.
  • Extender hueco: se refiere a añadir un hueco (o espacio) a una cadena donde ya había un hueco.

Es obvio que el coste de abrir un hueco (donde no lo había) es mayor que el de ampliar un hueco (donde ya lo había). Esta variación de la distancia de edición permite calcular también la similitud entre cadenas acortadas.

iii. Distancia Smith-Waterman

Se trata de otra variación de la distancia de edición y de la distancia de separación afín. Este modelo reduce el coste de las discordancias encontradas al principio o al final de las cadenas, ya que los prefijos y los sufijos suelen ser diferentes. Por ejemplo, hacer coincidir estas dos cadenas con la distancia S-W tiene más sentido: Dra. Jennifer Lily Stevens y Jennifer Lily Stevens, doctora del Centro Médico Nat.

iv. Distancia de Jaro

Jaro introdujo una fórmula para comparar la similitud entre el nombre y el apellido. El algoritmo que calcula la métrica Jaro es el siguiente:

  1. Calcula las longitudes de las dos cadenas a comparar (S1 y S2).
  2. Identifica el número de caracteres que son comunes en ambas cadenas (C).
  3. Compare cada carácter de la primera cadena con el carácter correspondiente de la segunda, y calcule cada carácter no coincidente como una transposición (T).
  4. Evaluar la métrica de Jaro como:
    Jaro = 1/3 * [ (C/S1) + (C/S2) + ((C-(T/2))/C) ]

Cuanto menor sea el valor de la métrica de Jaro, más similares son dos cadenas.

v. Distancia N-grama.

Este algoritmo crea subcadenas de letras N a partir de las cadenas coincidentes, y compara las subcadenas, en lugar de la palabra completa. Tomemos como ejemplo las palabras Guía y Guode . Para calcular la distancia de 2 gramos entre ellos, se crean las siguientes subcadenas:

  • Guía = {‘gu’, ‘ui’, ‘id’, ‘de’}
  • Guode = {‘gu’, ‘uo’, ‘od’, ‘de’}

La similitud se calcula entonces evaluando el número de subcadenas que son iguales. Esto muestra evidentemente si el usuario quiso escribir la misma palabra y si es sólo un error tipográfico.

b. Métrica de similitud basada en tokens

Las métricas de similitud basadas en tokens entran en juego cuando se quieren comparar cadenas que se reordenan de forma diferente, pero que significan lo mismo. Por ejemplo, el nombre y los apellidos se suelen reordenar, como Jennifer Stevens es lo mismo que Stevens, Jennifer. Pero la comparación basada en el carácter no será efectiva para tales escenarios. Aquí es donde utilizamos la métrica de similitud basada en tokens.

i. Cadenas atómicas

La métrica de similitud basada en tokens más común es la de cadenas atómicas. En este algoritmo, toda la cadena se divide en palabras delimitadas por puntuaciones, como espacio, coma, punto, etc. Y entonces las palabras se comparan entre sí, en lugar de la cadena completa.

ii. WHIRL

El algoritmo de cadenas atómicas no asigna ningún peso a las palabras durante la comparación. Debido a esto, la Doctora Jennifer Stevens, y Amanda Tates, Doctora serán consideradas algo similares (ya que una palabra es una coincidencia completa). WHIRL soluciona este problema asignando pesos relativamente bajos a las palabras de uso común y calculando la similitud en consecuencia.

iii. N-gramas con WHIRL

WHIRL no tuvo en cuenta los errores ortográficos en su algoritmo de comparación de similitudes. Se amplió para incluir la técnica de comparación de N-gramas, de modo que se compararon n-gramas en lugar de palabras enteras (o tokens).

c. Métricas de similitud fonética

Los algoritmos basados en caracteres y en tokens se diseñaron para comparar cadenas que reflejaban similitud en su composición de caracteres. Por otro lado, tenemos otros casos en los que necesitamos comparar cuerdas que pueden no parecerse en absoluto pero que tienen un sonido muy similar cuando se pronuncian. Aquí es donde la métrica de la similitud fonética resulta útil. Veamos las técnicas más comunes para calcular las métricas de similitud fonética.

i. Soundex

El Soundex se utiliza habitualmente para identificar apellidos que pueden tener una ortografía diferente, pero que son fonéticamente similares. Esto ayuda a detectar cualquier error tipográfico u ortográfico que se haya producido al introducir los datos. Pero el algoritmo funciona bien sobre todo con apellidos ingleses y no es una buena opción para nombres de otros orígenes.

Los algoritmos Soundex calculan un código para cada cadena y comparan la similitud de los códigos de dos cadenas distintas. El código Soundex se calcula como:

  1. Mantenga la primera letra del nombre.
  2. Ignora todas las apariciones de w y h.
  3. Las letras a, e, i, o, u e y no están codificadas y sólo se mantienen temporalmente (ya que se eliminarán por completo en el último paso).
  4. Sustituye las siguientes letras por estos dígitos:
    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 hay dos o más dígitos idénticos en el código, sólo se mantiene la primera ocurrencia y se elimina el resto.
  6. Tira estas letras: a, e, i, o, u e y.
  7. Mantenga la primera letra (del paso A.) y los tres primeros dígitos creados. Si hay menos de tres dígitos, añada ceros.

Por ejemplo, estas dos cadenas «Fairdale» y «Faredayle » tienen el código Soundex F634, ya que son fonéticamente iguales. Soundex ha demostrado tener una precisión del 95,99% a la hora de localizar apellidos de sonido similar.

ii. Sistema de Identificación e Inteligencia del Estado de Nueva York (NYSIIS)

Como su nombre indica, este algoritmo se ideó para el Sistema de Identificación e Inteligencia del Estado de Nueva York en 1970, que ahora forma parte de la División de Servicios de Justicia Penal del Estado de Nueva York. Su índice de precisión es del 98,72% (un 2,7% más que el de Soundex), ya que conserva los detalles sobre la posición de las vocales en el código (las asigna a la letra A). Además, las consonantes se asignan a otros alfabetos y no a números, creando así un código alfa completo, sin números.

iii. Metáfono, Metáfono doble y Metáfono 3

Lawrence Philips desarrolló una versión mejorada de Soundex, llamada Metaphone, en 1990. Tuvo un rendimiento notable al considerar los detalles de las variaciones e incoherencias que hay en la pronunciación y la ortografía inglesas. En sus algoritmos, utilizó 16 sonidos consonánticos que se emplean en la pronunciación de una gran biblioteca de palabras inglesas y no inglesas.

Más tarde, Philips publicó una versión más reciente, llamada Double Metaphone, en la que también incorporó detalles de varios idiomas, además del inglés. Finalmente, en 2009, desarrolló Metaphone 3, que demostró tener una precisión del 99% para las palabras en inglés, otras palabras familiares para los estadounidenses y los nombres y apellidos de uso común en Estados Unidos.

d. Métricas de similitud numérica

Existen muchos métodos para calcular las diferencias basadas en cadenas, pero para los conjuntos de datos numéricos, estos métodos son limitados. Las diferencias numéricas simples suelen evaluarse calculando la distancia entre los valores, pero para el cálculo complejo también puede considerarse la distribución de los datos numéricos. También se pueden utilizar algoritmos como el de la similitud del coseno para localizar diferencias numéricas.

¿Qué técnica de cotejo de campos utilizar?

Como acabamos de ver, el proceso de búsqueda de similitudes entre dos campos de datos es bastante complejo. Hemos revisado múltiples técnicas de emparejamiento de datos, pero nos hemos dado cuenta de que cada una de ellas resuelve un problema específico de deduplicación de datos, y no hay una sola técnica que prometa funcionar bien para todos los tipos y formatos de datos.

La selección de una técnica de concordancia depende en gran medida de estos factores:

  • Naturaleza de sus datos – o el tipo de datos. Por ejemplo, la distancia Jaro funciona bien para las cadenas, pero la similitud del coseno se utiliza ampliamente para los conjuntos de datos numéricos.
  • Tipo de duplicados que están presentes en su conjunto de datos. Por ejemplo, las erratas y las faltas de ortografía se detectan mejor utilizando métricas de similitud basadas en los caracteres, mientras que los campos con formatos diferentes se ajustan mejor utilizando métricas de similitud basadas en los tokens.
  • Dominio de sus datos. Por ejemplo, si está cotejando nombres o apellidos ingleses, entonces Metaphone funciona bien, pero si también hay nombres no ingleses en su conjunto de datos, entonces tiene más sentido utilizar Metaphone doble o Metaphone 3.

Automatización del proceso de deduplicación

Entender los entresijos de las técnicas de cotejo de datos y elegir una adecuada para su conjunto de datos es una tarea difícil. En muchas situaciones, una sola técnica no es suficiente, y se utiliza una combinación de técnicas para desduplicar los datos con precisión. Por ello, la necesidad de herramientas digitales es cada vez mayor. Herramientas que no sólo optimizan el tiempo y el esfuerzo, sino que también seleccionan de forma inteligente las técnicas de cotejo de datos en función de la naturaleza de su estructura y valores.

DataMatch Enterprise es una de esas herramientas que se encarga de todo el proceso de calidad de datos desde el principio hasta el final. Ofrece una serie de módulos que admiten datos procedentes de diferentes fuentes, permiten la asignación de campos y sugieren una combinación de definiciones de coincidencias específicas para sus datos. Puede utilizar los campos y algoritmos de coincidencia sugeridos o anularlos seleccionando los suyos propios. La herramienta también puede utilizarse para evaluar la precisión de las coincidencias de diferentes técnicas de coincidencia en su conjunto de datos, y concluir qué algoritmo tiene un buen rendimiento.

Para obtener más información, regístrese hoy mismo para obtener una prueba gratuita o concierte una demostración con uno de nuestros expertos, y comience a desduplicar sus datos.

In this blog, you will find:

Try data matching today

No credit card required

Hidden

Want to know more?

Check out DME resources

Merging Data from Multiple Sources – Challenges and Solutions

¡Vaya! No hemos podido localizar tu formulario.