用一个词计算音节

Gle*_*234 23 string algorithm

我正在寻找一个完全准确的算法陈述来计算单词中的音节.我研究时发现的不一致或我所知道的结果不正确.有没有人有任何建议如何实现这一目标?谢谢.

我现在使用的算法:

  1. 计算单词中的元音数量.
  2. 不要算双元音("雨"有2个元音但只有1个音节)
  3. 如果单词中的最后一个字母是元音不计数("side"是1个音节)

我还缺少更多规则吗?如果我使用的算法错误或我的实现,我正在尝试确定我的错误结果的测试.

Que*_*det 24

歧义在自然语言处理中是一个巨大的问题,但有些任务实际上可以处理模糊性和准确性.事实证明,音节化就是其中之一,所以不要听其他答案.:)

音节

启发式为主

您可以在整个英语词汇表中提出实现正确音节化的算法,但正确编程似乎很复杂.

基于语料库

与往常一样,当手工制作的算法没有太多帮助时,自然语言处理研究人员使用手工标记的语料库,其中包含给定单词的正确答案.然后使用学习算法并且通常提供高精度.您可以使用遵循此方法的LingPipe的音节表(参见"英语音节表").

详尽的清单

英语只有很多单词,这就是我们提出词典的方式.这些词典通常包含正确的音节.你可以刮一下reference.com.例如,波形条目包含«un·du·late»,这足以知道有三个音节.

其他类似的词典包括Answers.com,自由词典,Merriam-Webster等.请阅读条款和条件,可能不允许自动检索.不同的词典并不总是 彼此一致.

它对新单词或专有名词没有帮助,但我认为这将是最准确的方法.

关于连字符

另一个相关问题得到了更多的曝光:连字符.但是不要使用它!它用于排版程序,如LaTeX,但只是为了提供一些正确的连字符,而不提供不正确的连字符(高精度,低召回).值得注意的是,只有14个例外,例如.根据词性(动词或名词)具有不同连字符的项目.

连字程序

如果您认为它足以满足您的需求,请注意TeX连字算法一些实现存在于其他语言中,例如Python,Perl或Ruby.


Arm*_*yan 14

我正在寻找一个完全准确的算法陈述来计算单词中的音节

没有一个.期.无论你发明什么算法,我都希望找到一个反例.在某些语言中(亚美尼亚语和俄语会浮现在脑海中),算法非常简单 - 计算元音的数量.在其他语言中,例如德语,它不是那么简单但仍然可行.在英语中,我担心,字母和声音之间的转换是绝对不规则的.

例如,

巧合.oi被算作两个音节.但是在煮沸时它只有一个音节.另外,不计算最终元音并不总是准确的.考虑 Penelope Hermione这个名字.或香蕉

另一个奇怪的情况是,在没有打印元音的情况下存在音节.例如,table是双音节词,但第二个音节是由bl之间的不可见声音生成的.另外,不要忘记源自拉丁语的单词,拉丁语可以有很多连续的元音.例如象声词.

所以,没有准确的算法.你可以去的唯一方法是尝试找到一个在很多(我避免使用最多的单词)案例中有效的算法.但在这种情况下,您应该重新定义您的要求.