Как проверить, может ли строка быть объявлена?

Я хотел бы программно проверить, может ли строка быть объявлена ​​или должна быть написана.

Например, internationalization может быть считан, но i18n не может, и не может hhdirgxzf.

Я могу думать о некоторых простых эвристиках, таких как проверка, содержит ли строка не-альфа-символы, но я надеюсь, что есть более надежный и научный способ сделать это. Существуют ли алгоритмические подходы, которые могут набрать строку, основанную на том, как легко произносится?

Связанный: Есть ли способ оценить сложность произношения слова?, однако у меня нет списка, и я не могу прекомпотировать.


Обновление на основе комментариев.

  • Поскольку я английский докладчик, мне интересен английский, но я мог представить себе алгоритм, основанный на том, как работают звук и речь, а не характеристики конкретного языка.
  • По выражению я имею в виду, что строка может быть прочитана естественным образом, можно произнести hhdirgxzf, но это не произвело бы одно слово естественного языка, ее нужно было бы разбить.
  • конкретный прецедент, который я имею в виду, - это то, где меня отправляют строки, и я хочу использовать базовую систему преобразования текста в речь, чтобы читать их вслух. Я хочу определить, какие жетоны в строке, чтобы система TTS пыталась произнести, и которая, чтобы сделать это заклинанием, заблуждалась на стороне написания, если не была уверена.

Ответ 1

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

Ответ 2

Возможно, подсчитайте альфа-символы и разделите их на длину строки. Оценка основана на плотности альфа-символов? Кроме того, возможно уменьшить балл за номер?

Ответ 3

Каков источник этих строк? Если вы сами их генерируете, вы можете попытаться создать вероятные произносимые строки. Идеи, которые могут работать, включают:

  • начните со слова и замените гласные другими гласными и согласными с похожими согласными.

  • генерирует случайный Soundex и обращается к слову, которое генерирует этот Soundex.

  • объединить три или четыре произносимых слога.

  • альтернативные согласные и гласные.

  • Lorem Ipsum