基于TF-IDF和KNN的模糊字符串匹配优化的实际应用
使用背景
由于最近公司数据清理的需求,需要对两组中文名称数据进行匹配,在使用Excel的基本匹配功能之后,在待匹配组大概还有900多条数据没有得到匹配,于是便想用其他方法来匹配,以期望在获得不错准确率的前提下提高效率。
基于TF-IDF和KNN的模糊字符串匹配
基于TF-IDF和KNN的模糊字符串匹配优化具体原理介绍请看这篇文档:
具体效果
在网上寻找方法的过程中,找到了这篇文章《【NLP】基于TF-IDF和KNN的模糊字符串匹配优化》文章中对“乔治·华盛顿和G·华盛顿”的匹配对比,这不就正是我需要的吗,于是便按照教程写了程序方法,实际使用下来,哟嚯,果真不错。
感觉满意的地方有两点:
-
速度太快了
我的待匹配数组有900多条,但匹配组中有四万九千条,也就是从50000条中找出900条匹配上,总用时为:7.16秒,这速度比FuzzyWuzzy快了可能上万倍。 -
准确度还可以
因为是数据匹配,所以对准确度要求很高,匹配错了就会影响后边的工作。所以在匹配完成后还需要手工核验,在抛去ratio50以下的数据,对ratio50以上的匹配进行区间为10的准确度统计,结果如下:
| 50-60 | 60-70 | 70-80 | 80-90 | 90-100 |
|---|---|---|---|---|
| 0.20 | 0.18 | 0.23 | 0.60 | 0.79 |
同时,又对ratio在[90,100]区

为了高效完成数据清理中的名称匹配任务,本文介绍了如何利用TF-IDF和KNN实现模糊字符串匹配。相比于FuzzyWuzzy库,这种方法在速度上有显著优势,能在短时间内从大量数据中找出高精度的匹配结果。尽管存在语义匹配的局限性,该方法仍能显著提高工作效率,为数据匹配提供有力支持。

1138

被折叠的 条评论
为什么被折叠?



