{{ fragment_cover_map }}
    
    
    
    
    
    

La Distancia de Levenshtein
lee a Cortázar

Generado el {{ date }} a las {{ time }}, N⁰ {{ edition_count}}

Índice

  1. Introducción
  2. Lectura de Cortázar
    1. Fragmento original
    2. Fragmento adaptado
    3. Mapa del bosque
    4. Matriz de nuevas especies intermediarias
    5. Poesía repetitiva
  3. Descripción general de La Distancia de Levenshtein
  4. La Distancia de Levenshtein explicada de manera técnica
  5. Código
  6. Créditos

1. Introducción

La Distancia de Levenshtein lee a Cortázar es la primera versión del primer libro en la 'Editorial Algoliteraria: crear alianzas con los árboles'.

El autor de este libro es el algoritmo La Distancia de Levenhstein, el tema es el eucalipto en "Fama y eucalipto", un fragmento de Historias de Cronopios y de Famas de Julio Cortázar.

El libro es por definición infinito y cada copia es única.

Anaïs Berck es un seudónimo y representa una colaboración entre humanos, algoritmos y árboles. Anaïs Berck explora las especificidades de la inteligencia humana en compañía de las inteligencias artificiales y vegetales. En junio 2021, durante una residencia en Medialab Prado en Madrid, Anaïs Berck desarrollará un prototipo de la Editorial Algoliteraria, en la que los algoritmos son los autores de libros inusuales. La residencia fue concedida por el programa "Residencia Cultura Digital" iniciado por el Gobierno Flamenco.

En esta obra Anaïs Berck está representadx por:

2. Lectura de Cortázar

2.1. Fragmento original

Un fama anda por el bosque y aunque no necesita leña mira codiciosamente los árboles. Los árboles tienen un miedo terrible porque conocen las costumbres de los famas y temen lo peor. En medio de todos está un eucalipto hermoso, y el fama al verlo da un grito de alegría y baila tregua y baila catala en torno del perturbado eucalipto, diciendo así:

– Hojas antisépticas, invierno con salud, gran higiene.

Saca un hacha y golpea al eucalipto en el estómago, sin importársele nada. El eucalipto gime, herido de muerte, y los otros árboles oyen que dice entre suspiros:

– Pensar que este imbécil no tenía más que comprarse unas pastillas Valda.

2.2. Fragmento adaptado

{{ new_fragment }}

2.3. Mapa del bosque

Las distancias entre el árbol principal que has elegido para tu fragmento y las zonas de otras especies de árboles en el bosque, según La Distancia de Levenshtein:




{{ forest_map }}

2.4. Matriz de nuevas especies intermediarias

La Distancia de Levenshtein crea una matriz con las dos especies. En esta matriz calcula para cada celda la distancia entre los elementos distintos de las dos palabras.

En realidad la matriz se llena de números que representan las operaciones necesarias para cambiar un elemento al otro. Las posibles operaciones son insertar, borrar o sustituir una letra. En vez de los números, esta matriz se llena con las distintas especies intermediarias que el algoritmo crea insertando, borrando o sustituyendo letras.



{{ table_of_intermediary_species }}

2.5. Poesía repetitiva

{{ repetitive_poetry }}

3. Descripción general de La Distancia de Levenshtein

La Distancia de Levenshtein es un algoritmo que mide la diferencia entre dos palabras o dos grupos de letras. También se denomina la 'distancia de edición'. La Distancia de Levenshtein entre dos palabras es el número mínimo de acciones necesarias para cambiar una palabra por otra. Las diferentes acciones posibles son la inserción, la supresión o la substitución de una sola letra. Por ejemplo, la Distancia de Levenshtein entre 'más' y 'mes' es 1, ya que se sustituye 'á' por 'e'.

El algoritmo recibió el nombre de su creador, Vladimir Levenshtein, un matemático y científico ruso de origen judío cuya principal área de investigación era la teoría de la información y los códigos de corrección de errores. Trabajó en el Instituto Kéldysh de Matemática Aplicada en Moscú. Falleció en el 2017 a la edad de 82 años. Lanzó el algoritmo en 1965 'para considerar el problema de construir códigos óptimos capaces de corregir supresiones, inserciones e inversiones'.

La Distancia de Levenshtein opera en softwares como los correctores ortográficos y por consecuencia en programas de traducción asistida por computadora. También se puede encontrar la Distancia de Levenshtein en buscadores de información donde detecta las palabras más similares a la palabra entrada erróneamente.

Su actividad se extiende a campos menos evidentes como la detección de plagiarismo, el análisis de ADN, el reconocimiento automático de voz, el reconocimiento óptico de caracteres en el análisis de textos escaneados (OCR), el reconocimiento de la escritura a mano, la detección de hoax emails o la asistencia de venta y compras en el mercado de acciones.

