一种装备型号名称的模糊匹配方法与流程

文档序号:14303537阅读:731来源:国知局
一种装备型号名称的模糊匹配方法与流程

本发明属于计算机数据仓库技术领域,尤其涉及一种装备型号名称的模糊匹配方法。



背景技术:

在数据仓库中,为了保证数据质量,数据仓库工程通常开始于历史数据的读取,并要进行数据清洗和质量控制。然而大多数情况下,数据源来自企业中各个系统,并不是所有的数据都有统一的标准、这样在做etl过程的时候就需要将需要的数据清洗出来,而清洗的过程中主要是对数据进行操作,因此采用一个高效的合理的算法必不可少。

jaro-winkler距离(winkler,1990)是计算2个字符串之间相似度的一种算法。它是jaro距离算法的变种。主要用于数据连接重复记录处理,jaro-winkler距离最后得分越高说明相似度越大。jaro-winkler距离适合于比如名称这样较短的字符之间计算相似度。0分表示没有任何相似度,1分则代表完全匹配。

jaro-winkler距离算法适合于英文字符名称的模糊匹配,对于中文装备名称来说存在如下问题:

(1)中文汉字不是单字节表示的,根据编码不同至少为双字节表示一个汉字;

(2)中文装备名称表示形式多样,比如对数字可表示为汉字,汉字可能由拼音首字母代替;

(3)装备名称中的数字串不能按照字符进行比较,比如“歼10”和“歼11”从字面上看很接近,只有一个字符不同,jaro-winkler距离非常很高,但两者表示的是完全独立的两种装备。

基于以上原因,需要一种基于改进jaro-winkler距离算法的装备型号名称的模糊匹配方法,解决装备型号名称的数据清洗、转换问题。

字符串的模糊匹配处理更多的是用在模糊查询上,因而对模糊匹配的精确性要求不高,仅需要近似匹配即可。魏方征在专利《关键字模糊匹配方法及装置》(申请号201410722475.1)中是采用通过剔除干扰字符的方式实现模糊匹配。曾红在专利《字符串模糊匹配方法及装置》(申请号201610343584.1)中是通过获取源文本和各个目标文本匹配的字符数量来计算匹配度,无法解决前述提出的问题。叶亚明、王威振在专利《字符串匹配系统及方法》(申请号201410011078.3)中将字符串分词为词组并标注是否为关键维度来计算字符串的匹配度,无法解决前述提出的问题。



技术实现要素:

本发明的目的在于提供一种模糊匹配中文装备名称的方法,通过对中文装备名称表示方法进行分析,对jaro-winkler距离算法进行改进,实现对装备名称脏数据的清洗转换。

实现本发明目的技术解决方案为:一种装备型号名称的模糊匹配方法,包括以下步骤:

步骤1,根据装备型号名称特点,将标准装备型号名称进行扩充,同一个名称扩充为3-4种常见表示形式;

步骤2,将待匹配装备型号名称与数据字典中所有扩充的装备型号名称进行匹配,依次计算改进jaro-winkler距离;jaro-winkler距离是测量两个字符串序列之间编辑距离的度量,jaro和winkler是两个提出者的名字。

步骤3,从所有改进jaro-winkler距离中选取最大值,与阈值进行比较,大于阈值则表示与扩充装备型号名称的原始型号名称匹配,否则为不匹配,需要人工干预或考虑扩充数据字典。例如对于匹配结果小于指定阈值的装备名称,需要人工判断属于已有装备名称还是新的装备名称,如果是新的装备名称需要将其增加到数据字典中。

步骤1包括如下步骤:

步骤1-1,通过分析装备名称的表现形式,构建装备名称转换规则。读取数据库中的装备型号名称字典表,将每一原始装备型号名称扩充为常见的表现形式,例如“歼10”扩充为“歼10”、“j10”、“歼十”、“j十”共四种表现形式,即利用汉字、汉字的拼音首字母和阿拉伯数字和数字的汉字表现形式进行交叉组合;因为一级汉字是按照拼音排序的,从汉字的机内码中取出区码和位码,根据区码和位码的范围,能获取到汉字的拼音首字母;其他非常用汉字编码按笔画排序,通过建立一一对应的汉字编码与拼音首字母对照表,能够实现汉字到拼音首字母的转换;将装备名称的汉字转换为拼音首字母。

对于装备名称中的数字建立与中文大写数字对照关系,转换成中文大写数字。

步骤1-2,将原始装备型号名称与扩充后的装备型号名称进行对应存储,并建立对照关系。

步骤2包括如下步骤:

步骤2-1,将待匹配装备型号名称字符串与一个扩充的装备型号名称字符串进行匹配计算,计算出改进jaro距离dj,dj表示最后得分;

步骤2-2,在jaro距离基础上,强化装备型号名称中数字编号的比重,增强数字编号对匹配距离的影响,得到新的得分dg,当数字不相等时,认为字符串不相等,距离为0;

