perl - 给定一个输入词,如何生成发音相似的词列表?

标签 perl words auto-generate phonetics

当您在 Google 中拼错一个词(例如“appples”)时,它会为您提供现在熟悉的“您是不是要找:apples”建议。

排除 Google 根据搜索结果的相关性猜测您的意图的能力,我怎样才能开发一个听起来相同的单词列表?

这些词不一定是英语,也不一定存在。因此,例如,如果我输入“hole”,我会得到一个列表,其中包含诸如“whole”、“hola”、“whore”、“role”、“molar”等词……

我猜网上可能有一些东西可以开发这个列表,但我找不到任何东西。如果没有站点并且可以使用 Perl 完成,是否有 CPAN 模块可以帮助我做到这一点?

最佳答案

如果您真的要寻找发音相同的词,而不仅仅是搜索建议 - 您可以查看语音算法。 Soundex 和 Metaphone/Double Metaphone 是两个非常常见的,并且在任何流行的语言中都有各自的实现。

这些算法将单词简化为指示其发音的“键”。如果你从一个词库开始,并构建一个数据结构,将这些键映射到对它们求值的词——你可以取一个任意字符串,将其求值到它的“键”,然后查找其他求值相同的词键入您的数据结构(可能是列表或类似的哈希表)。

这并不完美,因为您需要找到一个大的单词语料库来为您的数据集播种,但它会起作用。

另一方面,如果您只是想要搜索建议/替代拼写,则有更简单的方法。

希望对您有所帮助。

关于perl - 给定一个输入词,如何生成发音相似的词列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9103327/

相关文章:

regex - 用反斜杠替换路径中的所有正斜杠(因此,不是所有正斜杠)

perl - 如何使用 Dancer/Starman 或 Mojolicious/Daemon 验证 https 客户端证书?

带胖逗号的 perl 散列

php - perl unary ~ 没有给出预期的结果

erlang - 如何在 Erlang 中将数字转换为单词?

c# - 在 C# 中自动生成接口(interface)实现?

javascript - 程序生成 3000 个正方形

c# - ASP.NET 自动生成 aspx.designer.cs 关闭?

R:按标签组合不同长度的频率列表?

nlp - 'discourse vector' 在词/句子嵌入中是什么意思?