24 Punkte von xguru 2021-08-03 | 5 Kommentare | Auf WhatsApp teilen

Wenn man im Terminal verschiedene Programme verwendet, kommt es oft vor, dass man einen Befehl falsch eingibt und das Programm dann einen Fehler anzeigt. Einige Programme wie Git oder npm schlagen jedoch ähnliche Befehle zu dem falsch eingegebenen Befehl vor oder korrigieren Tippfehler sogar direkt und machen passend weiter. Doch wie funktionieren solche Features eigentlich? Wir schauen uns das Prinzip an, indem wir eine ähnliche Funktion zur Empfehlung ähnlicher Befehle selbst implementieren.

  • Problem definieren

→ Das Problem, einen ähnlichen Befehl zu finden, lässt sich in das Problem „die Ähnlichkeit zweier Zeichenketten prüfen“ umformulieren.

  • Edit Distance

→ Levenshtein-Distanz

  • Problem lösen

5 Kommentare

 
roxie 2021-08-03

Ich komme nicht umhin, dieses Repo zu erwähnen.

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

 
sduck4 2021-08-03

Über das Beispiel ganz oben musste ich eine ganze Weile lachen, haha

Ich war also doch nicht der Einzige, der sich vertut..

 
eyelove 2021-08-03

Das war eine interessante Geschichte. Levenshtein-Distanz … wieder etwas Neues gelernt.

 
nicewook 2021-08-03

Mit Interesse gelesen.

Mich würde allerdings interessieren, ob git wirklich auf diese Weise implementiert ist.

Es scheint auch möglich zu sein, statistisch die Erfahrungen der Nutzer zu sammeln und auf dieser Basis zu verarbeiten.

 
sangheestyle 2021-08-03

git verwendet die Levenshtein-Distanz. Im git-Abschnitt unter dem folgenden Link findet sich der entsprechende Teil des git-Quellcodes. :)

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

Ein Ansatz, der statistisch die Erfahrungen der Nutzer nutzt, wäre ebenfalls interessant, aber a) sind git-Befehle kurz und b) ist ihre Anzahl begrenzt, sodass sich mit Levenshtein offenbar ausreichend gut das Gewünschte umsetzen lässt.