Вы можете подойти к этому, разбив строку кандидата на биграммы - пары смежных букв - и сравнив каждый биграмм с таблицей английских частот биграмм.
- Простой: если какой-либо биграмм достаточно низок в таблице частот (или вообще отсутствует), отклоните строку как неправдоподобную. (Строка содержит биграмму "QZ"? Отклонить!)
- Менее просто: вычислите общую правдоподобность всей строки в виде, скажем, произведения частот каждой биграммы на среднюю частоту действительной английской строки этой длины. Это позволило бы вам (а) принять строку с нечетным низкочастотным биграммом среди других высокочастотных биграмм и (б) отклонить строку с несколькими отдельными биграммами с низким, но не совсем ниже порогового значения ,
Любой из них потребует некоторой настройки пороговых значений, второй метод в большей степени, чем первый.
Выполнение того же действия с триграммами, вероятно, будет более надежным, хотя это также, вероятно, приведет к несколько более строгому набору «допустимых» строк. Победа это или нет, зависит от вашего приложения.
Биграммы и таблицы триграмм, основанные на существующих исследовательских корпусах, могут быть доступны бесплатно или для покупки (я не нашел ни одного свободно доступного, но пока только беглый гугл), но вы можете рассчитать таблицу биграмм или триграмм из любой большой текст на английском языке. Просто прокрутите каждое слово в качестве токена и подсчитайте каждый биграмм - вы можете обработать его как хеш с заданным биграммом в качестве ключа и увеличенным счетчиком целых чисел в качестве значения.
Английская морфология и английская фонетика (классно!) Меньше, чем изометрические, поэтому этот метод вполне может генерировать строки, которые «выглядят» по-английски, но вызывают неприятные неудобства. Это еще один аргумент в пользу триграмм, а не биграмм - странность, возникающая при анализе звуков, использующих несколько букв в последовательности для получения заданной фонемы, будет уменьшена, если n-грамм охватывает весь звук. (Например, подумайте «плуг» или «цунами».)