【问题标题】:FuzzyWuzzy String Matching - Case SensitivityFuzzyWuzzy 字符串匹配 - 区分大小写
【发布时间】:2013-05-03 23:32:03
【问题描述】:

我正在使用FuzzyWuzzy String Matching module from SeatGeek

我发现在使用 token_set_ratio 搜索算法时,大小写的微小差异会产生截然不同的结果。

例如,如果我在文件中查找短语“我正在吃饭”,我会得到 100% 的匹配。但如果短语是“我在吃”,仅 ONE 字母的大小写变化,我就有 65% 的匹配度。

有没有办法让算法不区分大小写?

【问题讨论】:

  • 你可以在所有东西上使用.upper吗?

标签: python case-insensitive fuzzy-search fuzzywuzzy


【解决方案1】:

我遇到了同样的问题,你可能使用的是 Ratio 而不是 TokenSetRatio...

【讨论】:

    【解决方案2】:

    token_set_ratio() 默认不区分大小写。

    from fuzzywuzzy import fuzz
    fuzz.token_set_ratio("I am eating", "i am eating")
    => 100
    

    【讨论】:

    • 为什么这个答案有 -1 ?据我所知,它说的是事实-默认情况下不区分大小写(kwarg token_process=False 会使其区分大小写)
    • @SarunasAzna 我只能对执行-1 的人做出假设,但答案表明它区分大小写,而不是不区分大小写。除了区分大小写之外,token_set_ratio 还有其他区别。
    【解决方案3】:

    如果您查看fuzz here 的原始代码,您会发现fuzz.token_set_ratio 在进行序列匹配之前将字符串转换为小写。

    此外,您可能需要查看来自 SeatGeek 工程师的这篇 stackoverflow 帖子 here,以更清楚地了解比率的使用情况。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 2014-10-26
      • 2017-12-09
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      相关资源
      最近更新 更多