SlideShare una empresa de Scribd logo
1 de 12
INTRODUCCIÓN
APLICACIONES
PSEUDOCODIGO
IMPLEMENTACIÓN
ESPECIFICACIONES
ALGORITMO
M E N U
EJEMPLO
La distancia de Leveinshtein o también conocida como distancia de
edición , es un algoritmo tal que dadas dos cadenas, devuelve un entero
que da una idea de la distancia (o parecido) entre ellas. La definición de
distancia es el mínimo número de operaciones que hay que realizar para
transformar una cadena en la otra.
Debe su nombre al matemático ruso Vladimir levenshtein .
Este entero se calcula contando las transformaciones que es necesario
hacer sobre una de estas cadenas para obtener la otra.
Estas posibles transformaciones son:
Borrado de un carácter
Inserción de un carácter
Substitución de un carácter por otro
Alfabeto binario= {0,1]
Asignacion de pesos
 Borrado (Pb=1)
por si mismo (Psm=0)
 Sustitucion
por su contrario (Psc=1)
Algunas aplicaciones en la que se puede usar la distancia de
edición son:
Sistemas para la revisión de faltas ortográficas
automatizada en textos.
Sistemas de reconocimiento de voz
Sistemas para el análisis de ADN.
Sistemas para la detección de plagios.
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
Escribir “ingrese palabra 1”
Leer palabra
Escribir “ingrese palabra 2”
Leer palabra 2
Longpalabra.longitud()
Long2plabra2.longitud2()
Palabrapalabra.mayusculas()
Palabrapalabra2.mayusculas()
Matriz[long+1][long2+1]
i1
Mientras que i<=long
matriz[0][i]i
ii+1
j1
Mientras que i<=long
i1
mientras i<=long2
si (palabra[j-1]==palabra2[i-1])
matriz[i][j]=menor(matriz[i-1][j-1], matriz[i][j-
1], matriz[i-1][j])
si no
matriz[i][j]=menor(matriz[i][j], matriz[i][j-1],
matriz[i-1][j])+1
ii+1
jj+1
Escribir “distancia”+carácter(matriz[long2][long])
1.-Pide la primer palabra y la ingresa a una variable llamada palabra
0 1 32 4
2.-Pide la segunda palabra y la ingresa a una variable llamada palabra2
0 1 32
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
p e rr o
g a ot
p e rr o
g
a
o
t
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
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
0 1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
p e rr o
g
a
o
t
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.
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” .
0 1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
p e rr o
g
a
o
t
print "distancia: " +str(matriz[long2][long])
D
I
F
I
F A C I L
0 1 2 3 4 5
1
2
3
4
C
I
L
5
6
7
EJEMPLO
FACILDIFICIL
1 2 3 4 5
2 2 3 3 4
2 3 3 4 4
3 3 4 3 4
4 4 3 4 4
5 5 4 3 4
6 6 5 4 3 RESPUESTA

Más contenido relacionado

La actualidad más candente

Actividad 1 iv sistemas de ecuaciones y gauss-jordan
Actividad 1 iv sistemas de ecuaciones y gauss-jordanActividad 1 iv sistemas de ecuaciones y gauss-jordan
Actividad 1 iv sistemas de ecuaciones y gauss-jordanLuisa Mee 666
 
Metodos de sustitución e igualación en sistemas de ecuaiones lineales
Metodos de sustitución e igualación en sistemas de ecuaiones linealesMetodos de sustitución e igualación en sistemas de ecuaiones lineales
Metodos de sustitución e igualación en sistemas de ecuaiones linealesFran Zambrano
 
Ordenamiento Por MéTodo De InsercióN Binaria
Ordenamiento  Por MéTodo De InsercióN BinariaOrdenamiento  Por MéTodo De InsercióN Binaria
Ordenamiento Por MéTodo De InsercióN BinariaAngie Suarez
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamientoIINTERACTIVE
 
Métodos directos para solución de sistemas ecuaciones lineales (2)
Métodos directos para solución de sistemas ecuaciones lineales (2)Métodos directos para solución de sistemas ecuaciones lineales (2)
Métodos directos para solución de sistemas ecuaciones lineales (2)Cesar Mendoza
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercionCarlos Carriel
 

La actualidad más candente (13)

Actividad 1 iv sistemas de ecuaciones y gauss-jordan
Actividad 1 iv sistemas de ecuaciones y gauss-jordanActividad 1 iv sistemas de ecuaciones y gauss-jordan
Actividad 1 iv sistemas de ecuaciones y gauss-jordan
 
