【问题标题】:Compare similarity of two NSStrings比较两个 NSString 的相似度
【发布时间】:2013-01-21 19:06:07
【问题描述】:

我想比较两个NSStrings。如果用户输入“巨石阵”,应该得到一个“答案边界”=“几乎等于”,因为正确的答案是:“巨石阵”。

我想要一个字符串等于另一个字符串的百分比。如果“巨石阵”是 9 个字母,并且输入的文本包含来自“巨石阵”的 8 个字母,但它不等于“巨石阵”,例如:“巨石阵”不等于“巨石阵”,但它接近 - 我会想知道字符串的匹配程度。

我只知道isEqual:。如果您键入“巨石阵”,您将匹配并获得正确的符号。如果文本字段的文本不相等,则不会得到匹配并得到错误的符号。

【问题讨论】:

  • 你需要查找模糊逻辑字符串匹配,或者字符串匹配启发式......我不认为有什么自动的。
  • @incmiko 我编辑了您的问题,以便更清楚您的问题,如果您认为我歪曲了某些内容,请告诉我。

标签: cocoa-touch nsstring compare


【解决方案1】:

编辑 你想要的是计算Levenshtein Distance

你可能想看看这个问题Calculate number of differences between two NSStrings

【讨论】:

  • 他们想要一个“几乎等于”的样子
  • 我想我当时没看懂这个问题,你能不能细化一下?
【解决方案2】:

我喜欢这个库,StringScore https://github.com/thetron/StringScore

它为您提供了这些有用的方法:

- (CGFloat) scoreAgainst:(NSString *)otherString;

- (CGFloat) scoreAgainst:(NSString *)otherString fuzziness:(NSNumber *)fuzziness;

- (CGFloat) scoreAgainst:(NSString *)otherString fuzziness:(NSNumber *)fuzziness options:(NSStringScoreOption)options;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-07
    • 2011-09-30
    • 2019-08-08
    相关资源
    最近更新 更多