Terminalde çeşitli programları kullanırken bazen komutu yanlış yazdığımızda programın hata gösterdiği olur. Ancak Git veya npm gibi bazı programlar, yanlış yazdığım komuta benzeyen komutları önerebilir ya da yazım hatasını doğrudan düzelterek uygun şekilde devam edebilir. Peki bu özellik tam olarak nasıl çalışır? Benzer komutları öneren bir özelliği benzer şekilde uygulayarak bunun arkasındaki mantığa bakıyoruz.
- Problemi tanımlamak
→ Benzer komut bulma problemi, "iki stringin benzerliğini ölçme problemi"ne dönüştürülebilir.
- Düzenleme mesafesi (Edit distance)
→ Levenshtein mesafesi (Levenshtein distance)
- Problemi çözmek
5 yorum
Bu repodan bahsetmeden geçmek olmaz.
https://github.com/nvbn/thefuck#how-it-works
En üstteki örneği görünce uzun süre güldüm haha
Sadece ben yanlış yapmıyormuşum..
İlginç bir hikayeydi. Levenshtein mesafesi... yeni bir şey öğrenmiş oldum.
Keyifle okudum.
Ama git’in gerçekten bu şekilde uygulanıp uygulanmadığını merak ediyorum.
İstatistiksel olarak kullanıcı deneyimini toplayıp işleyen bir yöntem de mümkün gibi görünüyor.
git, Levenshtein mesafesini kullanır. Aşağıdaki bağlantıdaki git bölümünde, git’in ilgili kısım kaynak kodu da yer alıyor. :)
https://vishnubharathi.codes/blog/levenshtein-distance/
İstatistiksel olarak kullanıcının deneyiminden yararlanan bir yöntem de ilginç olabilir; ancak a) git komutlarının uzunluğu kısa ve b) sayıları sınırlı olduğu için, Levenshtein ile isteneni gerçekleştirmek için yeterli görünüyor.