Saltar al contenido
uencoder

Levenshtein Distance

La distancia de Levenshtein es el número mínimo de inserciones, eliminaciones y sustituciones de un solo carácter necesarias para hacer idénticas dos cadenas.

Propósito

Mide la diferencia de edición entre cadenas; se usa para coincidencia difusa y corrección ortográfica.

Mecanismo

Programación dinámica: d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1]+cost), donde cost es 0 si los caracteres coinciden y 1 en caso contrario. Tiempo y espacio son O(m×n); el espacio se puede optimizar a O(min(m,n)).

Casos de uso

  • Corrección ortográfica
  • Alineación de secuencias de ADN
  • Búsqueda difusa y deduplicación
  • Procesamiento del lenguaje natural

Ejemplos

  • entrada
    kitten → sitting
    Output
    3

    Substitute k→s, e→i, and insert g

Errores comunes

Full O(mn) computation is too slow for long strings
Use a BK-tree or early termination by threshold

Términos relacionados

Herramientas relacionadas

References