语音search印度语

我想比较string在我的Android应用程序的语音。 但是这里的特例是,我想比较用英文写的印度语词汇。 例如,我想检查“Edhu”“Adhu”“Yethu”在语音上是否相同,在泰米尔语中都是相同的。 但是使用英文脚本写印度语的人使用不同的拼写来expression这个词。 在这种情况下如何比较单词?

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

我尝试使用Soundex,Soundex代码与单词的第一个字母改变时不一样。 但它能够找出类似的声音部分。 我不明白它是如何工作的。

soundex.encode("Yethu") (soundex.encode("Edhu")) (soundex.encode("adhu")) Y300 E300 A300 

Solutions Collecting From Web of "语音search印度语"

据我所知,你要用英文写出来的单词,把它们分解成发音,然后将拼写不同的单词分组在一起,但是要有相同的拼音表示。

对于这个SoundEx是一个90%的解决scheme,只要拼写英文单词的人在将泰米尔语单词翻译成英文时实际上使用了正确的辅音。

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

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

至于你的零,SoundEx编码按照定义是1个字母和3个数字(只有1到6个),每个单词(d或t)只有1个辅音,SoundEx将它们映射到3个。因为没有更多的辅音,我相信它增加了2个符合性的零。 所以你得到Letter300

如果您打算继续使用SoundEx来处理您的应用程序,您应该记住,它只能根据其字母编号(1-6)编号(1-6)为您提供26 * 6 * 6 * 6 = 5616的唯一编码。数字(1-6)scheme。 这意味着语音编码不会是唯一的,而且有些完全不同的单词会有SoundEx编码相冲突。