Недавно я внедрил алгоритм Левенштейна в базу данных нашей поисковой системы, но мы столкнулись с проблемой.
Согласно базовому levenshtein
Levenshtein('123456','12x456') является тем же значением, что и Levenshtein('123456','12345x')
Обычно это нормально, но для моей конкретной проблемы это неверно. Когда кто-то пользуется нашим сайтом, это неверно. Производители электронных компонентов часто выпускают похожие продукты с разницей только в самой последней букве. Если первая буква отличается, то это обычно совершенно другая категория. Поэтому мне нужен алгоритм, который считает совпадения в начале слова более ценными, чем совпадения в конце, или, другими словами, за несоответствия, возникающие в начале слова, должен применяться больший штраф, чем за несоответствия в конце.
Если у кого-то есть идеи, пожалуйста, дайте мне знать.