Ändern des Levenshtein-Abstands für die Positionsverzerrung

Ich verwende den Levenshtein-Entfernungsalgorithmus, um einen Firmennamen, der als Benutzereingabe bereitgestellt wird, mit einer Datenbank bekannter Firmennamen zu vergleichen, um die beste Übereinstimmung zu finden. An sich funktioniert der Algorithmus in Ordnung, aber ich möchte eine Verzerrung einbauen, damit der Bearbeitungsabstand als geringer angesehen wird, wenn die Anfangsteile der Zeichenfolgen übereinstimmen.

Wenn zum Beispiel das Suchkriterium "ABCD" lautet, werden beide "ABCD Co." und "XYX ABCD" haben identische Bearbeitungsentfernung. Ich möchte jedoch noch betonen, dass die Anfangsteile der ersten Zeichenfolge den Suchkriterien genauer entsprechen als die zweite Zeichenfolge.

Eine Möglichkeit, dies zu tun, besteht darin, die Einfüge- / Lösch- / Ersetzungskosten so zu ändern, dass sie am Anfang der Zeichenfolgen höher und am Ende niedriger sind. Hat jemand ein Beispiel für eine erfolgreiche Umsetzung? Ist die Verwendung von Levenshtein-Distanz immer noch der beste Weg, um das zu erreichen, was ich versuche? Ist meine Annahme des Ansatzes korrekt?

AKTUALISIEREN: Für meine unmittelbaren Zwecke habe ich mich entschlossen, auf das oben Genannte zu verzichten und stattdessen die Bearbeitungsentfernung von Jaro Winkler zu verwenden, die das Problem zu lösen scheint. Ich lasse dies jedoch für weitere Eingaben offen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage