Ich muss einen ziemlich effizienten Weg finden, um Silben in einem Wort zu erkennen. Z.B,
Unsichtbar -> in-vi-sib-le
Es gibt einige Silbenregeln, die verwendet werden könnten:
V CV VC CVC CCV CCCV CVCC
* wobei V ein Vokal und C ein Konsonant ist. Z.B,
Aussprache (5 Pro-nun-ci-a-tion; CV-CVC-CV-V-CVC)
Ich habe nur wenige Methoden ausprobiert, darunter die Verwendung von Regex (was nur hilft, wenn Sie Silben zählen möchten) oder einer fest codierten Regeldefinition (ein Brute-Force-Ansatz, der sich als sehr ineffizient herausstellt) und schließlich die Verwendung von Automaten mit endlichen Zuständen (was der Fall war) nicht mit irgendetwas Nützlichem resultieren).
Der Zweck meiner Anwendung ist es, ein Wörterbuch aller Silben in einer bestimmten Sprache zu erstellen. Dieses Wörterbuch wird später für Rechtschreibprüfungsanwendungen (unter Verwendung von Bayes'schen Klassifikatoren) und für die Text-zu-Sprache-Synthese verwendet.
Ich würde mich freuen, wenn man mir neben meinen bisherigen Ansätzen Tipps geben könnte, wie man dieses Problem auf andere Weise lösen kann.
Ich arbeite in Java, aber jeder Tipp in C / C ++, C #, Python, Perl ... würde für mich funktionieren.