Мне нужно найти достаточно эффективный способ распознавания слогов в слове. Например,
Невидимый -> in-vi-sib-le
Вот несколько правил слоговой записи, которые можно использовать:
V CV VC CVC CCV CCCV CVCC
* где V - гласная, а C - согласная. Например,
Произношение (5 Pro-nun-ci-a -tion; CV-CVC-CV-V-CVC)
Я пробовал несколько методов, среди которых было использование регулярного выражения (которое помогает только в том случае, если вы хотите подсчитывать слоги) или жестко закодированного определения правила (метод грубой силы, который оказался очень неэффективным) и, наконец, использование конечного автомата (который не приведу ни к чему полезному).
Цель моего приложения - создать словарь всех слогов на данном языке. Этот словарь позже будет использоваться для приложений проверки орфографии (с использованием байесовских классификаторов) и синтеза речи.
Я был бы признателен, если бы можно было дать мне советы по альтернативному способу решения этой проблемы, помимо моих предыдущих подходов.
Я работаю на Java, но любой совет по C / C ++, C #, Python, Perl ... мне подойдет.