Исправление опечаток всего в 21 строке Python
Питер Норвиг показал очень компактный пример вероятностного spell checker — без нейросетей и сложных моделей.
Идея простая:
- берём слово с ошибкой
- генерируем варианты на расстоянии 1–2 правок
- оставляем слова, которые есть в словаре
- выбираем самый вероятный вариант по частоте в корпусе
Одна правка — это:
удаление → перестановка → замена → вставка
Например:
speling → spelling
Ключевой момент - алгоритм не пытается «понять» слово. Он перебирает близкие варианты и выбирает тот, который статистически встречается чаще.
Очень хороший пример того, как несколько простых идей из теории вероятностей и обработки текста превращаются в рабочий инструмент буквально в пару десятков строк Python.