alw*_*ons 6 python string fuzzywuzzy
我试图了解python模块Fuzzywuzzy的功能process.extract()如何工作?
我主要在这里阅读有关Fuzzywuzzy软件包的信息:http ://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/ ,这是一篇很棒的文章,解释了尝试进行模糊匹配时的不同情况。他们讨论了部分字符串相似性的几种方案:
1)乱序
2)令牌排序
3)令牌集
然后,从这篇文章中: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)上找到的定义/信息,该功能是:
在选择的列表或词典中查找最佳匹配,返回包含匹配及其得分的元组列表。如果使用字典,则还返回每个匹配项的键。
但是,它没有提供有关如何找到最佳方法的详细信息?是否需要我在上面提到的所有3个方案中找到该方案?
我之所以问是因为,当我使用此函数时,有时会有两个非常相似但不匹配的字符串。
例如在我当前的样本数据集中,要匹配的字符串
“总补货提前期(以工作日为单位)”
它与
“ PLANNING_TIME_FENCE_CODE”,“ BUILD_IN_WIP_FLAG”
但不是(正确的答案)
“ FULL_LEAD_TIME”
即使正确的答案像“待匹配字符串”那样具有“提前期”,但它根本不与待匹配字符串匹配。为什么?并以某种方式使看起来不像待匹配字符串的其他匹配。为什么?我现在很笨。
Jac*_*ree 12
另一个答案在一个关键方面是错误的 - 结果与一种情况process.extract相同的推断fuzz.partial_ratio,因此默认情况下它们正在做同样的事情。
process.extract实际上WRatio()默认使用,是四个fuzz比率的加权组合。这实际上是一个很酷的功能,凭经验在模糊匹配场景中效果很好。
不过,您可以通过scorer参数手动指定字符串比较函数extract
来源process.extract:https : //github.com/seatgeek/fuzzywuzzy/blob/master/fuzzywuzzy/process.py
小智 8
模糊模糊比较中有四个比率。
base_ratio:两个字符串的编辑距离。partial_ratio: 最相似子串的比率。token_sort_ratio:在比较之前对标记进行排序的序列相似性的度量。token_set_ratio:查找每个字符串中的所有字母数字标记。更多关于配给的细节可以在这里找到http://chairnerd.seatgeek.com/fuzzywuzzy-fuzzy-string-matching-in-python/
默认情况下process.extract()使用Partial_ratio的比较,但你也可以用第三个参数来覆盖它process.extract()
前任。
print(fuzz.partial_ratio('Total replenishment lead time (in workdays)', 'Lead_time_planning'))
query = 'Total replenishment lead time (in workdays)'
choices = ['PLANNING_TIME_FENCE_CODE', 'BUILD_IN_WIP_FLAG','Lead_time_planning']
print(process.extract(query, choices))
Run Code Online (Sandbox Code Playgroud)
结果将是:
50
[('Lead_time_planning', 50), ('PLANNING_TIME_FENCE_CODE', 38), ('BUILD_IN_WIP_FLAG', 26)]
Run Code Online (Sandbox Code Playgroud)
这表明它默认使用 partial_ratio,您可以随时覆盖它。
| 归档时间: |
|
| 查看次数: |
6675 次 |
| 最近记录: |