模糊匹配3.0

2021-12-20 18:28:00 浏览数 (2)

这是时隔3个月的推文。

这是为感谢大家的支持,对去年发布的【模糊匹配工具】的进一步升级。关于之前的推文可以在点这里查看:

  • 解决文字模糊匹配的小工具
  • 快速模糊匹配——速度提升几千倍!!!
  • 模糊匹配工具2.0

使用场景不变,简单而言,即是匹配两列相似的文本。比如:我们有一份上市公司简称的数据,如下图所示:

我们还有一份公司全称的数据,希望对两者进行匹配。

让简称对应上全称,结果如下:

【更新一】—— 优化使用方法

前两版打开程序后需要输入一组6个参数,如下所示:

代码语言:javascript复制
G:Project匹配表1.xlsx,电视表,频道节目1,G:Project匹配表2.xlsx,Sheet1,频道节目2

由于涉及大小写、分隔符、文件路径等各种原因,估计有挺多用户在输入的时候难免出错。出错后,程序就一闪而过,大家可能都不知道发生了什么事情。这次升级,对这个输入过程进行了优化:

  1. 首先选择匹配的计算逻辑:
    1. 直接按下回车,将使用两列字段整体匹配方法,速度较快;
    2. 输入2,按回车,将使用逐行匹配的方法,速度较慢,可能更准。
  1. Excel文档的路径不需要手动输入。当出现如下提示时,按下回车,即会弹出窗口以供选择文件。
  1. 选择完Excel文档之后,程序列出该Excel里所有【未隐藏】的表名,接着我们从中选填表名。如果所填的文字,跟表名不一致,程序会提示填错,让你继续填,直到填对为止才能进入下一步。
  1. 接下来,程序将会列出所选表里所有字段的名称,我们从中选填。这一步同样会对填错的字段进行检查,直到填对位置。
  1. 上述三个步骤重复一次,即完成2组匹配数据6个参数的输入。成功后,自动进入匹配运算。
  1. 另外,程序还增加了一些报错提示,减少由于操作不合规范引起的闪退。
  2. 匹配结果输出到【输出结果】文件夹,以【匹配表-年月日-时分秒】的方式命名,不覆盖旧文件。

【更新二】—— 优化匹配准确度——优化分词

前两版的分词依据是【辅助资料】文件夹里的【dict.txt】。文档共三列:词、词频、词性。程序主要依据这里出现过的词语,对所需匹配的文本进行拆分。

使用统一的分词依据表,在一些特殊场景下,匹配效果不佳。因此本次升级,会对第一个匹配列进行分析,提取出前10%最常出现的字词,添加到分词依据中。

用户也可以自己修改【dict.txt】文档,增加或减少里面的字词,以控制分词效果。文档中三列,填写时,三列用空格隔开。其中只有第一列是必填的。后两列可以省略,建议不熟悉的朋友不填。

【更新三】—— 优化匹配准确度——自定义替代词

还有读者朋友提到,如果我需要匹配的文本具有同义词(或笔误、或别称),比如同义词a出现在A列,同义词b出现在B列,怎么办?由于程序匹配的依据是文本相似度,所以对于文本不一样的同义词,是无法直接识别的。

对于这种情况,本次升级为大家提供了自定义同义替代词的解决办法。在【辅助资料】文件夹中的【对照表.xlsx】中,有两个sheets:【匹配表1】和【匹配表2】,分别用来自定义两个匹配列的同义替代词。如下图所示,表中有两列,左侧列为【原名称】,即原始匹配列中的名称;右侧列为【统一名称】,即多个同义词最后统一含义的名称。

比如,“生抽”和“味极鲜”,两个文本差别极大,当另一个匹配列中只有“酱油”的时候,前两个文本是无法匹配到“酱油”的。通过图中的设置,程序会在匹配过程中,把“生抽”、“味极鲜”替换成“酱油”,那么就可以跟另一列匹配上了。后面的“徐闻”和“上海”同理。

这个【对照表.xlsx】的内容可以为空,但请不要更改文件名、sheets名和列名。

【更新四】—— 解决部分win7系统无法运行的问题

也曾有读者朋友反映win7打开程序后直接闪退。后来找到原因是部分比较老的win7缺少所需的运行库。解决方案是双击安装【辅助资料】里的补丁。

0 人点赞