Я не уверен, насколько ограничена эта проблема, т. Е. Сколько решений вы приняли, чтобы изменить, но вот некоторые комментарии:
1) Картирование частоты недостаточно для решения головоломкитаким образом, многие частоты очень близки друг к другу, и если вы не используете один и тот же текст для источника частоты и открытого текста, вы почти гарантированно отключите несколько букв независимо от длины текста.Разные материалы будут иметь разные модели использования.
2) Не зачищайте пространства, если можете помочь.Это позволит вам проверить ваше потенциальное решение, проверив, что некоторый процент слов существует в словаре, к которому у вас есть доступ.
3) Посмотрите на обработку естественного языка, если вы действительно хотите перейти на языковую сторонуэтот. В этой книге есть все, что вы когда-либо хотели о ней узнать.
Редактировать: Сначала я бы посмотрел на большие графы и триграфы.Если вы достаточно уверены в одной или двух буквах, они могут помочь предсказать вероятных кандидатов на следующие буквы.Это в основном таблицы вероятностей, где AB будет вероятностью того, что за A следует буква B. Таким образом, при условии, что у вас есть заданная буква, которую можно использовать для решения букв рядом с ней, а не просто для предположения.Например, если у вас есть слово «y_u», для вас очевидно, что это слово для вас, но не для компьютера.Если у вас остались буквы N, C и O, биграфы скажут вам, что YN и YC очень необычны, где, как YO, гораздо более вероятно, даже если ваш текст имеет необычные частоты букв (что легко, когда он короткий) у вас еще есть достаточно точная система для решения неизвестных.Вы можете охотиться за скомпилированным набором данных или делать свой собственный анализ, но убедитесь, что используете много различного текста, много Шекспира - это не то же самое, что половина Шекспира и половина журнальных статей.