当您在 Google 中拼错一个词(例如“appples”)时,它会为您提供现在熟悉的“您是不是要找:apples”建议。
排除 Google 根据搜索结果的相关性猜测您的意图的能力,我怎样才能开发一个听起来相同的单词列表?
这些词不一定是英语,也不一定存在。因此,例如,如果我输入“hole”,我会得到一个列表,其中包含诸如“whole”、“hola”、“whore”、“role”、“molar”等词……
我猜网上可能有一些东西可以开发这个列表,但我找不到任何东西。如果没有站点并且可以使用 Perl 完成,是否有 CPAN 模块可以帮助我做到这一点?
最佳答案
如果您真的要寻找发音相同的词,而不仅仅是搜索建议 - 您可以查看语音算法。 Soundex 和 Metaphone/Double Metaphone 是两个非常常见的,并且在任何流行的语言中都有各自的实现。
这些算法将单词简化为指示其发音的“键”。如果你从一个词库开始,并构建一个数据结构,将这些键映射到对它们求值的词——你可以取一个任意字符串,将其求值到它的“键”,然后查找其他求值相同的词键入您的数据结构(可能是列表或类似的哈希表)。
这并不完美,因为您需要找到一个大的单词语料库来为您的数据集播种,但它会起作用。
另一方面,如果您只是想要搜索建议/替代拼写,则有更简单的方法。
希望对您有所帮助。
关于perl - 给定一个输入词,如何生成发音相似的词列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9103327/