用PHP押韵

时间:2009-04-21 08:43:31

标签: php nlp

我很难找到一种方法来检测两个单词是否具有相同的英语押韵。它不是相同的音节结尾,而是更接近语音相似性

我无法相信2009年这样做的唯一方法就是使用那些老式的韵律词典。你知道任何资源(在PHP中会是一个加分)来帮助我完成这项痛苦的任务吗?

谢谢。

你的暗示非常好。我会花一些时间来调查它。无论如何,有关DoubleMetaPhone的更多信息可以找到here in a proper PHP code(另一个是扩展名)。 有关MethaPhone功能和doublemetaphone in Php.net的有趣信息。

他们特别提醒双手机与metaphone的速度有多慢(比较慢100倍)。

5 个答案:

答案 0 :(得分:4)

Soundex不会帮助你。 Soundex专注于单词的开头,而不是结尾。一般来说,它认为你很难找到任何工具来做到这一点。即使对于语言学家来说,这个词的根源也比它的结尾更有趣。

一般来说,你要做的就是在音节中划分单词并比较它们的最后一个音节。如果你可以将它分成音素,改变它们的顺序并对反向词进行比较,那就更好了。
您可能会尝试比较metaphone keys的最后一部分。

答案 1 :(得分:3)

参见Bradley Buda's CS project summary from U. Michigan,它使用Levenshtein距离作为原子来寻找押韵英语单词。我相信结合Levenshtein和soundex会给出更好的结果。

答案 2 :(得分:1)

除了提到的soundex()函数ramonzoellner之外,还有另一个名为levenshtein()的函数,用于计算两个单词之间的levenshtein distance。这可能对你有所帮助。

答案 3 :(得分:1)

好像你需要找到一个包含发音和可能的压力/强调的数据库:具有相似音节的多音节词,但对不同音节的压力并不十分押韵,至少在能够使用它们的意义上诗;例如“诗”和“哼”。其他答案(levenshtein& soundex)应该有助于找到候选人,但他们不会证实:

  • 咳嗽
  • 面团
  • 树枝

答案 4 :(得分:-1)

您是否尝试过soundex()函数?如果单词听起来相似,它应该至少给你一些指示。