Ao usar vários programas no terminal, às vezes acabamos digitando um comando errado e o programa exibe um erro. Mas alguns programas, como Git ou npm, às vezes recomendam comandos parecidos com o que digitamos errado ou até corrigem o erro de digitação e seguem em frente automaticamente. Afinal, como esse tipo de recurso funciona? Vamos entender o princípio por trás disso implementando de forma semelhante um recurso que recomenda comandos parecidos.
- Definindo o problema
→ O problema de encontrar comandos parecidos pode ser convertido em “um problema de verificar a similaridade entre duas strings”.
- Distância de edição (Edit distance)
→ Distância de Levenshtein (Levenshtein distance)
- Resolvendo o problema
5 comentários
Não tem como deixar de mencionar este repositório.
https://github.com/nvbn/thefuck#how-it-works
Ri bastante vendo o exemplo lá de cima rsrs
Não era só eu que errava..
Foi uma história interessante. Distância de Levenshtein... aprendi algo novo.
Gostei muito da leitura.
Mas fiquei curioso se o git realmente é implementado dessa forma.
Parece que também seria possível usar uma abordagem que coleta estatisticamente a experiência dos usuários para processar isso.
O
gitusa a distância de Levenshtein. No item sobre git no link abaixo, aparece o trecho correspondente do código-fonte do git. :)https://vishnubharathi.codes/blog/levenshtein-distance/
Também parece interessante uma abordagem que use estatisticamente a experiência dos usuários, mas como a) os comandos do git são curtos e b) a quantidade é limitada, parece que com Levenshtein já dá para fazer o que se deseja.