步骤2-3,在步骤2-2基础上,计算得到改进jaro-winkler距离,判断是否还有未参与比对的扩充的装备型号名称,如果有,转步骤2-1继续计算,否则转步骤3;

步骤2-1中,通过如下公式计算两个装备名称给定字符串s1和s2的jaro距离dj:

其中,dj表示最后得分,m是匹配的字符数,t是换位的数目。

两个分别来自s1和s2的字符如果相距不超过时,就判定这两个字符是匹配的,所有匹配的字符数就是m值;而这些相互匹配的字符m则决定了换位的数目t,不同顺序的匹配字符的数目的一半即为换位的数目t。其中字符串长度是将一个中文汉字作为1个单位长度,一个英文字符作为一个单位长度,连续的数字串作为一个单位长度。

步骤2-2中,通过如下公式计算得到新的得分dg:

其中,k为数字比重常量,在0-1之间,一般取0.5。

步骤2-3包括:jaro-winkler算法给予了起始部分就相同的字符串更高的分数,它定义了一个前缀范围p,对于要匹配的两个字符串,如果前缀部分有长度为l的部分字符串相同,则改进jaro-winkler距离d为:

d=dg+l*p(1-dg)

其中,p是一个范围因子常量,用来调整前缀匹配的权值,但是p的值不能超过0.25,因为这样最后得分可能超过1分,winkler的标准默认设置值p=0.1。

步骤3包括如下步骤:

步骤3-1,假设步骤1中扩充的装备型号名称有n个,则步骤2最终得到了n个改进jaro-winkler距离,从n个改进jaro-winkler距离中选取最大值。

步骤3-2,将最大值与阈值dw进行比较,dw取值范围是0.5至1.0之间,建议取值0.8,大于阈值dw则表示与扩充装备型号名称的原始型号名称匹配,否则为不匹配,需要人工干预或考虑扩充数据字典;若仍有未匹配的待匹配装备型号名称,转步骤2,否则结束计算。

有益效果:本发明方法可以针对装备器材名称的数据清洗转换进行自动处理。本发明充分利用装备数据名称中数字编号的特殊重要意义,强化数字在名称相似对比中的占比,实现装备名称的模糊匹配,解决了在数据清洗过程中针对装备名称数据的自动清洗转换问题,在大数据量清洗转换下,大幅提高转换效率。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。

图1是本发明的装备型号名称模糊匹配的处理流程。

图2是本发明的改进jaro-winkler距离计算流程。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1和图2所示,本发明包括以下步骤:

步骤1,根据装备型号名称特点,将数据字典中的标准装备型号名称按照常见表示形式进行扩充,同一个名称扩充为3-4种常见表示形式;

步骤2,将待匹配装备型号名称与数据字典中所有扩充的装备型号名称进行匹配,依次计算改进jaro-winkler距离;

步骤3,从所有改进jaro-winkler距离中选取最大值,与阈值进行比较,大于指定阈值则与扩充装备型号名称的原始型号名称匹配,否则为不匹配,需要人工干预或考虑扩充数据字典。

步骤1包括如下步骤:

步骤1-1,读取数据库中的装备型号名称字典表,将每一原始装备型号名称扩充为常见的表现形式。假设数据字典中仅有“歼10”和“歼11”两项,待匹配装备型号名称为“歼-10”、“j-11”和“歼31”;

则“歼10”扩充为“歼10”、“j10”、“歼十”、“j十”;“歼11”扩充为“歼11”、“j11”、“歼十一”、“j十一”。

步骤1-2,将原始装备型号名称与扩充后的装备型号名称进行对应存储,并建立一对多的对照关系,如表1所示。

表1:本发明方法实施实例试验的数据字典扩充示例

步骤2包括如下步骤:

步骤2-1,将待匹配字符串与一个扩充的装备型号名称进行匹配计算,计算出改进jaro距离,如表2的“jaro距离”列所示;

表2:本发明方法实施实例试验的计算结果

步骤2-2,在jaro距离基础上,强化装备型号名称中数字编号的比重,增强数字编号对匹配距离的影响,当数字不相等时,认为字符串不相等,距离为0,如表2的“改进jaro距离”列所示。

步骤2-3,在步骤2-2基础上,计算jaro-winkler距离,如表2的“改进jaro-winkler距离”列所示;

若还有未参与比对的扩充的装备型号名称,转步骤2-1继续计算,否则转步骤3;

步骤3包括如下步骤:

步骤3-1,从所有改进jaro-winkler距离中选取最大值,如表3“最大距离列”所示。

表3:本发明方法实施实例试验的匹配结果结果

步骤3-2,与阈值进行比较,大于指定阈值则与扩充装备型号名称的原始型号名称匹配,否则为不匹配,需要人工干预或考虑扩充数据字典。选取距离阈值0.8,得到匹配结果如表3“对应匹配结果”列所示。

本发明提供了一种装备型号名称的模糊匹配方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1