Fraud Blocker Cómo funcionan los algoritmos de coincidencia aproximada y cuándo utilizar cada uno de ellos

Los algoritmos de coincidencia difusa determinan cómo se puntúa la similitud entre dos registros, y elegir el algoritmo incorrecto para tu tipo de campo es la principal causa de coincidencias perdidas y falsos positivos. La distancia de Levenshtein es adecuada para códigos cortos e identificadores. El algoritmo de Jaro-Winkler es más eficaz con los nombres propios. Soundex y Double Metaphone detectan variaciones fonéticas. La similitud coseno basada en tokens gestiona textos largos y reestructurados. Utilizados en combinación con la puntuación ponderada, estos algoritmos constituyen el núcleo de cualquier proceso de vinculación de registros a nivel de producción.

Empieza una prueba gratuita de Match Data Pro y ejecuta tu primera tarea de coincidencia aproximada en cuestión de minutos: sin contrato ni cuota de alta.

Por qué un algoritmo nunca es suficiente

Un único algoritmo difuso aplicado de manera uniforme a todos los campos produce resultados poco fiables. Consideremos este par de registros de clientes:

CampoRegistro ADisco B
NombreJonathanJon
ApellidoSmythSmith
Correo electrónicoj.smyth@acme.comjsmith@acmecorp.com
Teléfono555-301-44225553014422
EmpresaAcme CorpACME Corporation

La distancia de Levenshtein entre «Jonathan» y «Jon» arroja una puntuación de similitud baja: 5 modificaciones de un total de 8 caracteres. Parece que no coinciden. Sin embargo, el método de Jaro-Winkler, que da mayor peso a la coincidencia de prefijos, arroja un resultado de 0,82. Es probable que se trate de una coincidencia. El uso de la distancia de Levenshtein con nombres da lugar a falsos negativos. El uso del método de Jaro-Winkler con direcciones de correo electrónico da lugar a falsos positivos.

El enfoque correcto: asignar cada tipo de campo al algoritmo más adecuado para él y, a continuación, agregar las puntuaciones de cada campo en una única puntuación global.

Los cinco algoritmos básicos de coincidencia difusa

1. Distancia de Levenshtein

La distancia de Levenshtein calcula el número mínimo de modificaciones de un solo carácter —inserciones, eliminaciones y sustituciones— necesarias para transformar una cadena en otra. Normalizada en una escala de similitud de 0 a 1, se expresa como: 1 menos (distancia de edición / longitud máxima de la cadena).

Ideal para: identificadores cortos, códigos de producto, campos de código postal, números de referencia. La comparación entre «AB1234» y «AB1235» obtiene una puntuación de 0,83: un dígito intercambiado, alta fiabilidad.

Evita: nombres propios con abreviaturas (Jon frente a Jonathan), texto con el orden de los términos invertido (Smith John frente a John Smith).

Consulta nuestra guía detallada sobre la distancia de Levenshtein y la puntuación basada en la distancia de edición para ver ejemplos resueltos con umbrales de coincidencia.

2. Similitud de Jaro-Winkler

Jaro-Winkler amplía la puntuación Jaro básica añadiendo una bonificación por prefijo. Los registros que comparten un prefijo común de hasta cuatro caracteres reciben un ajuste al alza en su puntuación. Esto refleja el hecho de que los errores ortográficos en los nombres suelen producirse en la parte central o final de una cadena, y no al principio.

Ideal para: nombres, apellidos y nombres propios cortos. «Katherine» frente a «Kathryn» obtiene una puntuación de 0,88 según el método Jaro-Winkler. Según el método Levenshtein sin normalizar, obtiene una puntuación de 0,56.

Evítalo en: direcciones de correo electrónico y códigos en los que un prefijo idéntico pueda tener significados muy diferentes.

3. Soundex y Double Metaphone

Los algoritmos fonéticos codifican los nombres como claves fonéticas y comparan las claves en lugar de las cadenas de caracteres sin procesar. Soundex reduce un nombre a una letra más tres dígitos (Smith = S530, Smyth = S530). Double Metaphone gestiona una gama más amplia de pronunciaciones internacionales de nombres y devuelve dos claves por nombre en caso de sonidos ambiguos.

Ideal para: la correspondencia de nombres entre distintos idiomas, registros procedentes de centros de atención telefónica y errores de introducción de datos derivados de la recopilación verbal. «Nguyen» y «Win» pueden codificarse fonéticamente como la misma clave, dependiendo de la romanización.

Evítalo en: direcciones y códigos. «Maine» y «Main» son fonéticamente idénticos, pero tienen significados totalmente distintos en el contexto de una dirección postal.

4. Similaridad basada en tokens y similaridad coseno

Los métodos basados en tokens dividen las cadenas en tokens de n-gramas de palabras o caracteres y miden el solapamiento. La similitud coseno representa cada cadena como un vector de frecuencias de tokens y mide el ángulo entre los vectores. Una puntuación de 1,0 significa que los conjuntos de tokens son idénticos; 0,0 significa que no hay solapamiento.

