Preciso encontrar uma maneira bastante eficiente de detectar sílabas em uma palavra. Por exemplo,
Invisível -> in-vi-sib-le
Existem algumas regras de silabificação que podem ser usadas:
V CV VC CVC CCV CCCV CVCC
* onde V é uma vogal e C é uma consoante. Por exemplo,
Pronúncia (5 Pro-freira-cação; CV-CVC-CV-V-CVC)
Eu tentei alguns métodos, entre os quais estavam usando regex (que ajuda apenas se você quiser contar sílabas) ou definição de regra codificada (uma abordagem de força bruta que se mostra muito ineficiente) e finalmente usando um autômato de estado finito (que fez não resultar em nada útil).
O objetivo do meu aplicativo é criar um dicionário de todas as sílabas em um determinado idioma. Este dicionário será usado posteriormente para aplicativos de verificação ortográfica (usando classificadores bayesianos) e síntese de texto para fala.
Eu apreciaria se alguém pudesse me dar dicas de uma maneira alternativa de resolver esse problema, além das abordagens anteriores.
Eu trabalho em Java, mas qualquer dica em C / C ++, C #, Python, Perl ... funcionaria para mim.