gpt4 book ai didi

python fuzzywuzzy 的 process.extract() : how does it work?

转载 作者:太空狗 更新时间:2023-10-30 01:12:40 25 4
gpt4 key购买 nike

我想了解 python 模块 fuzzywuzzy 的函数 process.extract() 是如何工作的?

我在这里主要阅读了 fuzzywuzzy 包:http://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/ ,这是一篇很好的文章,解释了尝试进行模糊匹配时的不同场景。他们讨论了部分字符串相似性的几种情况:

1) Out Of Order
2) Token Sort
3) Token Set

然后,来自这篇文章:https://pathindependence.wordpress.com/2015/10/31/tutorial-fuzzywuzzy-string-matching-in-python-improving-merge-accuracy-across-data-products-and-naming-conventions/我学习了如何使用 fuzzywuzzy 的 process.extract() 函数来基本上选择前 k 个匹配项。

我找不到太多关于 process.extract() 函数如何工作的信息。这是我在他们的 GitHub 页面 ( https://github.com/seatgeek/fuzzywuzzy/blob/master/fuzzywuzzy/process.py ) 上找到的定义/信息,这个函数:

Find best matches in a list or dictionary of choices, return a list of tuples containing the match and it's score. If a dictionary is used, also returns the key for each match.

但是,它没有提供有关如何找到最佳选择的详细信息?是否需要我上面提到的所有 3 种情况才能找到它?

之所以这么问,是因为我在使用这个函数的时候,有时候会出现两个非常相似但不匹配的字符串。

例如在我当前的示例数据集中,对于待匹配字符串

"Total replenishment lead time (in workdays)"

匹配到

"PLANNING_TIME_FENCE_CODE", "BUILD_IN_WIP_FLAG"

但不是(正确答案)

"FULL_LEAD_TIME"

尽管正确答案与待匹配字符串一样具有“准备时间”,但它与待匹配字符串根本不匹配。为什么?不知何故,其他看起来不像待匹配字符串的字符串会被匹配。为什么?我现在很无知。

最佳答案

另一个答案在一个关键方面是错误的 - 在一种情况下 process.extract 的结果与 fuzz.partial_ratio 相同的推断,因此它们是默认情况下做同样的事情。

process.extract 实际上默认使用 WRatio(),它是四个 fuzz 比率的加权组合。这实际上是一个很酷的功能,根据经验,它在模糊匹配场景中运行良好。

仍然,您可以通过 scorer 参数手动指定字符串比较函数到 extract

process.extract 的来源:https://github.com/seatgeek/fuzzywuzzy/blob/master/fuzzywuzzy/process.py

关于python fuzzywuzzy 的 process.extract() : how does it work?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41171665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com