Modyfikowanie odległości Levenshteina dla odchylenia pozycyjnego

Używam algorytmu odległości Levenshteina, aby porównać nazwę firmy podaną jako dane wejściowe użytkownika z bazą danych znanych nazw firm, aby znaleźć najbliższe dopasowanie. Algorytm sam w sobie działa dobrze, ale chcę budować w Biasie, aby odległość edycji była uważana za niższą, jeśli początkowe części ciągów są zgodne.

Na przykład, jeśli kryteria wyszukiwania to „ABCD”, to oba „ABCD Co.” a „XYX ABCD” ma identyczną odległość edycji. Chcę jednak podkreślić wagę faktu, że początkowe części pierwszego ciągu pasują do kryteriów wyszukiwania bliżej niż drugi ciąg.

Jednym ze sposobów może być modyfikacja kosztów insert / delete / replace, aby była wyższa na początku łańcuchów i niższa pod koniec. Czy ktoś ma przykład udanego wdrożenia tego? Czy korzystanie z odległości Levenshteina nadal jest najlepszym sposobem na osiągnięcie tego, co próbuję osiągnąć? Czy moje założenie podejścia jest dokładne?

AKTUALIZACJA: Dla moich bezpośrednich celów postanowiłem zrezygnować z powyższego i zamiast tego użyć odległości edycji Jaro Winklera, która wydaje się rozwiązywać problem. Jednak pozostawię to otwarte dla dalszych danych wejściowych.

questionAnswers(1)

yourAnswerToTheQuestion