Devo trovare un modo abbastanza efficace per rilevare sillabe in una parola. Per esempio,
Invisibile -> in-vi-sib-le
Esistono alcune regole di sillabazione che potrebbero essere utilizzate:
V CV VC CVC CCV CCCV CVCC
* dove V è una vocale e C è una consonante. Per esempio,
Pronuncia (5 Pro-suora-ci-a-zione; CV-CVC-CV-V-CVC)
Ho provato alcuni metodi, tra cui l'utilizzo di regex (che aiuta solo se si desidera contare le sillabe) o la definizione di regole codificate (un approccio a forza bruta che si rivela molto inefficiente) e infine l'utilizzo di automi a stati finiti (che ha fatto non risulta con nulla di utile).
Lo scopo della mia applicazione è quello di creare un dizionario di tutte le sillabe in una determinata lingua. Questo dizionario verrà successivamente utilizzato per le applicazioni di controllo ortografico (utilizzando classificatori bayesiani) e per la sintesi vocale.
Gradirei se uno potesse darmi consigli su un modo alternativo per risolvere questo problema oltre ai miei precedenti approcci.
Lavoro in Java, ma qualsiasi suggerimento in C / C ++, C #, Python, Perl ... funzionerebbe per me.