Частотный анализ текста считает, сколько раз каждое слово или символ встречается в тексте. В русском языке это особенно интересно из-за буквы «о» — самой частой буквы алфавита — и вопроса, как считать «ё», которую почти никто не набирает на клавиатуре.
Буква «о» и русский алфавит
В русских текстах буква «о» встречается чаще любой другой — это следствие фонетики и грамматики языка, где окончания и служебные слова насыщены этим звуком. Для сравнения, самая редкая буква обычного алфавита — «ъ» или «ф», встречающиеся почти исключительно в заимствованных словах или на стыке приставки и корня.
«Ё» как отдельная буква — только в теории
Формально в русском алфавите 33 буквы, включая «ё», но в реальном тексте она почти всегда заменена на «е» — это давняя типографская привычка, которая тянется ещё с советских печатных машинок без отдельной клавиши. При режиме «без учёта регистра» частотный анализ объединяет «е» и «ё» лишь по регистру, но не устраняет эту путаницу — большинство текстов просто не содержат «ё» там, где она должна быть по правилам.
Частотный анализ и взлом простых шифров
Простые шифры подстановки не меняют распределение частот букв — они лишь переставляют соответствия. Сравнив частоты зашифрованного русского текста с известным распределением («о» на первом месте, дальше «е», «а», «и») можно восстановить исходный алфавит без перебора ключей — именно так исторически ломали шифры до появления машинного шифрования.
Зачем это нужно
- Быстро понять основные темы длинного документа по самым частым словам.
- Проверить текст на естественность распределения букв (учебные задачи по криптографии).
- Проанализировать повторяемость слов для SEO-оптимизации текста страницы.
Закон Ципфа
В естественных языках частота слова обратно пропорциональна его рангу в списке по убыванию частоты: самое частое слово встречается примерно вдвое чаще второго по частоте, втрое чаще третьего и так далее. Эта закономерность (закон Ципфа) настолько устойчива для обычного текста, что существенное отклонение от неё — сигнал: текст может быть искусственно сгенерирован, сильно заспамлен ключевыми словами или написан на другом языке, чем ожидалось.