Юзер вводит слово (напр. название опции). Есть некий набор допустимых значений для того что введено, при этом ввод может быть с ошибкой/сокращениями. Какие алгоритмы используются для распознавания этого дела? Я пока делаю так:
1) если введено одно из допустимых значений - это оно
2) иначе если одно (и только одно) из значений начинается на введенную последовательность это оно
3) иначе если одно и только одно из значений начинается на первый символ введенной последовательности, а остальные введенные символы можно получить выкинув из значения какие то символы, это оно (т.е. скажем для preview допустимы сокращения prw, prv, pie но не допустимо pwv)
иначе ошибка.
Вот я в некоторой задумчивости, с одной стороны при ошибке зачастую путают последовательность букв. С другой стороны 3й пункт предоставляет уж слишком много вольностей... Интересуют именно алгоритмы, обеспечивающие с одной стороны достаточную свободу и толерантность к ошибкам при вводе, с другой стороны не дающие ложных срабатываний (выбрать в итоге нужно только один вариант). Ну и да, вообще нужно че то простое, делается на питоне.