gpt4 book ai didi

java - 印度语言的拼音搜索

转载 作者:IT老高 更新时间:2023-10-28 20:48:01 24 4
gpt4 key购买 nike

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

我试用了 Levenshtein。但我不确定如何将它返回的数字转换为相等。

我试过 Soundex,当单词的第一个字母发生变化时,Soundex 代码是不一样的。但它能够找出相似的发声部分。我不明白它是如何工作的。

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

最佳答案

据我了解,您希望将用英语书写的单词按语音分解,然后将拼写不同但具有相同语音表示的单词组合在一起。

对于这个 SoundEx 是 90% 的解决方案,前提是使用英语拼写单词的人在将单词从泰米尔语翻译成英语时实际上使用了正确的辅音。

You should be able just to drop the first value from the SoundEx representation and use that as your encoding when the first letter is a vowel.

原因是 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)数字(1-6)方案。这意味着语音编码将不会是唯一的,并且一些完全不同的单词将具有冲突的 SoundEx 编码。

关于java - 印度语言的拼音搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30843475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com