原标题:推荐阅读|如何有效搭配公司名称
本文来自腾讯疾控中心
如何有效匹配原地址https://www.zhucesz.com/的公司名称
来源:转自dataxon微信官方账号
1.背景和主要问题
在项目中,两个独立的系统需要匹配公司名称来实现数据通信。一个体系有40万家公司,另一个体系有3600家公司。如果两个系统以SQL LIKE的形式直接链接,发现只能匹配到1100多个公司名称。如果剩下的2500家左右的公司需要通过纯人工的方式进行人工匹配,不仅工作量大而且效率低。
通过对不良案例的分析,发现公司名称不匹配主要存在两个问题:
https://www.zhucesz.com/公司的简称有多种形式。
公司的简称往往是人们根据习惯约定的,没有标准的形式。比如深圳市腾讯计算机系统有限公司的简称就是腾讯。通过字符串包含很容易将缩写与公司全称的一部分匹配起来。而很多公司的缩写是其他形式的,比如中国银行中国银行中国石化中国石油化工股份有限公司中国石化,都是由公司全称的不同部分拼接而成,直接通过字符串的模糊匹配很难达到很好的效果。另外,有些公司可能会有各种简称,比如中国东方航空股份有限公司,有的简称东航,有的简称东航。
https://www.zhucesz.com/,的简称,单词量少的时候错误率高。
比如深圳雷丁教育咨询有限公司的简称是雷丁,但是当你以LIKE的形式把雷丁拿到系统中进行匹配的时候,你会发现总共有35个带有雷丁子串的公司全称,其中一些如下:
北京大岳文化传播有限公司。
成都岳跃文化传播有限公司
杭州艺悦文化传媒有限公司
北京丁岳文献信息技术有限公司
深圳华月文化传媒有限公司
上海沁悦文化科技发展有限公司
这些匹配的公司全称往往包含语义碎片化的匹配子串,而直接包含匹配无法进行语义分割,导致匹配错误率随着缩写词的减少而增加。
2.方案设计
基于上述问题,处理公司名称匹配的工作主要分为两部分:
数据清洗,主要是通过分词对公司全称进行拆解,并结合可能的简称形式;
模糊匹配,主要基于最短编辑距离算法,计算待猜短名和待匹配短名的匹配得分,然后通过筛选匹配得分最高的,找到最佳匹配结果。
以下是对各部分工作的详细介绍:
https://www.zhucesz.com/正式表示公司的全称。
公司名称一般由四部分组成:地区、关键字(x)、行业和公司后缀(Org_Suffix)。
例如,深圳王湾博通科技有限公司就位于深圳。王湾博通是关键词,技术是行业词,有限公司是公司的后缀,所以我们可以用RXIO来表达这家公司的名称结构。
其他结构的公司名称也可以用类似的方式表示,例如:
https://www.zhucesz.com/建筑的可能缩写形式
有了公司全称的正式表示,接下来就是猜测它可能的缩写结构了。
比如中国移动有限公司的缩写是中国移动,可以表示为RXO=R[1-1]X,其中R[1-1]代表取第一个区域分段的第一个字;
比如中国联通有限公司的缩写是中国联通,可以表示为RXO=RX,所以我们得到RXO,这是公司全称的形式。有两种可能的缩写形式:R[1]X和RX。
以此类推,通过统计一些公司全称对应的简称形式,可以得到一个规则,来表达可能对应不同形式结构的公司全称的简称形式:
同时,你可以不断地给它添加新的规则。当你将这些规则应用于https://www.zhucesz.com/步骤中获得的所有公司名称的正式表示的数据时,你可以得到与每个公司的全称相对应的一个可能的缩写形式,如图所示:
https://www.zhucesz.com/最短编辑距离匹配
有了公司简称的所有可能组合,就可以用levenshtein算法计算它们的匹配度。如果匹配分数达到一定阈值,则可以认为是匹配的。
常用的levenshtein算法有最短编辑距离算法和余弦相似度算法,这里使用最短编辑距离算法进行匹配。最短编辑算法介绍如下:
最小编辑距离算法
给定任意两个字符串X和Y,使用以下三个操作将字符串X更改为字符串Y:
插入操作,成本为1;
成本为1的删除操作;
替换,代价为2,这里是Levenshtein编辑距离,其他算法中的替换代价与其他两类运算(1)相同;
比如“意图”变成“执行”,有三个替换,一个删除,一个插入,那么这两个词的最短编辑距离就是8(如下图)。
更多参考:
https://www.zhucesz.com/
具体编程实现请参考:
https://www.zhucesz.com/
计算出最短的编辑距离后,就可以根据它们的字符串长度计算出相似度。公式如下:
相关代码如下:
通过相似度计算公式,可以计算出一个公司名称所有可能的缩写形式与待匹配公司名称的相似度,然后取得分最高的一个作为两家公司的最终匹配得分。效果如下:
3.提高https://www.zhucesz.com/最短编辑距离的匹配问题
在查看匹配分数的时候,我们会发现有些公司的匹配结果明显错误,但是他们的匹配分数却很高。比如深圳市林云科技有限公司的简称,猜测林云科技与云药科技相似度最高,匹配度为92分。而云耀网络(上海)有限公司和云耀科技的匹配分只有83分。
显然,用最短的编辑距离来计算公司名称的相似度,根本就忽略了公司名称不同部分的权重不同,导致技术与云远程关键词匹配一样重要,甚至更重要。
改进的https://www.zhucesz.com/最短编辑距离匹配
鉴于仅使用最短编辑算法进行匹配无法体现语义相似度,在匹配中引入了公司名称各部分的权重计算。在相同的编辑距离下,如果权重较高的词匹配,匹配度会更高。如云耀网络科技(上海)有限公司、深圳林云科技有限公司在分词中标注了关键词、行业词、地方名词,如图:
匹配时,分别计算各部分的匹配分数,然后根据8:133601的权重分布计算最终的加权匹配分数。这就纠正了直接匹配的不足,使得关键词匹配分数越高,公司最终匹配分数越高:
https://www.zhucesz.com/推广效应
与SQL LIKE的原始形式仅匹配1100家公司相比,该方案增加了456家匹配分数为100的公司,789家匹配分数超过90的公司和1810家匹配分数超过80的公司。
4.缺点和方向
该方案主要基于字符串模糊匹配的语义分裂和加权匹配,其效果取决于早期分词和形式分类的质量。如果公司名称不能按照语义正确拆分归类到不同的类别,后期的加权匹配效果会大打折扣。
随着人工智能的发展,基于深度学习的语义匹配已经成为NLP中的基础技术,我们也可以参考这项技术。
5.总结和沉淀
本文需要解决的是公司简称与全称的匹配问题。传统的字符串模糊匹配通常在匹配字符数相差很大的情况下(简称一般2 ~ 6个字符长,全名一般10个字符以上)得分较低。针对这一问题,本文总结了一些提高匹配率的途径和方法,主要包括以下四个步骤:
正式确定公司的全称。划分公司全称,根据各部分的词性正式表示公司名称结构(RXIO)。
可能是猜测的简短形式。根据既定的规则,可能的缩写形式
所有要匹配的条目和缩写都经过加权模糊匹配。匹配时,根据最短编辑距离计算XIRO各部分的匹配得分,然后根据各部分的权重计算最终的加权匹配得分,以减少非关键词部分对匹配得分的影响。
在所有匹配项中选择最高分作为本次全名和短名匹配的最终得分。
因此,当传统的单字符串模糊匹配无法有效解决匹配问题时,我们尝试结合分词和自定义规则,再结合字符串模糊匹配和加权系数,可能会取得更好的效果。
参考数据
[1]
街霸: https://www.zhucesz.com/
责任编辑: