实施押韵发现者

时间:2012-12-19 21:13:54

标签: java algorithm linguistics

想知道是否有人有任何提示或者可以指出我找到/创建某种算法来找到押韵词的正确方向。

我特别不想使用API​​,因为创建算法只是为了创建它是我的最终目标。

不是它应该很重要,但我在java编码。

谢谢

5 个答案:

答案 0 :(得分:7)

如果你不想使用API​​,这似乎是一个巨大的项目。具有挑战性的步骤是确定一个单词的语音(如果两个单词的结尾在语音上相似,则为两个单词)。如果你能做到这一点,你可以比较他们发音的结尾。您可能会找到一个将已知单词转换为拼音拼写的API,但如果您不想使用API​​,则必须自行完成,这不是一项小任务......更不用说,任何人都不完美

另一种方法是研究Metaphone算法,这里解释: http://www.blackbeltcoder.com/Articles/algorithms/phonetic-string-comparison-with-soundex

答案 1 :(得分:6)

最佳算法将使用按韵组分类的词典。这是一个非常难的问题,需要语言学背景。我想你想要一些,可能不是最好的算法来自动找到押韵。

用一些值来编码单词(不是单词本身)的发音的基本思想。以等号结尾的值识别单词押韵。

从我的角度来看,研究比找到正确的算法更为重要。

看一下那篇论文:A System for the Automatic Identification of Rhymes

答案 2 :(得分:4)

我认为利用标准的语音算法是一个好主意。我认为Soundex可能有点受限,但double metaphone可能是一个不错的选择。

获取相关单词的变音电话表示,删除第一个字符,并检查两个单词中较短的单词的剩余部分是否与较长的结尾相匹配。使用双联想电话时,它非常相似,但进行了四次比较,从小学到小学,从小学到小学,从小学到中学,再到中学。

我认为这将是一个很好的起点。

关于此和许多其他语音算法的说明:它不是为提供精确的语音定义而设计的。不同的地理发音,常见的错误发音和替代发音使得单独根据单词无法获得难以获得的单一正确的发音。新颖的拼写和字母使用使得难以在算法上获得紧密的发音(照顾一些开胃小菜?)。此外,许多此类算法的主要目标是将相似的声音或听错的单词或名称相互匹配,因此结果通常意图有点不精确(这也可能是一件好事,为此目的)。 / p>

答案 3 :(得分:3)

我在my blog写了一个押韵字典程序。这个想法是使用带有发音的字典,并从头开始比较音素;具有相同结尾音素的两个单词是彼此押韵。

答案 4 :(得分:1)

你可能想看一下Carnegie Mellon发音字典,对于初学者来说。这是我能找到的最好的发音词典。

http://www.speech.cs.cmu.edu/cgi-bin/cmudict