我需要找到一种相当有效的方法来检测单词中的音节。例如,看不见-> 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的任何技巧都可以为我工作。
3 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
阅读有关TeX解决此问题的方法,以进行连接。特别是请参见计算机作者弗兰克·梁(Frank Liang)的论文论文 “字样”。他的算法非常准确,然后针对该算法不起作用的情况提供了一个小的例外字典。
慕标琳琳
TA贡献1830条经验 获得超9个赞
这是使用NLTK的解决方案:
from nltk.corpus import cmudict
d = cmudict.dict()
def nsyl(word):
return [len(list(y for y in x if y[-1].isdigit())) for x in d[word.lower()]]
- 3 回答
- 0 关注
- 379 浏览
添加回答
举报
0/150
提交
取消