Постройте свою первую автокоррекцию без машинного обучения

Создайте автокоррекцию без машинного обучения

Пошаговое руководство по созданию собственной программы проверки орфографии.

Фото Markus Spiske на Unsplash

Коррекция орфографии повсюду. Когда я писал эту статью, Grammarly тихо помогал мне с опечатками. Когда вы вводите запрос на сайте электронной коммерции, он сначала проходит через правильную фазу, чтобы лучше соответствовать заголовкам желаемых товаров.

Правильная коррекция орфографии несомненно необходима для любого письменного общения. Она улучшает нашу коммуникацию, поддерживает наш профессионализм и повышает нашу продуктивность. При рассмотрении создания такой программы мы можем быстро прийти к решению, что нужно использовать глубокое обучение. Однако, глубокое обучение не всегда является оптимальным выбором.

В этой статье я хотел бы представить “шумный канал”, классическую технику исправления ошибок в орфографии, и показать, как вы можете создать модуль коррекции своими силами, даже без знаний в области глубокого обучения.

Шумный канал

Мы можем представить, что каждое слово в наших документах прошло через шумный канал, который в некоторой степени “искажает” их. Мы стремимся научиться “декодировать канал”, который может вернуть это “искажение”.

Чтобы исправить ошибку в написании слова, мы собираем все возможные варианты исправления и пропускаем их через декодированный канал, чтобы найти вариант с наибольшей вероятностью.

Шумный канал и декодированный канал (изображение автора)

По сравнению с подходом Машинного Обучения, я считаю, что шумный канал более предпочтителен для начала из-за следующих причин:

  • Экономия затрат: Нет необходимости строить и поддерживать глубокие модели. Мы все знаем, что только некоторые имеют ресурсы для создания, обслуживания и поддержки модели Глубокого Обучения.
  • Белый ящик: Шумный канал более интерпретируем. Когда возникает непредвиденное поведение программы проверки орфографии, мы можем разложить оценку на составляющие и определить, откуда возникает проблема. Таким образом, мы можем оптимизировать соответствующим образом (например, расширить словарь, настроить гиперпараметры…).

Однако, по мере развития ресурсов вашего приложения, глубокие модели, такие как seq2seq, становятся более предпочтительным выбором, потому что:

  • Шумный канал имеет недостатки