Muszę znaleźć dość skuteczny sposób wykrywania sylab w słowie. Na przykład,
Niewidoczne -> in-vi-sib-le
Istnieje kilka zasad sylabowania, których można użyć:
V CV VC CVC CCV CCCV CVCC
* gdzie V to samogłoska, a C to spółgłoska. Na przykład,
Wymowa (5 Pro-nun-ci-a -ation; CV-CVC-CV-V-CVC)
Wypróbowałem kilka metod, wśród których było użycie wyrażenia regularnego (które pomaga tylko wtedy, gdy chcesz liczyć sylaby) lub zdefiniowanie reguły na sztywno (podejście brutalnej siły, które okazuje się bardzo nieefektywne) i wreszcie użycie automatów skończonych (które nie skutkuje niczym przydatnym).
Celem mojej aplikacji jest stworzenie słownika zawierającego wszystkie sylaby w danym języku. Słownik ten będzie później używany do sprawdzania pisowni (przy użyciu klasyfikatorów Bayesa) oraz do syntezy tekstu na mowę.
Byłbym wdzięczny, gdyby ktoś mógł dać mi wskazówki dotyczące alternatywnego sposobu rozwiązania tego problemu, oprócz moich poprzednich podejść.
Pracuję w Javie, ale każda wskazówka w C / C ++, C #, Pythonie, Perlu ... zadziała.