J'ai besoin de trouver un moyen assez efficace de détecter les syllabes dans un mot. Par exemple,
Invisible -> in-vi-sib-le
Certaines règles de syllabification pourraient être utilisées:
V CV VC CVC CCV CCCV CVCC
* où V est une voyelle et C est une consonne. Par exemple,
Prononciation (5 Pro-nun-ci-a-tion; CV-CVC-CV-V-CVC)
J'ai essayé quelques méthodes, parmi lesquelles l'utilisation de regex (qui aide seulement si vous voulez compter les syllabes) ou la définition de règle codée en dur (une approche de la force brute qui s'avère très inefficace) et enfin l'utilisation d'un automate à états finis (ce qui a fait ne donne rien d’utile).
Le but de mon application est de créer un dictionnaire de toutes les syllabes dans une langue donnée. Ce dictionnaire sera utilisé plus tard pour les applications de vérification orthographique (utilisant des classificateurs bayésiens) et la synthèse de texte à parole.
J'apprécierais si l'on pouvait me donner des conseils sur une autre façon de résoudre ce problème en plus de mes approches précédentes.
Je travaille en Java, mais toute astuce en C / C ++, C #, Python, Perl ... fonctionnerait pour moi.