A veces la Distancia de Levenshtein llega a descubrimientos sorprendentes. Así en 1995, Kessler aplicó el algoritmo a la comparación de dialectos irlandeses. Demostró que era un método exitoso para medir las distancias fonéticas entre los dialectos. A partir de las distancias lingüísticas entre variedades dialectales, se pueden encontrar áreas dialectales. Más innovadora era la posibilidad de dibujar mapas dialectales que reflejan el hecho de que las áreas dialectales deben considerarse como continuas y no como áreas separadas por fronteras nítidas.

Fuentes:

4. La Distancia de Levenshtein explicada de manera técnica

Los seres humanos pueden reescribir una palabra y contar fácilmente el nombre de cambios que son necesarios para transformar una palabra en otra. Le invitamos a escribir la palabra máquina en una hoja, seguida por la palabra humanx en la línea siguiente. Sabiendo que sólo se puede insertar, borrar o sustituir una letra, ¿cuántas operaciones necesitaría hacer para reescribir la palabra máquina en humanx?

Para que tenga una idea del modo de acción del algoritmo Distancia de Levenshtein, le describimos aquí los diferentes pasos que realiza el algoritmo para transformar la palabra máquina en humanx.

Para la palabra máquina, analiza primero los posibles elementos. Son m, má, máq, máqu, máqui, máquin y máquina para un total de siete elementos. Para la palabra humanx, los elementos son h, hu, hum, huma, human y humanx para un total de seis elementos. Esto crea una matriz con 7 filas y 6 columnas. En esta matriz de distancia calculará para cada celda la distancia entre los elementos de las dos palabras.

Comienza con el primer elemento de la palabra máquina que es m, lo compara con los seis elementos de la palabra humanx. El primero será h. ¿Cuál es la distancia de Levenshtein entre m y h? Lo que tiene que hacer es sustituir el carácter m por h, entonces la distancia es 1.

Pasa al siguiente elemento de la palabra humanx que es hu. ¿Cuál es la distancia de Levenshtein entre m y hu? Como el elemento contiene un solo carácter y hu contiene más de un carácter, puede estar 100% segurx de que tiene que insertar un nuevo carácter. Para transformar m en hu, primero el carácter m es reemplazado por h, y luego añade u. Para transformar m en hu, la distancia es 2.

Ahora pasa al tercer elemento. ¿Cuál es la distancia entre m y hum? Hace lo mismo que arriba, pero tiene que añadir otro carácter, m, también. La distancia final entonces es 3.

Continúa hasta que haya calculado la distancia entre el primer elemento de la palabra máquina, o m, y los 6 elementos de la segunda palabra humanx. Las distancias son simplemente 1, 2, 3, 4 y 5; simplemente aumentan de 1.

Después de calcular las distancias entre el primer prefijo de la primera palabra y todos los prefijos de la segunda palabra, el proceso continúa calculando las distancias entre los prefijos restantes de la primera palabra y los prefijos de la segunda palabra.

Sigue el proceso con má. Lo compara con los seis elementos de la palabra humanx. El primero será h. ¿Cuál es la distancia de Levenshtein entre má y h? Lo que tiene que hacer es sustituir el carácter m por h y borrar el carácter á. Entonces la distancia es 2. Pasa al siguiente elemento de la palabra humanx que es hu. ¿Cuál es la distancia de Levenshtein entre má y hu? Sustituye el carácter m por h y la letra á por u. La distancia es 2.

Y así rellena la matriz.

En términos de código se podría hablar de un efecto optimizador en la matriz.

Se calcula el valor basado en las tres cifras más cercanas de la celda en la matriz que corresponde a los caracteres que se comparan: horizontal, vertical, diagonal.

Si las letras son iguales, se elige el valor mínimo de las tres.

Si las letras son distintas, se elige el valor mínimo de las tres y se añade 1.

El último valor de la serie de cuentas es el que representa la distancia mínima entre las 2 palabras.

En la matriz es el valor situado en la esquina inferior derecha.

Finalmente es asunto de trazar el camino más breve en las transformaciones de una palabra a la otra:

Fuente: Blog Paperspace

5. Código

{% for path, source in sources %}

{{ path }}

{{ source }}
{% endfor %}

6. Créditos

Este libro es una creación de Anaïs Berck para ÁGORA / CEMENTO / CÓDIGO, un proyecto de la Asociación Cultural LEKUTAN en el Centro Internacional de Cultura Contemporánea Tabakalera, Donostia / San Sebastián.

La copia de este libro es única y el tiraje es por definición infinito.

Esta copia es el número {{ edition_count }} de copias descargadas.

Condiciones colectivas de (re)uso (CC4r), 2021

Copyleft con una diferencia: Se le invita a copiar, distribuir y modificar esta obra bajo los términos de la CC4r: https://gitlab.constantvzw.org/unbound/cc4r