Ideal para: nombres de empresas con un orden de palabras variable («Acme Corp Ltd» frente a «Ltd Acme Corporation»), descripciones de productos y direcciones con elementos reordenados.

Ejemplo: «Global Logistics Partners Inc» frente a «Partners Inc Global Logistics» obtiene una puntuación de 1,0 en similitud coseno y de 0,42 en la medida de Levenshtein normalizada. La medida de Levenshtein falla en este caso. La similitud coseno, no.

5. Coincidencia exacta con normalización

No todos los campos requieren una valoración aproximada. Los números de teléfono, los números de identificación fiscal y los códigos postales estandarizados deben limpiarse y normalizarse primero —eliminar el formato, desarrollar las abreviaturas, añadir ceros a la izquierda— y, a continuación, compararse de forma exacta. Aplicar la lógica difusa a un campo como un EIN de 9 dígitos introduce ruido en lugar de resolverlo.

Ideal para: Cualquier campo con un formato canónico: número de la Seguridad Social (SSN), número de identificación fiscal (EIN), número de teléfono (normalizado según la norma E.164) y código postal ZIP+4 tras la limpieza de direcciones mediante CASS.

Cómo funciona el proceso de selección de algoritmos

El siguiente diagrama muestra el proceso completo de enrutamiento y puntuación del algoritmo que se utiliza en un sistema de coincidencia difusa en producción.

Diagrama de flujo que muestra el proceso de selección del algoritmo de coincidencia difusa: filtrado, asignación de algoritmos según el tipo de campo (Jaro-Winkler, Levenshtein, Soundex, coseno), puntuación ponderada y resultados de coincidencia, revisión o no coincidencia

El proceso consta de cuatro fases:

  1. Bloqueo: Generar pares candidatos utilizando una clave compartida (la primera letra del apellido y el prefijo del código postal) para evitar comparaciones de complejidad O(n²) en conjuntos de datos de gran tamaño.
  2. Asignación de algoritmos: Asigna cada campo al algoritmo adecuado en función de su tipo. Los campos de nombre se asignan al algoritmo de Jaro-Winkler. Los campos de código se asignan al algoritmo de Levenshtein. Los campos de texto libre se asignan a la similitud coseno.
  3. Agregación ponderada: multiplica la puntuación de cada campo por una ponderación configurada (por ejemplo, apellido = 0,30, correo electrónico = 0,25, teléfono = 0,20, empresa = 0,15, dirección = 0,10) y suma los resultados para obtener una puntuación global.
  4. Decisión de umbral: Puntuación superior a 0,85 = coincidencia automática y fusión. Puntuación entre 0,65 y 0,84 = cola de revisión. Puntuación inferior a 0,65 = sin coincidencia.

El motor de coincidencia aproximada configurable de Match Data Pro aplica precisamente este patrón. Se asignan algoritmos y ponderaciones por campo en la interfaz de usuario, sin necesidad de escribir código.

Configuración de los umbrales: el paso clave que la mayoría de los equipos no hacen bien

Los umbrales controlan el equilibrio entre precisión y recuperación. Si se establece un umbral de coincidencia automática demasiado alto, se pasarán por alto duplicados reales. Si se establece demasiado bajo, se fusionarán registros que deberían permanecer separados.

Umbrales iniciales recomendados según el caso de uso

Caso de usoCoincidencia automáticaBanda de reseñasRechazar
Deduplicación de CRM≥ 0.850,65 – 0,84< 0.65
Resolución de entidades (AML/KYC)≥ 0.920,75 – 0,91< 0.75
Concordancia del fichero maestro de proveedores≥ 0.800,60 – 0,79< 0.60
Eliminación de direcciones duplicadas≥ 0.900,70 – 0,89< 0.70

Estos son puntos de partida. Valídalos con una muestra etiquetada de al menos 200 pares con coincidencias conocidas antes de aplicarlos a los datos de producción. La herramienta de perfilado de datos con IA de Match Data Pro te ayuda a comprender la distribución de tus datos antes de establecer los umbrales.

Evaluación de la calidad de los partidos

Mide la precisión (coincidencias correctas / todas las coincidencias devueltas) y la recuperación (coincidencias correctas / todas las coincidencias reales) en tu muestra etiquetada. Una precisión de 0,95 con una recuperación de 0,78 significa que se te están escapando el 22 % de los duplicados reales, lo que probablemente se deba a que el umbral establecido es demasiado alto. Ajusta el valor en incrementos de 0,02 y vuelve a medir.

Combinación de algoritmos para la vinculación de registros de múltiples fuentes

Al vincular registros de varios sistemas —CRM, ERP, plataforma de marketing—, rara vez se dispone de todos los campos en cada fuente. Un registro de CRM puede incluir el nombre completo y el correo electrónico, pero no el número de teléfono. Un registro de ERP puede incluir el nombre de la empresa y el número de identificación fiscal, pero no el correo electrónico.

