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
No puedo dejar de mencionar este repositorio.
https://github.com/nvbn/thefuck#how-it-works
Me reí un buen rato viendo el ejemplo de arriba jaja
No era el único que se equivocaba..
Fue una historia interesante. Distancia de Levenshtein... aprendí algo nuevo.
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.
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.