Ich bemerkte einige Einträge hier auf String Matching, die mich an ein altes Problem erinnerte, das ich gerne lösen würde. Hat jemand einen guten Levenshtein-ähnlichen Algorithmus, der auf QWERTY-Tastaturen gewichtet ist?Ein guter Algorithmus ähnlich wie Levenshtein, aber gewichtet für QWERTY-Tastaturen?
Ich möchte zwei Zeichenfolgen vergleichen und Tippfehler zulassen. Levenshtein ist in Ordnung, aber ich würde auch lieber Rechtschreibfehler akzeptieren, die auf dem physischen Abstand zwischen Schlüsseln auf der QWERTZ-Tastatur basieren. Mit anderen Worten, der Algorithmus sollte "yelephone" zu "zelephone" bevorzugen, da die "y" -Taste näher bei der "t" -Taste als bei der "z" -Taste auf den meisten Tastaturen liegt.
Jede Hilfe wäre großartig ... diese Funktion ist nicht zentral für mein Projekt, also möchte ich nicht in ein Rattenloch abschweifen, wenn ich etwas produktiveres tun sollte.
Der cpan Beitrag Kyle R. Burton [diese Distanzfunktion] tatsächlich umgesetzt hat (http://search.cpan.org/~krburton /String-KeyboardDistance-1.01/KeyboardDistance.pm) in Perl. Er verwendet eine Tabelle, um das Gewicht zu berechnen. Siehe seine Dokumente für die vollständige Tabelle. –