我想以编程方式生成单词的同音字意思,听起来与原文相似的词。
我见过soundex算法,但它只是用其他字符替换了一些字符(比如t而不是d)。有没有哪种列表或算法稍微复杂一点,至少提供了同音子串?
重要提示:我想把这个应用到字典里没有的单词上,这意味着我不能完全依赖真实的单词。
编辑:
输入是一个字符串,通常是一个专有名称,因此没有标准(同音)字典一个例子可以是google或mcdonald's(仅举两个流行的命名实体的名字,但很多都不受欢迎)。
然后输出是这个字符串的(随机)同音。因为单词通常有不止一个同音字,所以我的目标是一个(随机)同音字在谷歌的例子中,同音词可以是gugel,或者麦当劳的macdonald's。
最佳答案
如何做好这项工作是一个研究课题请参见例如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中描述的内容。
就这样。