La détection de syllabes dans un mot

J'ai besoin de trouver un assez efficace pour détecter les syllabes dans un mot. E. g.,

Invisible -> in-vi-sib-le

Il y a quelques syllabification des règles qui pourraient être utilisés:

V
CV
VC
CVC
CCV
CCCV
CCCV

*où V est une voyelle et C est une consonne.
E. g.,

Prononciation (5 Pro-nun-ci-a-tion; CV-CVC-CV-V-CVC)

J'ai essayé plusieurs méthodes, parmi lesquelles ont été en utilisant les regex (qui permet uniquement si vous voulez compter les syllabes) ou codés en dur règle de définition (une approche par force brute qui s'avère être très efficace) et, enfin, à l'aide d'un automates d'états finis (qui n'a pas abouti à quelque chose d'utile).

Le but de ma demande est de créer un dictionnaire de tous les syllabes dans une langue donnée. Ce dictionnaire sera par la suite utilisé pour la vérification orthographique des applications (à l'aide de Bayésienne classificateurs) et le texte de synthèse de la parole.

J'apprécierais si on pouvait me donner des conseils sur une autre façon de résoudre ce problème en plus de mes précédentes approches.

Je travaille en Java, mais tout conseil en C/C++, C#, Python, Perl... pourrait fonctionner pour moi.

  • Ne vous voulez vraiment le réel de points de division ou tout simplement le nombre de syllabes dans un mot? Dans ce dernier cas, envisager de chercher les mots dans un texte-à-parole du dictionnaire et de compter les phonèmes qui codent pour des sons de voyelles.
  • Le moyen le plus efficace (calcul-sage; pas de stockage-sage), je dirais juste pour avoir un Python dictionnaire avec des mots clés et le nombre de syllabes comme des valeurs. Cependant, vous auriez encore besoin d'une solution de repli pour les mots qui ne se trouvent pas dans le dictionnaire. Laissez-moi savoir si vous trouvez un tel dictionnaire!
InformationsquelleAutor user50705 | 2009-01-01