我想要了解 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 种情况来寻找吗?
我之所以问这个问题,是因为当我使用此函数时,有时会有两个非常相似但未被匹配的字符串。例如,在我的当前样本数据集中,对于待匹配字符串 "Total replenishment lead time (in workdays)",它被匹配到了 "PLANNING_TIME_FENCE_CODE" 和 "BUILD_IN_WIP_FLAG",但没有匹配到正确答案 "FULL_LEAD_TIME"。尽管正确答案也包含 "lead time",但它根本没有与待匹配字符串进行匹配。为什么?而且,那些看起来不像待匹配字符串的其它字段却可以被匹配。为什么?我现在很茫然。
我主要在这里阅读关于 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 种情况来寻找吗?
我之所以问这个问题,是因为当我使用此函数时,有时会有两个非常相似但未被匹配的字符串。例如,在我的当前样本数据集中,对于待匹配字符串 "Total replenishment lead time (in workdays)",它被匹配到了 "PLANNING_TIME_FENCE_CODE" 和 "BUILD_IN_WIP_FLAG",但没有匹配到正确答案 "FULL_LEAD_TIME"。尽管正确答案也包含 "lead time",但它根本没有与待匹配字符串进行匹配。为什么?而且,那些看起来不像待匹配字符串的其它字段却可以被匹配。为什么?我现在很茫然。