Струнное сходство -> расстояние Левенштейна
Я использую алгоритм Левенштейна, чтобы найти сходство между двумя строками. Это очень важная часть программы, которую я делаю, поэтому она должна быть эффективной. Проблема состоит в том, что алгоритм не находит следующие примеры похожими:
CONAIR
AIRCON
Алгоритм даст расстояние 6. Таким образом, для этого слова из 6 букв (вы смотрите на слово с наибольшим количеством букв), разница составляет 100% = & gt; сходство 0%.
Мне нужно найти способ найти сходство между двумя строками, а также принять во внимание случаи, подобные тому, который я представил ранее.
Есть ли лучший алгоритм, который я могу использовать? Или что вы, ребята, рекомендуете мне?
РЕДАКТИРОВАТЬ: Я также посмотрел в "Damerau" Левенштейн " алгоритм, который добавляет транспозиции. Проблема в том, что это транспонирование только для смежных символов (а не для ряда символов).