Sei sulla pagina 1di 6

ALGORITMO DE

LEVENSHTEIN
W H E N DY L O Y D I D A R C E P O Q U I S
ALGORITMO DE LEVENSHTEIN
1. Inicio
2. Elegir la palabra que se va a cambiar e insertarla.
3. Insertar la palabra por la que se va a cambiar.
4. Saber cual es la menor cantidad de transacciones para cambiar una palabra.
5. Identificar el tipo de transacción:
•Insertar una letra
•Quitar una letra
•Cambiar una letra por otra
5. Fin
IMPLEMENTACIÓN DE LEVENSHTEIN
1.-Pide la primer palabra y la ingresa a una variable llamada palabra

2.-Pide la segunda palabra y la ingresa a una variable llamada palabra2

3.-Calcula la longitud de cada una de las palabras con la función len() y las agrega ala variable
correspondiente long y long2
por ejemplo len(palabra) la longitud de la palabra perro es de 5
4.-crea la matriz donde se realizara las operaciones necesarias para obtener la distancia
matriz= [[0 for x in xrange(long+1)] for y in xrange(long2+1)]
esto crea eje “x” y asigna el valor de 0 con un rango de long + 1 y crea el eje “y” y asigna
el valor de 0 con un rango de long2+1
IMPLEMENTACIÓN DE LEVENSHTEIN

5.- se enumeraran las letras de cada palabra, para eso se


utilizo lo siguiente i=1
while i<=long:
matriz[0][i]=i
i=i+1 i=1
while i<=long2:
matriz[i][0]=i
i=i+1
IMPLEMENTACIÓN DE LEVENSHTEIN
6.- Comienza hacer las operaciones necesarias para obtener la distancia, para recorrer toda la tabla se
utilizaron 2 ciclos anidados como que fue el while, al entrar al ciclo se compara letra por letra de las 2
palabras, y se van comparando de 1 en 1, esto lo hace con el siguiente if(palabra[j-1]==palabra2[i-1]):
(se pone “-1” ya que como lo mencione anteriormente la palabra empieza desde la posición 0 ) en el
cual si las letras son iguales, busca el número menor en la matriz, una posición menos en “x”, una
posición menos en “y”, y una posición menos en “x” y “y”,
Esto se realiza con una función que es min(), que esta te regresa el valor menor.
matriz[i][j]=min(matriz[i-1][j-1],matriz[i][j-1],matriz[i-1][j])
si las letras no son iguales hace lo mismo que el paso anterior , nada mas que al número menor le
suma un 1
matriz[i][j]=min(matriz[i-1][j-1],matriz[i][j-1],matriz[i-1][j]) + 1
7.- Cuando termina de recorrer toda la tabla y de comparar todas las letras el resultado que
buscamos se guardara en la última posición de “x” y “y”

print "distancia: " +str(matriz[long2][long])


APLICACIONES DE LA DISTANCIA DE
EDICIÓN

Sistemas para la
revisión de faltas Sistemas de
ortográficas reconocimiento
automatizada en de voz
textos.

Sistemas para la
Sistemas para el
detección de
análisis de ADN.
plagios.

Potrebbero piacerti anche