24 puntos por xguru 2021-08-03 | 5 comentarios | Compartir por WhatsApp

Al usar varios programas en la terminal, a veces uno escribe mal un comando y el programa muestra un error. Pero algunos programas, como Git o npm, a veces recomiendan comandos parecidos al que escribí mal, o incluso corrigen el error tipográfico y continúan automáticamente de forma razonable. Entonces, ¿cómo funciona exactamente esta característica? Veamos el principio detrás de esto implementando una función similar que recomiende comandos parecidos.

  • Definir el problema

→ El problema de encontrar comandos similares puede reformularse como "el problema de medir la similitud entre dos cadenas".

  • Distancia de edición (Edit distance)

→ Distancia de Levenshtein (Levenshtein distance)

  • Resolver el problema

5 comentarios

 
roxie 2021-08-03

No puedo dejar de mencionar este repositorio.

https://github.com/nvbn/thefuck#how-it-works

 
sduck4 2021-08-03

Me reí un buen rato viendo el ejemplo de arriba jaja

No era el único que se equivocaba..

 
eyelove 2021-08-03

Fue una historia interesante. Distancia de Levenshtein... aprendí algo nuevo.

 
nicewook 2021-08-03

Lo leí con mucho interés.

Pero me da curiosidad saber si git realmente está implementado de esta manera.

También parece posible un enfoque que procese esto recopilando estadísticamente la experiencia de los usuarios.

 
sangheestyle 2021-08-03

git usa la distancia de Levenshtein. Si revisas la entrada sobre git en el enlace de abajo, aparece el código fuente de esa parte de git. :)

https://vishnubharathi.codes/blog/levenshtein-distance/

También parecería interesante un enfoque que use estadísticamente la experiencia de los usuarios, pero como a) los comandos de git son cortos y b) su cantidad es limitada, parece que con Levenshtein es suficiente para lograr lo que se quiere.