Открыть сервисСервис

Подбор слова по буквам

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

Основные формулировки задачи

В зависимости от того, какие данные известны, задача принимает разные формы:

  • Поиск по шаблону — известны позиции некоторых букв (например, _ _ К _ Т длиной 5), требуется найти все подходящие слова словаря.
  • Анаграмма — задан набор букв в произвольном порядке (например, «АБВГД»), нужно составить слово, используя все или часть букв.
  • Перестановка с ограничениями — буквы заданы, но часть позиций известна («_ _ Е _», буквы {А, Е, Л, Н, Т}).
  • Кроссвордная формулировка — даны определение и частично заполненная сетка; подбор слова по буквам выступает как вспомогательный шаг при решении.

Методы решения вручную

Эвристики кроссвордистов

При решении кроссвордов подбор по буквам опирается на типичные сочетания русского языка. Часто используемые приёмы:

  • подстановка наиболее вероятных букв в свободные позиции по длине слова и пересечениям;
  • поиск слов с характерными суффиксами и префиксами (например, для слова длиной 6 с окончанием «-ИЕ»);
  • опора на частотность букв (в русском языке наиболее часты буквы О, А, Е, И, Н);
  • перебор по словарю с фильтрацией по маске.

Частотный и морфологический анализ

Полезно учитывать морфологию: русские слова имеют богатую систему окончаний, поэтому известное окончание резко сужает область поиска. Также учитываются частотные корни и словообразовательные модели.

Компьютерные методы

Поиск по маске

Простейший алгоритм — линейный перебор словаря с проверкой соответствия маске. Для словаря из N слов и маски длины L сложность составляет O(N·L). На практике словари русского языка содержают от 100 тысяч до 1 миллиона словоформ, поэтому перебор выполняется за доли секунды.

Алгоритмы на префиксных деревьях

Более эффективный подход — хранение словаря в виде дерева (tries) или автоматов. Поиск по маске с известными позициями выполняется обходом дерева, что позволяет отсекать неподходящие ветви заранее. Для задачи анаграмм применяются сортированные представления слов (например, «подпись» слова — отсортированный набор букв), что позволяет свести поиск к поиску по ключу.

Индексы и сжатие

В информационно-поисковых системах для подобных запросов используются инвертированные индексы, n-граммные модели и сжатые словари (Dawg — Directed Acyclic Word Graph), которые объединяют слова с общими суффиксами.

Применение

Лингвистика и образование

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

Криптография и дешифровка

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

Информационный поиск

Поисковые системы и словарные сервисы поддерживают поиск по маске (например, «кот» или «ак*»), что является прямым приложением данной задачи. Сервисы вроде словарей-помощников для кроссвордов строятся именно на этих алгоритмах.

Сложность и вычислительные вопросы

Задача поиска слова по маске в словаре решается за линейное время от размера словаря при наивном подходе и существенно быстрее при использовании индексов. Задача составления слова из произвольного набора букв (NP-полная при произвольных ограничениях) на практике решается жадно или перебором с отсечением. Для русского языка сложность увеличивается из-за богатства морфологических форм и омографии.

См. также

Источники

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru