5

我正在尝试构建一个 iOS 应用程序。在其中一个屏幕中,用户可以在搜索栏中输入一些内容,而我必须对同一个单词的不同拼写采取相同的操作。

例如:用户可以输入"elephant""alephant""elefant"。我必须对所有这三个词采取相同的行动。

有没有将这些词识别为相似词的库?我不能使用拼写检查器,因为我也需要英语以外的其他语言。我做了一些研究,发现有一些语音算法,如 Text::soundex 可以在服务器端实现这一点。想知道是否有适用于 iOS 的库?

提前致谢 !!

4

2 回答 2

2

例如,没有可用的 soundex NSString,但如果这是您想要的,那么它很容易实现。这是来自 CocoaDev 的一个——尽管格式很糟糕——<a href="http://cocoadev.com/wiki/NSStringSoundex" rel="nofollow">soundex NSString 类别。

您还可以使用 Levenstein 距离算法来捕捉简单的拼写错误。也很容易实现(详细信息请阅读Wikipedia 文章),但这里有一个 NSString 类别

在使用这些算法之前,请对输入进行规范化。Core Foundation 中有一个很棒的CFStringTransform类(参见NSHipster 上关于它的这篇很棒的文章——尤其是关于规范化的最后一部分),它可以自动将不同的语言输入转换为规范化形式。

于 2012-11-04T00:46:21.147 回答
2

Soundex 的更好替代方案是 Double Metaphone,或者甚至更好的是 Metaphone 3。您不会说您使用的是什么语言,但是这两种算法都可以在 C++、C# 和 Java 中使用

于 2012-11-10T22:23:57.123 回答