如何在子串级别生成同音字?

时间:2017-11-17 21:15:28

标签: python algorithm phonetics

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

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

重要的是,我想将它应用于不在词典中的单词,意味着它不能依赖于整个真实的单词。

编辑:

输入是一个字符串,通常它们是命名实体,因此不是真正的(同音字)字典。一个例子可能是谷歌麦当劳(只是为了命名两个流行的命名实体,但许多更不受欢迎)。

然后输出是该字符串的(随机)同音字。由于单词通常有多个同音异义词,因此单个(随机)单词是我的目标。如果谷歌,同音词可能 gugel ,分别麦克唐纳 麦当劳

1 个答案:

答案 0 :(得分:0)

如何做好这个研究课题。请参阅示例http://www.inf.ufpr.br/didonet/articles/2014_FPSS.pdf

但是假设你想要自己动手。

第一步是弄清楚如何将你给出的字母转换成它听起来的样子。这是一个非常难以猜测的问题。 (例如,声音是什么"读取"制作?取决于您是否要阅读,或者您已经阅读过!)但是text to phonemes converter表明Arabet已经为英语解决了这个问题。

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

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

就是这样。