Metodos de sustitución e igualación en sistemas de ecuaiones lineales
Metodos de sustitución e igualación en sistemas de ecuaiones linealesMetodos de sustitución e igualación en sistemas de ecuaiones lineales
Metodos de sustitución e igualación en sistemas de ecuaiones lineales
 
Ordenamiento Por MéTodo De InsercióN Binaria
Ordenamiento  Por MéTodo De InsercióN BinariaOrdenamiento  Por MéTodo De InsercióN Binaria
Ordenamiento Por MéTodo De InsercióN Binaria
 
Arreglos
ArreglosArreglos
Arreglos
 
Atiderivadas
AtiderivadasAtiderivadas
Atiderivadas
 
Informe ordenamiento
Informe ordenamientoInforme ordenamiento
Informe ordenamiento
 
Métodos directos para solución de sistemas ecuaciones lineales (2)
Métodos directos para solución de sistemas ecuaciones lineales (2)Métodos directos para solución de sistemas ecuaciones lineales (2)
Métodos directos para solución de sistemas ecuaciones lineales (2)
 
Articulo
ArticuloArticulo
Articulo
 
Autómatas
AutómatasAutómatas
Autómatas
 
Ordenamiento Simple
Ordenamiento SimpleOrdenamiento Simple
Ordenamiento Simple
 
Tema 3 (parte i)
Tema 3 (parte i)Tema 3 (parte i)
Tema 3 (parte i)
 
Límites
LímitesLímites
Límites
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 

Destacado (8)

Da vinci
Da vinciDa vinci
Da vinci
 
Wireless kit for touch board plus
Wireless kit for touch board plusWireless kit for touch board plus
Wireless kit for touch board plus
 
Noordwolde zingt met .. Hiel Gewoan
Noordwolde zingt met .. Hiel GewoanNoordwolde zingt met .. Hiel Gewoan
Noordwolde zingt met .. Hiel Gewoan
 
Plan de etica desde la mesa
Plan de etica desde la mesaPlan de etica desde la mesa
Plan de etica desde la mesa
 
Exploradando las redes
Exploradando las redesExploradando las redes
Exploradando las redes
 
Spontaan gestuurde foto's boek
Spontaan gestuurde foto's boekSpontaan gestuurde foto's boek
Spontaan gestuurde foto's boek
 
Autonome voertuigen
Autonome voertuigenAutonome voertuigen
Autonome voertuigen
 
Jezus komt!!
Jezus komt!!Jezus komt!!
Jezus komt!!
 

Similar a Algoritmo de Levenshtein

Distancia de edicion
Distancia de edicionDistancia de edicion
Distancia de edicionJorge Molano
 
Distancia de edición
Distancia de ediciónDistancia de edición
Distancia de edicióncarmensp
 
Solución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesSolución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesRebeca Oropeza Valdez
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmoswrtc
 
Transformaciones lineales
Transformaciones linealesTransformaciones lineales
Transformaciones linealesmbgcmadelein
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmoswrtc
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmos7edu
 
Sistemas de ecuaciones lineales y matrices
Sistemas de ecuaciones lineales y matricesSistemas de ecuaciones lineales y matrices
Sistemas de ecuaciones lineales y matricesCrissLobo
 
Trasnformación lineal
Trasnformación linealTrasnformación lineal
Trasnformación linealingenierops
 
Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Spimy
 

Similar a Algoritmo de Levenshtein (20)

Distancia de edicion
Distancia de edicionDistancia de edicion
Distancia de edicion
 
Distancia de edición
Distancia de ediciónDistancia de edición
Distancia de edición
 
Ecuaciones def sistema
Ecuaciones def sistemaEcuaciones def sistema
Ecuaciones def sistema
 
Solución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones linealesSolución de sistemas de ecuaciones lineales
Solución de sistemas de ecuaciones lineales
 
GUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdfGUIA DE FUNCIONES.pdf
GUIA DE FUNCIONES.pdf
 
Determinantes tarea
Determinantes tareaDeterminantes tarea
Determinantes tarea
 
Unidad_III_Interpolacion.pdf
Unidad_III_Interpolacion.pdfUnidad_III_Interpolacion.pdf
Unidad_III_Interpolacion.pdf
 
Notas sobre derivadas
Notas sobre derivadasNotas sobre derivadas
Notas sobre derivadas
 
Lina 2
Lina 2Lina 2
Lina 2
 
Lina 2
Lina 2Lina 2
Lina 2
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmos
 
Python
PythonPython
Python
 
Informe
InformeInforme
Informe
 
Transformaciones lineales
Transformaciones linealesTransformaciones lineales
Transformaciones lineales
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmos
 