El enfoque correcto: utilizar un modelo de puntuación ponderada con múltiples algoritmos que gestione adecuadamente los campos que faltan. Cuando falte un campo, redistribuir su ponderación de forma proporcional entre los campos presentes, en lugar de asignarle un valor predeterminado de cero. Si falta el campo de correo electrónico (ponderación 0,25), se añade 0,083 a cada uno de los tres campos restantes.

El motor de resolución de entidades de Match Data Pro (desarrollado por Senzing) gestiona de forma nativa conjuntos de registros dispersos. Utiliza la resolución de identidades basada en grafos para vincular registros de tres o más sistemas de origen sin necesidad de un campo clave compartido.

Para los equipos que estén creando enlaces entre registros de sistemas inconexos, consulten nuestra guía sobre la correspondencia determinista frente a la probabilística, en particular la sección sobre la puntuación híbrida para conjuntos de datos dispersos.

Aplicación de algoritmos en la práctica: un ejemplo de deduplicación en CRM

Una empresa de SaaS B2B importa 80 000 registros de contactos procedentes de tres fuentes: Salesforce, HubSpot y una base de datos heredada. La calidad de los campos varía considerablemente entre las distintas fuentes.

Asignación de campo:

Resultados obtenidos en un lote de prueba de 5.000 pares con etiquetas conocidas: precisión 0,97; recuperación 0,91. La diferencia del 9 % en la recuperación se atribuyó a los contactos que habían cambiado de dominio de correo electrónico entre los sistemas de origen. Al añadir una segunda pasada fonética en los campos de nombre, se recuperó el 60 % de esos pares que se habían pasado por alto, lo que elevó la recuperación hasta 0,96.

Este es el proceso iterativo y basado en mediciones que distingue la correspondencia de nivel de producción de la deduplicación en una sola pasada. La plataforma de correspondencia y fusión de datos de Match Data Pro respalda este ciclo iterativo con definiciones de correspondencia configurables y una puntuación de resultados integrada.

Reserva una demostración para ver cómo Match Data Pro configura la puntuación mediante múltiples algoritmos para tus tipos de campos específicos.

Preguntas frecuentes

¿Qué algoritmo de coincidencia aproximada es el más adecuado para los nombres propios?

Jaro-Winkler es el algoritmo más eficaz para nombres propios, ya que concede gran importancia a la coincidencia de prefijos: la mayoría de los errores ortográficos en los nombres se producen en la parte central o al final de la cadena, no al principio. Combínalo con una pasada fonética (Double Metaphone) para datos procedentes de entradas verbales o de fuentes multilingües. Juntos cubren tanto la variación tipográfica como la fonética en los campos de nombres.

¿Cuál es la diferencia entre la distancia de Levenshtein y la de Jaro-Winkler?

Levenshtein cuenta el número mínimo de modificaciones a nivel de carácter entre dos cadenas y funciona mejor con códigos cortos, identificadores y campos estructurados. Jaro-Winkler mide la transposición y la coincidencia de prefijos, y está optimizado para nombres de personas. Para un campo como «Jon» frente a «Jonathan», Levenshtein obtiene una puntuación de 0,38; Jaro-Winkler, de 0,82. La elección adecuada depende totalmente del tipo de campo; no hay una métrica que sea universalmente mejor que otra.

¿Cómo puedo establecer el umbral de coincidencia adecuado?

Empieza con un valor de 0,85 para la coincidencia automática y de 0,65 para el umbral de revisión; a continuación, mide la precisión y la recuperación en una muestra etiquetada de al menos 200 pares con coincidencia conocida. Si la precisión es alta pero la recuperación es baja, tu umbral es demasiado alto: rebájalos en incrementos de 0,02. Si observas falsos positivos, sube el umbral. Repite el proceso hasta que ambas métricas superen el 0,90 para tu caso de uso.

¿Puedo utilizar varios algoritmos en el mismo campo?

Sí, y en el caso de los campos de nombre, este suele ser el enfoque adecuado. Aplica tanto el método Jaro-Winkler como el Double Metaphone a un campo de apellido y, a continuación, elige la puntuación más alta de las dos. De este modo se detectan tanto las variaciones tipográficas (Smyth frente a Smith, que cubre el método Jaro-Winkler) como las fonéticas (Nguyen frente a Win, que cubre la codificación fonética). Match Data Pro admite de forma nativa definiciones de campos con múltiples algoritmos.

¿Qué ocurre cuando a los registros de origen les faltan campos?

Los campos que falten deberían provocar una redistribución de la ponderación, no una puntuación de cero. Si el campo de correo electrónico (ponderación 0,30) no aparece en un registro, hay que sumar 0,10 a cada uno de los tres campos ponderados restantes, de modo que la puntuación compuesta siga sumando 1,0. Establecer en cero los campos que faltan reduce artificialmente la puntuación compuesta y provoca falsos resultados de no coincidencia. Match Data Pro gestiona esta redistribución automáticamente como parte de su motor de puntuación.