3

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

我不敢相信在 2009 年,唯一的办法就是使用那些老式的押韵词典。你知道任何资源(在 PHP 中会是一个加号)来帮助我完成这个痛苦的任务吗?

谢谢你。

你的提示都非常有帮助。我会花一些时间来调查它。无论如何,关于 DoubleMetaPhone 的更多信息可以在适当的 PHP 代码中找到(另一个是扩展)。Php.net中有关于 MethaPhone 功能和 doublemetaphone 的有趣信息。

他们特别提醒双变音与变音相比有多慢(大约慢 100 倍)。

4

5 回答 5

4

请参阅来自 U. Michigan 的 Bradley Buda 的 CS 项目摘要,它使用 Levenshtein 距离作为原子来查找押韵的英语单词。我相信结合 Levenshtein 和 soundex 应该会产生更好的结果。

于 2009-04-21T09:01:03.170 回答
4

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

通常,您要做的是将单词分成音节并比较它们的最后一个音节。如果您可以将其划分为音素,颠倒它们的顺序并在颠倒的单词上进行比较,那就更好了。您可能会尝试比较变音位键
的最后一部分。

于 2009-04-21T09:01:19.097 回答
1

除了提到的soundex()函数 ramonzoellner 之外,还有另一个名为levenshtein()的函数,它计算两个单词之间的levenshtein 距离。这可能会进一步帮助您。

于 2009-04-21T08:52:50.677 回答
1

似乎你需要找到一个包含发音的数据库,可能还有重音/重音:最后一个音节相似的多音节词,但不同音节的重音并不完全押韵,至少在能够在诗歌中使用它们的意义上;例如“诗歌”和“下摆”。其他答案(levenshtein & soundex)应该有助于找到候选人,但他们不会确认:

  • 艰难的
  • 咳嗽
  • 面团
  • 通过
  • 树枝
于 2009-04-21T13:51:41.270 回答
-1

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

于 2009-04-21T08:47:08.350 回答