string - 计算单词中的音节

标签 string algorithm

我正在寻找一个完全准确的算法来计算单词中的音节。我在研究时发现的东西是不一致的,或者我知道会产生不正确的结果。有没有人对如何实现这一目标有任何建议?谢谢。

我现在使用的算法:

  1. 计算单词中元音的个数。
  2. 不计算双元音(“rain”有 2 个元音但只有 1 个音节)
  3. 如果单词的最后一个字母是元音不算(“边”是1个音节)

我还缺少其他规则吗?如果我使用的算法或我的实现是错误的,我会尝试在测试中确定我的错误结果。

最佳答案

Ambiguity是自然语言处理中的一个大问题,但有些任务实际上可以非常准确地处理歧义。原来音节是其中之一,所以不要听其他答案。 :)

音节化

基于启发式

你可以想出算法 achieving correct syllabification virtually throughout the English vocabulary , 但正确编程似乎很复杂。

基于语料库

一如既往,当手工算法没有太大帮助时,自然语言处理研究人员使用手工标记的语料库,其中包含给定单词的正确答案。然后使用学习算法,通常可以提供很高的准确性。您可以使用 LingPipe's syllabification (see "English syllabification")遵循这种方法。

详尽列表

英语只有这么多单词,这就是我们想出字典的方式。这样的词典通常包含正确的音节。你可以抓取 reference.com。例如,undulate entry包含«un·du·late»,足以知道有三个音节。

其他此类词典包括 Answers.com , The Free Dictionary , Merriam-Webster , 等等。请务必阅读条款和条件,可能不允许自动检索。而不同的词典不会always agree彼此。

它对新词或专有名词没有帮助,但我会说这将是最准确的方法。

关于断字

另一个相关的问题得到了更多的关注:断字。但是不要用那个!用于排版程序such as LaTeX ,但仅旨在提供一些正确的连字符,而不会提供不正确的连字符(高精度,低召回率)。有趣的是,只有 14 个异常(exception),例如。根据词性(动词或名词)具有不同连字符的项目。

断字程序

如果您认为它足以满足您的需要,请注意 few implementations of the TeX hyphenation algorithm exist in other languages, such as Python, Perl or Ruby .

关于string - 计算单词中的音节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096228/

相关文章:

php - 如何在 php 中对字符串数组进行排序? [这里的字符串是路径。例如/root/mandy/a.pdf, b.pdf & c.pdf

java - 如何使用字符串替换方法而不替换为空字符串?

javascript - jQuery 从字符串中删除字符串

java - 构造二叉树时处理重复项

python - 在 Python 中实现 "Wave Collapse Function"算法的问题

algorithm - 一种在多边形内拟合矩形的算法

数组和字符串破解编码面试第 6 版解决方案 1.1

python - 从 Pandas 文件名中提取文件扩展名

c# - 试试{}捕获优化?

algorithm - 网格上一组 block 的空间组织