Modificación de la distancia de Levenshtein para el sesgo posicional

Estoy utilizando el algoritmo de distancia Levenshtein para comparar el nombre de una compañía provisto como una entrada del usuario contra una base de datos de nombres de compañías conocidas para encontrar la coincidencia más cercana. Por sí mismo, el algoritmo funciona bien, pero quiero crear un Bias para que la distancia de edición se considere más baja si las partes iniciales de las cadenas coinciden.

Por ejemplo, si el criterio de búsqueda es "ABCD", entonces ambos "ABCD Co." y "XYX ABCD" tienen la misma distancia de edición. Sin embargo, quiero agregarle peso al hecho de que las partes iniciales de la primera cadena coinciden con los criterios de búsqueda más que la segunda cadena.

Una forma de hacer esto podría ser modificar los costos de insertar / eliminar / reemplazar para que sean más altos al principio de las cadenas y más bajos hacia el final. ¿Alguien tiene un ejemplo de una implementación exitosa de esto? ¿El uso de la distancia Levenshtein sigue siendo la mejor manera de hacer lo que estoy tratando de lograr? ¿Mi suposición del enfoque es precisa?

ACTUALIZAR: Para mis propósitos inmediatos, he decidido renunciar a lo anterior y, en cambio, utilizar la distancia de edición de Jaro Winkler que parece resolver el problema. Sin embargo, voy a dejar esto abierto para más entradas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta