2

我想以编程方式生成单词的同音字。含义,听起来与原始单词相似的单词。

我遇到了Soundex算法,但它只是用其他字符替换了一些字符(比如 t 而不是 d)。有没有更复杂的列表或算法,至少提供同音字子串?

重要提示:我想将此应用于字典中没有的单词,这意味着我不能依赖整个真实的单词。

编辑:

输入是一个字符串,通常是一个专有名称,因此在标准(同音字)字典中不存在。一个例子可能是谷歌麦当劳(仅举两个流行的命名实体,但许多更不受欢迎)。

然后输出是该字符串的(随机)同音字。由于单词通常有多个同音字,因此我的目标是单个(随机)一个。在Google的例子中,同音字可能是gugel,或者MacDonald's代表McDonald's

4

1 回答 1

1

如何做好这件事是一个研究课题。参见例如http://www.inf.ufpr.br/didonet/articles/2014_FPSS.pdf

但是假设你想自己动手。

第一步是弄清楚如何将给你的字母变成它听起来的表示。这是一个非常困难的问题,需要猜测。(例如,“阅读”发出什么声音?取决于您是要阅读,还是已经阅读!) 然而,文本到音素转换器表明,Arabet 已经为英语解决了这个问题。

接下来,您将希望对字典中的每个单词都执行此操作。假设您可以为一个单词做到这一点,那只是一个脚本。

然后你会希望它存储在一个数据结构中,你可以很容易地找到类似的声音。原则上,这与用于拼写自动更正的算法类型没有区别。只有音素而不是字母。您可以通过http://norvig.com/spell-correct.html了解如何做到这一点。或者尝试实现类似http://fastss.csg.uzh.ch/ifi-2007.02.pdf中描述的内容。

就是这样。

于 2017-11-17T23:57:53.580 回答