首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >印度语语音搜索

印度语语音搜索
EN

Stack Overflow用户
提问于 2015-06-15 10:59:54
回答 1查看 1.5K关注 0票数 23

我想比较一下我的android应用程序中的字符串。但这里的特例是,我想比较一下用英语写的印度语单词。例如,我想检查"Edhu“"Adhu”"Yethu“在语音上是否平等,在泰米尔语中它们的意思都是一样的。但是,使用英语脚本来书写印度语的人使用不同的拼写来创造这个单词。在这种情况下,我如何比较单词呢?

我试过Levenshtein。但我不知道如何将它返回的数字转换为等式。

我试用了Soundex,Soundex的代码不一样,当单词的第一个字母变了。但它能够找出相似的发声部分。我不明白它是怎么工作的。

代码语言:javascript
复制
 soundex.encode("Yethu")  (soundex.encode("Edhu"))  (soundex.encode("adhu")) 
 Y300                       E300                       A300
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 13:34:14

据我所知,你想把用英语写成的单词按语音分解,然后把拼法不同但有相同语音表示的单词组合在一起。

因为这个SoundEx是90%的解决方案,只要那些用英语拼写单词的人在将单词从泰米尔语翻译成英语时,实际上使用的是正确的辅音。

您应该能够从SoundEx表示中删除第一个值,并在第一个字母为元音时将其用作编码。

原因是SoundEx ( https://en.wikipedia.org/wiki/Soundex )只对辅音进行编码。它抛弃了所有的元音加上h和w-除非-元音是单词中的第一个字母-这解释了为什么你的值都略有不同,但只有在第一个字母的编码。

至于零,根据定义,SoundEx编码是1个字母和3个数字(从1到6),每个单词(d或t)中只有1个辅音,SoundEx映射到数字3。由于没有辅音,我相信它增加了2个零以满足要求。这样你就可以得到Letter300

如果你要继续为你的应用程序使用SoundEx,你应该记住,它只能给你26*6*6*6 = 5616的唯一编码,基于它的字母编号(1-6)方案。这意味着语音编码不会是唯一的,一些完全不同的单词会有SoundEx编码发生冲突。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30843475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档