为了账号安全,请及时绑定邮箱和手机立即绑定

检测单词中的音节

检测单词中的音节

我需要找到一种相当有效的方法来检测单词中的音节。例如,看不见-> 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的任何技巧都可以为我工作。
查看完整描述

4 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-10-23
?
温温酱

TA贡献1752条经验 获得超4个赞

这是使用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()]] 


查看完整回答
反对 回复 2019-10-23
  • 4 回答
  • 0 关注
  • 832 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信