Calculadora de distancia de Levenshtein | Distancia de edición con desglose de operaciones
Una calculadora que indica cuánto difieren dos cadenas mediante el número mínimo de ediciones (distancia de Levenshtein) y descompone esa cifra en inserciones, eliminaciones y sustituciones, junto con un porcentaje de similitud y un valor normalizado de 0 a 1.
💡 Sobre esta herramienta
¿Cuántas ediciones convierten "domingo" en "dominio"? Cuando programas un corrector ortográfico, una búsqueda difusa o un autocorrector, ese recuento mínimo de ediciones es la base de tu umbral de coincidencia. La mayoría de las calculadoras se detienen en la distancia simple, así que nunca ves si la diferencia se debe sobre todo a sustituciones o a inserciones y eliminaciones, que es justo lo que necesitas al ajustar el sistema.
La distancia de Levenshtein cuenta cada inserción, eliminación y sustitución como una edición y devuelve el menor número de ediciones que transforma una cadena en otra. Esta herramienta calcula la distancia con programación dinámica y luego recorre el camino óptimo hacia atrás para separar los recuentos de cada operación. Puedes pegar cadenas reales de tus propios datos y observar cómo cambia el desglose, de modo que elijas un umbral sensato antes de llevarlo al código. Compara hasta 2000 caracteres por lado.
🧐 Preguntas frecuentes
¿Cómo se calcula el porcentaje de similitud?
Es (1 - distancia / max(longA, longB)) * 100. Las cadenas idénticas obtienen 100% y la puntuación baja hacia 0% a medida que la distancia se acerca a la longitud de la cadena más larga.
¿Para qué sirve la distancia normalizada? Es la distancia de edición dividida por la longitud de la cadena más larga, lo que da un valor de 0 a 1. Úsala para comparar de forma justa pares de longitudes distintas: una distancia de 3 no significa lo mismo en un par de 7 caracteres que en uno de 70.
¿Cuándo conviene Levenshtein frente a Jaro-Winkler? Levenshtein pondera por igual cada edición de carácter, lo que encaja con direcciones y nombres largos de empresa. Jaro-Winkler premia un prefijo coincidente y se adapta mejor a nombres de persona cortos, así que elige según la naturaleza de tus datos.
¿En qué se diferencia de Damerau-Levenshtein? El Levenshtein clásico cuenta un intercambio de dos caracteres adyacentes (una transposición) como dos ediciones. Si quieres tratar "conversion" frente a "convresion" como un solo error, usa la variante Damerau-Levenshtein, que admite transposiciones.
¿Cómo se tratan las mayúsculas y los emojis? Desactivar la opción de mayúsculas iguala A y a. La comparación trabaja por unidades de código, así que un emoji de par sustituto se cuenta internamente como dos unidades, lo que puede inflar la distancia en textos con muchos emojis.
¿Qué pasa más allá de 2000 caracteres? La entrada se recorta a 2000 caracteres por cadena. El paso de programación dinámica crece con el producto de ambas longitudes, así que el límite mantiene el cálculo viable dentro del navegador.
📚 Datos curiosos
El matemático soviético Vladímir Levenshtein definió esta distancia en 1965 en un artículo sobre códigos correctores de errores, mucho antes de que se volviera básica en correctores ortográficos, alineamiento de secuencias de ADN, corrección de OCR y los algoritmos diff del control de versiones. Una propiedad elegante: la distancia nunca es menor que la diferencia de longitudes ni mayor que la longitud de la cadena más larga, por lo que el valor normalizado se mantiene limpio entre 0 y 1. Al depurar un comparador difuso, leer el desglose de operaciones suele decir más que la cifra cruda: muchas sustituciones apuntan a caracteres cambiados, mientras que inserciones o eliminaciones desequilibradas indican que una cadena simplemente tiene contenido de más.