我正在尝试构建一个iOS应用程序。在其中一个屏幕中,用户可以在搜索栏中输入内容,我必须对同一个单词的不同拼写采取相同的操作。
例如:用户可以输入“elephant”或“alephant”或“elefant”。我必须对所有这三个词采取同样的行动。
是否有任何图书馆将这些单词标识为类似的单词?我不能使用拼写检查器,因为我需要英语以外的其他语言... 我做了一些研究,我发现有一些语音算法,如Text :: soundex,用于在服务器端实现这一点。想知道iOS上是否有任何库?
提前致谢!!
答案 0 :(得分:2)
例如NSString
中没有可用的soundex,但如果这是你想要的,那么实现起来相当容易。这是一个可怕的格式 - 来自CocoaDev的soundex NSString category。
您还可以使用Levenstein Distance算法来捕捉简单的拼写错误。也很容易实现(详情请参阅Wikipedia article),但here's a NSString category为此。
在使用这些算法之前,请对输入进行标准化。 Core Foundation中有令人惊叹的CFStringTransform
课程(请参阅this great article关于NSHipster的内容 - 尤其是关于规范化的最后一部分),它可以自动将不同的语言输入转换为规范化形式。
答案 1 :(得分:2)
Soundex的一个更好的替代品是Double Metaphone,或者更好的是Metaphone 3.你没有说你使用的语言,但这两种算法都有C ++,C#和Java