単語の音節を検出する効率的な方法を見つける必要があります。例:
目に見えない -> in-vi-sib-le
使用できる音節分割規則がいくつかあります。
CV VC CVC CCV CCCV CVCC
*ここで、Vは母音、Cは子音です。例:
発音(5つの発音;CV-CVC-CV-V-CVC)
私はいくつかの方法を試しましたが、その中には正規表現の使用(音節を数える場合にのみ役立ちます)やハードコードされたルール定義(非常に非効率的であることが判明したブルートフォースアプローチ)、そして最後に有限状態オートマトンの使用(何も役に立つ結果は得られませんでした)がありました。
私のアプリケーションの目的は、特定の言語のすべての音節の辞書を作成することです。この辞書は、後でスペル チェック アプリケーション (ベイズ分類器を使用) やテキストから音声への合成に使用されます。
これまでのアプローチ以外に、この問題を解決するための別の方法についてのヒントを教えていただければ幸いです。
私は Java で作業していますが、C/C++、C#、Python、Perl などのどのヒントでも役立ちます。
ベストアンサー1
ハイフネーションの目的でこの問題に対するTeXのアプローチについて読んでください。特にFrank Liangの論文 コンピュータによる単語のハイフネーション彼のアルゴリズムは非常に正確で、アルゴリズムが機能しない場合に備えて小さな例外辞書も含まれています。