检测单词中的音节

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


看不见-> in-vi-sib-le


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


V CV VC CVC CCV CCCV CVCC


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


发音(5个专业名词; CV-CVC-CV-V-CVC)


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


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


如果能在我以前的方法之外给我提示另一种解决此问题的方法,我将不胜感激。


我使用Java,但是使用C / C ++,C#,Python,Perl的任何技巧都可以为我工作。


达令说
浏览 380回答 3
3回答

临摹微笑

阅读有关TeX解决此问题的方法,以进行连接。特别是请参见计算机作者弗兰克·梁(Frank Liang)的论文论文 “字样”。他的算法非常准确,然后针对该算法不起作用的情况提供了一个小的例外字典。

慕标琳琳

这是使用NLTK的解决方案:from nltk.corpus import cmudictd = cmudict.dict()def nsyl(word):  return [len(list(y for y in x if y[-1].isdigit())) for x in d[word.lower()]] 
打开App,查看更多内容
随时随地看视频慕课网APP