模糊匹配——编辑距离
wils
创作者俱乐部成员
今天的问题是:对于互不包含的字符串,怎么进行模糊匹配:
广东美雅股份有限公司 | 康达尔A |
海南珠江实业股份有限公司 | 琼珠江A |
河南双汇实业股份有限公司 | 粤美雅 |
湖南正虹饲料股份有限公司 | 株州庆云 |
南宁糖业股份有限公司 | 正虹饲料 |
深圳康达尔(集团)股份有限公司 | 新希望 |
四川新希望农业股份有限公司 | 双汇实业 |
株洲庆云发展股份有限公司 | 南宁糖业 |
先在JS宏里,引入这个levenshtein编辑距离库:
https://github.com/gustf/js-levenshtein
然后在公式里,用编辑距离除以两个字符串长度之和,取这个商的最小值所对应的行
💡 | =LET(a,MAP($A$1:$A$8,LAMBDA(x,lev(x,B1)/LEN(x&B1))),INDEX($A$1:$A$8,MATCH(MIN(a),a,0))) |
这里除以两个字符串长度之和,还是有点粗糙,可以再用分词库将字符串分词、排序、去重之后,再计算编辑距离,可以针对不同情况进行优化。
例子写的比较粗糙,只是演示JS宏通过引入编辑距离库,可以进行比较准确的模糊匹配
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员