Я использую алгоритм Левенштейна, чтобы найти сходство между двумя строками. Это очень важная часть программы, которую я создаю, поэтому она должна быть эффективной. Проблема в том, что алгоритм не находит следующие примеры похожими:
Conair
AIRCON
Алгоритм даст расстояние 6. Итак, для этого слова из 6 букв (вы смотрите на слово с наибольшим количеством букв), разница составляет 100% = > подобие 0%.
Мне нужно найти способ найти сходство между двумя строками, но также принять во внимание случаи, подобные тем, которые я представил ранее.
Есть ли лучший алгоритм, который я могу использовать? Или что вы, ребята, мне рекомендуете?
EDIT: Я также рассмотрел алгоритм "Damerau-Levenshtein", который добавляет транспозиции. Проблема состоит в том, что эти транспозиции предназначены только для смежных символов (а не для нескольких символов).