Diapositivas algoritmos
Diapositivas algoritmosDiapositivas algoritmos
Diapositivas algoritmos
 
Sistemas de ecuaciones lineales y matrices
Sistemas de ecuaciones lineales y matricesSistemas de ecuaciones lineales y matrices
Sistemas de ecuaciones lineales y matrices
 
Trasnformación lineal
Trasnformación linealTrasnformación lineal
Trasnformación lineal
 
Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)Mpinning Gy Alg9(Conteo)
Mpinning Gy Alg9(Conteo)
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 

Más de Blanca Rodríguez (20)

Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Fase4
Fase4Fase4
Fase4
 
Adaptativos
AdaptativosAdaptativos
Adaptativos
 
Interfaz Gráfica
Interfaz GráficaInterfaz Gráfica
Interfaz Gráfica
 
Prefinal
PrefinalPrefinal
Prefinal
 
Proyecto
ProyectoProyecto
Proyecto
 
Catalan
CatalanCatalan
Catalan
 
Catalan
CatalanCatalan
Catalan
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
Prolog
PrologProlog
Prolog
 
Palíndromo.ppt
 Palíndromo.ppt  Palíndromo.ppt
Palíndromo.ppt
 
Palíndromo.ppt
 Palíndromo.ppt  Palíndromo.ppt
Palíndromo.ppt
 
Logico1
Logico1Logico1
Logico1
 
Logico1
Logico1Logico1
Logico1
 
Caballos
CaballosCaballos
Caballos
 
Caballos
CaballosCaballos
Caballos
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Levenshtein (2)
Levenshtein (2)Levenshtein (2)
Levenshtein (2)
 
Levenshtein (2)
Levenshtein (2)Levenshtein (2)
Levenshtein (2)
 
LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓNLENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓN
 

Algoritmo de Levenshtein

  • 2. La distancia de Leveinshtein o también conocida como distancia de edición , es un algoritmo tal que dadas dos cadenas, devuelve un entero que da una idea de la distancia (o parecido) entre ellas. La definición de distancia es el mínimo número de operaciones que hay que realizar para transformar una cadena en la otra. Debe su nombre al matemático ruso Vladimir levenshtein . Este entero se calcula contando las transformaciones que es necesario hacer sobre una de estas cadenas para obtener la otra. Estas posibles transformaciones son: Borrado de un carácter Inserción de un carácter Substitución de un carácter por otro
  • 3. Alfabeto binario= {0,1] Asignacion de pesos  Borrado (Pb=1) por si mismo (Psm=0)  Sustitucion por su contrario (Psc=1)
  • 4. Algunas aplicaciones en la que se puede usar la distancia de edición son: Sistemas para la revisión de faltas ortográficas automatizada en textos. Sistemas de reconocimiento de voz Sistemas para el análisis de ADN. Sistemas para la detección de plagios.
  • 5. 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
  • 6. Escribir “ingrese palabra 1” Leer palabra Escribir “ingrese palabra 2” Leer palabra 2 Longpalabra.longitud() Long2plabra2.longitud2() Palabrapalabra.mayusculas() Palabrapalabra2.mayusculas() Matriz[long+1][long2+1] i1 Mientras que i<=long matriz[0][i]i ii+1
  • 7. j1 Mientras que i<=long i1 mientras i<=long2 si (palabra[j-1]==palabra2[i-1]) matriz[i][j]=menor(matriz[i-1][j-1], matriz[i][j- 1], matriz[i-1][j]) si no matriz[i][j]=menor(matriz[i][j], matriz[i][j-1], matriz[i-1][j])+1 ii+1 jj+1 Escribir “distancia”+carácter(matriz[long2][long])
  • 8. 1.-Pide la primer palabra y la ingresa a una variable llamada palabra 0 1 32 4 2.-Pide la segunda palabra y la ingresa a una variable llamada palabra2 0 1 32 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 p e rr o g a ot
  • 9. p e rr o g a o t 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 0 1 2 3 4 5 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 p e rr o g a o t
  • 10. 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.
  • 11. 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” . 0 1 2 3 4 5 1 0 0 0 0 0 2 0 0 0 0 0 3 0 0 0 0 0 4 0 0 0 0 0 p e rr o g a o t print "distancia: " +str(matriz[long2][long])
  • 12. D I F I F A C I L 0 1 2 3 4 5 1 2 3 4 C I L 5 6 7 EJEMPLO FACILDIFICIL 1 2 3 4 5 2 2 3 3 4 2 3 3 4 4 3 3 4 3 4 4 4 3 4 4 5 5 4 3 4 6 6 5 4 3 RESPUESTA