Реализуйте "Вы имели в виду?" с основными данными
Я работаю над приложением для iOS. У меня есть база данных Core Data с большим количеством названий компаний.
Когда пользователь вводит название компании, которая не существует, я хотел бы показать "похожие" названия компаний. Например, если пользователь ввел "Aple", я хотел бы показать "Вы имели в виду Apple?".
Я знаю, что методика поиска строк, которые приблизительно соответствуют шаблону (а не точно), называется приближенным сопоставлением строк или, в разговорной речи, нечетким поиском строк.
Теоретически, существует много алгоритмов, более или менее допустимых: алгоритм дистанционных вычислений Левенштейна и так далее.
Но на практике, есть ли кто-то, кто уже внедрил нечто подобное, что можно легко использовать с основными данными?
2 ответа
Я нашел решение. Используйте эту категорию NSString, доступную на GitHub: https://github.com/JanX2/NSString-DamerauLevenshtein.
Попробуйте взглянуть на Soundex, я считаю, что это является частью основного набора функций для SQLite, если это ваше базовое хранилище данных.