Calculadora de Similitud de Cadenas

Calcula la distancia de edición de Levenshtein y el porcentaje de similitud entre dos cadenas. Encuentra las ediciones mínimas (inserciones, eliminaciones, sustituciones) necesarias para transformar una cadena en otra.

6 chars

7 chars

Similarity Result

Edit Distance

3

operations

Similarity

57.14%

Partly similar

Character Diff

insertdeletesubstituteunchanged

sitting
1 insertions2 substitutions

Cómo usar Calculadora de Similitud de Cadenas

  1. 1Ingresa dos cadenas para comparar en los campos de entrada.
  2. 2Ve la distancia de edición de Levenshtein y el porcentaje de similitud.
  3. 3Ve la diferencia a nivel de carácter y la lista de operaciones (insertar, eliminar, sustituir).
ZenovayAnalytics

Analytics pensado para fundadores.

  • Seguimiento de visitantes en tiempo real
  • Privacidad primero, sin aviso de cookies
  • Configurado en dos minutos
Descubre Zenovay

Preguntas frecuentes

¿Qué es la distancia de Levenshtein?
La distancia de Levenshtein (distancia de edición) es el número mínimo de ediciones de un solo carácter necesarias para transformar una cadena en otra. Las tres operaciones permitidas son: inserción (agregar un carácter), eliminación (quitar un carácter) y sustitución (reemplazar un carácter por otro). Ejemplo: «kitten» → «sitting» requiere 3 operaciones: k→s, e→i, +g. Recibe su nombre de Vladimir Levenshtein, quien describió este algoritmo en 1965. Aplicaciones: corrección ortográfica, alineación de secuencias de ADN, procesamiento de lenguaje natural, coincidencia difusa de cadenas.
¿Cómo se calcula el porcentaje de similitud?
Similitud % = (1 − distanciaEdición / max(largo1, largo2)) × 100. Esto normaliza la distancia en relación con la cadena más larga. Ejemplo: distancia = 2, longitud máxima = 8 → similitud = (1 − 2/8) × 100 = 75%. Una distancia de 0 significa cadenas idénticas (100% similares). Una distancia igual a la longitud máxima significa cadenas completamente diferentes (0% similares). Otras métricas de similitud incluyen Jaro-Winkler (pondera más la coincidencia de caracteres iniciales) y la similitud coseno (para comparación basada en tokens).
¿Qué es la distancia de Damerau-Levenshtein?
Damerau-Levenshtein extiende Levenshtein agregando una cuarta operación: transposición (intercambiar dos caracteres adyacentes). Ejemplo: «ab» → «ba» tiene distancia Levenshtein 2 (eliminar + insertar), pero distancia Damerau-Levenshtein 1 (una transposición). Esto es importante para la corrección ortográfica, ya que muchos errores tipográficos son transposiciones («teh» → «the»). Existen dos variantes: restringida (solo transposiciones adyacentes) y no restringida (cualquier transposición). Esta herramienta usa Levenshtein estándar (sin transposiciones).
¿Cuáles son las aplicaciones comunes de la distancia de edición?
Correctores ortográficos: sugieren palabras con baja distancia de edición respecto a la palabra mal escrita. Secuenciación de ADN: alinea secuencias de nucleótidos para encontrar mutaciones e inserciones. Control de versiones: git diff usa algoritmos de distancia de edición para mostrar cambios a nivel de línea. Procesamiento de lenguaje natural: desambiguación de entidades nombradas, resolución de correferencia. Detección de fraude: detecta variaciones de nombres (typosquatting, fraude de identidad). Vinculación de registros: hace coincidir registros entre bases de datos cuando los nombres o direcciones varían ligeramente. Corrección de OCR: corrige errores de reconocimiento óptico de caracteres.
¿Cómo funciona el algoritmo Wagner-Fischer?
El algoritmo Wagner-Fischer calcula la distancia de Levenshtein usando programación dinámica con tiempo O(m×n) y espacio O(m×n), donde m y n son las longitudes de las cadenas. Construye una matriz donde la celda [i][j] = distancia de edición entre los primeros i caracteres de la cadena 1 y los primeros j caracteres de la cadena 2. Casos base: fila 0 = 0..n (eliminar todos los caracteres de s1), columna 0 = 0..m (insertar todos los caracteres de s2). Recurrencia: si s1[i] == s2[j], la celda = diagonal anterior; de lo contrario, celda = 1 + min(izquierda, arriba, diagonal). El espacio puede optimizarse a O(min(m,n)) usando dos filas.