Подтвердить что ты не робот

Сравнение строк с самой подобной строкой

Кто-нибудь знает, существует ли алгоритм, который задал одну строку A и массив строк B, сравнивает строку A со всеми строками в B, давая в выводе наиболее похожие.

Для "наиболее похожего" я ​​имею в виду, например,

если строка A: "hello world how are you"

то

"asdf asdewr привет мир, как asfrqr вы"

больше похоже:

"h2ll4 w1111 h11 111 111"

4b9b3361

Ответ 1

Обычным измерением для этого является расстояние Левенштейна. Вычислите расстояние Левенштейна от оригинала до каждого кандидата и возьмите наименьшее расстояние как наиболее вероятный кандидат.

Ответ 2

Определите сходство. Алгоритмы, которые могут это сделать, включают:

Все это может быть реализовано на C или С++. Google "строковое сходство", "дублирование поиска" или "запись связи" для доступных показателей и алгоритмов.

Ответ 3

Это обычно делается с проверкой множества вариантов строки, которые у вас есть... взгляните на алгоритмы коррекции орфографии - например, здесь