【问题标题】:String fuzzy-matching From R to Python从 R 到 Python 的字符串模糊匹配
【发布时间】:2021-07-06 12:46:56
【问题描述】:

我正在尝试对 R 和 Python 使用字符串模糊匹配。 我实际上使用了两个包:

  1. stringdist 来自 R
  2. fuzzywuzzy 来自 Python

当我在 R 上尝试amatch("PARI", c("HELLO", "WORLD"), maxDist = 2) 时,我得到NA 结果,这很直观。 但是当我用 Python 尝试同样的事情时:process.extract("PARI", ["HELLO", "WORLD"], limit = 2),我得到了[('world', 22), ('HELLO', 0)]

谁能告诉我为什么我有一个 22 作为 "PARI" 和 "WORLD" 之间的比率匹配? 我怎样才能得到与 R 相同的结果? 提前致谢

【问题讨论】:

    标签: python r


    【解决方案1】:

    这里的问题是limit = 2 明确表示无论分数如何,您都需要 2 个结果,而在 R 中,您指定仅当字符串彼此非常接近时才需要结果。这里的分数是衡量单词相似程度的 0 到 100。你可以看到PARIworld 都有R 作为它们的第三个字母,这就是为什么你得到一个非零分数,但它仍然不是一个很好的分数。

    【讨论】:

    • 我确实从 Python 的代码中删除了限制,但结果还是和以前一样!
    • @Hakimachraf 默认限制为 5。但是,如果将 limit 设置为零,即使完美匹配也不会得到任何结果。您应该根据分数过滤结果,而不是限制出现的次数。
    • 那么在 Python 中 maxDist = 2 的等效分数是多少?
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 2012-02-14
    • 2014-11-02
    • 2018-04-30
    • 2018-05-31
    • 2021-04-19
    • 1970-01-01
    • 2017-08-02
    相关资源
    最近更新 更多