Мы использовали массив суффиксов для реализации поиска по ключевым словам, например рассмотрим фразу:
белая плитка для ванной
вставляем суффиксы:
1) белая плитка для ванной
2) плитка для ванной
3) плитка
и теперь можно найти фразу «белая плитка для ванной комнаты», если пользователь вводит слова «белый», «ванная комната» или «плитка».
Однако, теперь есть проблема, человек может напечатать "tyle", и ничего не будет найдено.
Итак, я хотел спросить, как реализовать какой-то быстрый нечеткий поиск для этого. По сути, я хочу, чтобы этот алгоритм исправил пользователя и все же нашел «плитку».
Я подумывал применить дистанцию Левенштейна, но моя попытка не удалась. Идея заключалась в том, что мы могли бы найти группу слов, которые начинаются с «t» и вычислить расстояние Левенштейна для каждого из них, а затем вернуть результаты, где расстояние Левенштейна было минимальным.
Это не удалось, потому что пользователь может набрать «iile» вместо «tile», и теперь без слов, мой алгоритм применяет расстояние Левенштейна к словам в группе «i».
Какой хороший способ решить эту проблему?