Я пробую собственный проект, в котором, даже если кто-то вводит слово с ошибкой, программа сравнивает его с предложением, а затем выводит определенный процент на основе процента сходства текста.
Во время поиска методов в Интернете я наткнулся на множество алгоритмов (расстояние Левеншайна, расстояние Хэмминга, сходство Жакара и т. Д.). Кроме того, такие модули Python, как Difflib и Fuzzywuzzy, но не получили ожидаемый результат
Использование Fuzzywuzzy :
process.extract("radisson",ds,scorer=fuzz.partial_ratio,limit=10)
Приведенный выше фрагмент выводит прогнозируемый результат, однако, если я изменю одну букву из запроса следующим образом:
process.extract("radison",ds,scorer=fuzz.partial_ratio,limit=10)
Вывод совершенно другой. Где не найдено слов, относящихся к 'radison'.
Ожидаемое поведение :
Ввод :
string = "radison"
text1 = "Hotel radisson palace"
text2 = "radison homes"
text3 = "Hotel radis"
Выход :
Процент сходства выглядит следующим образом:
с текстом1 90%
с текстом2 100%
с текстом3 65%