24 pontos por xguru 2021-08-03 | 5 comentários | Compartilhar no WhatsApp

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

 
roxie 2021-08-03

Não tem como deixar de mencionar este repositório.

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

 
sduck4 2021-08-03

Ri bastante vendo o exemplo lá de cima rsrs

Não era só eu que errava..

 
eyelove 2021-08-03

Foi uma história interessante. Distância de Levenshtein... aprendi algo novo.

 
nicewook 2021-08-03

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.

 
sangheestyle 2021-08-03

O git usa 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.