Necesito encontrar una manera bastante eficiente de detectar sílabas en una palabra. P.ej,
Invisible -> in-vi-sib-le
Hay algunas reglas de syllabification que podrían usarse:
V CV VC CVC CCV CCCV CVCC
* donde V es una vocal y C es una consonante. P.ej,
Pronunciación (5 Pro-nun-ci-a-tion; CV-CVC-CV-V-CVC)
He probado algunos métodos, entre los que se encuentran el uso de expresiones regulares (que ayuda solo si quieres contar las sílabas) o la definición de reglas codificadas (un enfoque de fuerza bruta que demuestra ser muy ineficiente) y finalmente usar un autómata de estado finito (que sí no resulte con nada útil).
El propósito de mi aplicación es crear un diccionario de todas las sílabas en un idioma determinado. Este diccionario se utilizará más tarde para aplicaciones de revisión ortográfica (usando clasificadores bayesianos) y síntesis de texto a voz.
Le agradecería que me diera consejos sobre una forma alternativa de resolver este problema además de mis enfoques anteriores.
Trabajo en Java, pero cualquier consejo en C / C ++, C #, Python, Perl ... funcionaría para mí.