我正在尝试构建一个 iOS 应用程序。在其中一个屏幕中,用户可以在搜索栏中输入一些内容,而我必须对同一个单词的不同拼写采取相同的操作。
例如:用户可以输入"elephant"或"alephant"或"elefant"。我必须对所有这三个词采取相同的行动。
有没有将这些词识别为相似词的库?我不能使用拼写检查器,因为我也需要英语以外的其他语言。我做了一些研究,发现有一些语音算法,如 Text::soundex 可以在服务器端实现这一点。想知道是否有适用于 iOS 的库?
提前致谢 !!
例如,没有可用的 soundex NSString
,但如果这是您想要的,那么它很容易实现。这是来自 CocoaDev 的一个——尽管格式很糟糕——<a href="http://cocoadev.com/wiki/NSStringSoundex" rel="nofollow">soundex NSString 类别。
您还可以使用 Levenstein 距离算法来捕捉简单的拼写错误。也很容易实现(详细信息请阅读Wikipedia 文章),但这里有一个 NSString 类别。
在使用这些算法之前,请对输入进行规范化。Core Foundation 中有一个很棒的CFStringTransform
类(参见NSHipster 上关于它的这篇很棒的文章——尤其是关于规范化的最后一部分),它可以自动将不同的语言输入转换为规范化形式。
Soundex 的更好替代方案是 Double Metaphone,或者甚至更好的是 Metaphone 3。您不会说您使用的是什么语言,但是这两种算法都可以在 C++、C# 和 Java 中使用