我需要找到一种相当有效的方法来检测单词中的音节。例如。,

隐形 -> in-vi-sib-le

有一些可以使用的音节规则:


简历
风险投资
CVC
闭路电视
CCCV
CVCC

*其中 V 是元音,C 是辅音。
例如。,

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

我尝试了几种方法,其中包括使用正则表达式(仅在您想计算音节时才有帮助)或硬编码规则定义(证明效率非常低的蛮力方法),最后使用有限状态自动机(确实没有任何有用的结果)。

我的应用程序的目的是创建一个给定语言的所有音节的字典。该词典稍后将用于拼写检查应用程序(使用贝叶斯分类器)和文本到语音合成。

除了我以前的方法之外,如果有人能给我提供解决此问题的替代方法的提示,我将不胜感激。

我使用 Java 工作,但任何关于 C/C++、C#、Python、Perl 的技巧都对我有用。

最佳答案

出于断字的目的,阅读有关此问题的 TeX 方法。特别是见 Frank Liang 的 thesis dissertation Word Hy-phen-a-tion by Comp-put-er。他的算法非常准确,然后在算法不起作用的情况下包含一个小的异常字典。

关于nlp - 检测单词中的音节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/405161/

10-12 16:39