基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf

上传人:li****8 文档编号:4025501 上传时间:2018-08-12 格式:PDF 页数:8 大小:494.55KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510047831.9

申请日:

2015.01.30

公开号:

CN104572627A

公开日:

2015.04.29

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/27申请日:20150130|||公开

IPC分类号:

G06F17/27

主分类号:

G06F17/27

申请人:

深圳市华傲数据技术有限公司

发明人:

王明兴; 吴颖徽; 马帅; 汤南; 贾西贝

地址:

518057广东省深圳市南山区高新区中区高新中一道9号软件大厦7层713、715、716室

优先权:

专利代理机构:

深圳市华优知识产权代理事务所(普通合伙)44319

代理人:

余薇

PDF下载: PDF下载
内容摘要

本发明涉及一种基于信息熵的对象名称编辑距离计算方法及匹配方法。该编辑距离计算方法包括:步骤10、统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;步骤20、根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,得到字符的编辑代价;步骤30、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和。本发明还提供了相应的匹配方法。本发明能够更准确的反映两个对象名称字符串的绝对差异;本发明能够有效识别两个对象名称之间的相似度,处理名称类数据匹配问题效果更佳。

权利要求书

权利要求书
1.  一种基于信息熵的对象名称编辑距离计算方法,其特征在于,包括:
步骤10、收集所有待识别对象名称,统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;
步骤20、对每个字符,根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,根据字符的信息熵得到字符的编辑代价;
步骤30、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和。

2.  根据权利要求1所述的基于信息熵的对象名称编辑距离计算方法,其特征在于,字符的编辑代价=字符的信息熵=log(totalNum/freq)。

3.  根据权利要求1所述的基于信息熵的对象名称编辑距离计算方法,其特征在于,采用动态规划方法计算对象名称之间的编辑距离。

4.  根据权利要求1所述的基于信息熵的对象名称编辑距离计算方法,其特征在于,所述对象名称为机构名称、药品名称或建筑物名称。

5.  根据权利要求1所述的基于信息熵的对象名称编辑距离计算方法,其特征在于,所述对象名称包含中文字符或英文字符。

6.  一种基于信息熵的对象名称匹配方法,其特征在于,包括:
步骤1、收集所有待识别对象名称,统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;
步骤2、对每个字符,根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,根据字符的信息熵得到字符的编辑代价;
步骤3、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和;
步骤4、根据对象名称之间的编辑距离计算对象名称之间的相似度。

7.  根据权利要求6所述的基于信息熵的对象名称匹配方法,其特征在于,以d(n)(m)表示字符串长度为n和字符串长度为m的两个对象名称之间的编辑距离,则该两个对象名称之间的相似度similarity=1.0-d(n)(m)/(d(n)(0)+d(0)(m))。

8.  根据权利要求6所述的基于信息熵的对象名称匹配方法,其特征在于,以d(n)(m)表示字符串长度为n和字符串长度为m的两个对象名称之间的编辑距离,则该两个对象名称之间的相似度similarity=1.0-d(n)(m)/max(d(n)(0),d(0)(m))。

9.  根据权利要求6所述的基于信息熵的对象名称匹配方法,其特征在于,字符的编辑代价=字符的信息熵=log(totalNum/freq)。

10.  根据权利要求6所述的基于信息熵的对象名称匹配方法,其特征在于,采用动态规划方法计算对象名称之间的编辑距离。

说明书

说明书基于信息熵的对象名称编辑距离计算方法及匹配方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于信息熵的对象名称编辑距离计算方法及对象名称匹配方法。
背景技术
对象识别又称记录匹配,其目的是从(不可靠的)各种数据源中识别出表示同一现实对象的记录。对象识别在数据清洗、数据集成、数据分析等应用中具有重要作用。对象识别所用的数据中,一类普遍遇到且非常重要的数据是名称类数据,如机构名称、药品名称、建筑物名称等。如何有效的计算出两个名称之间的相似度对对象识别至关重要。
名称匹配的结果通常通过比较字符串相似度来得出。现有的字符串相似度计算方法包括编辑距离、向量空间、QGram等。编辑距离是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数,许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符,插入或删除一个字符的编辑代价为1,对于替换操作,当两个字符相同时替换操作的编辑代价为0,否则为1。相似度是两个字符串之间相似程度的度量。两个字符串之间的编辑距离本身就是一种相似度量,通常使用动态规划算法来计算编辑距离。直观上,编辑距离越小,相似度越大。
应用中,人们常根据预定的公式将编辑距离变换为相似度来评估字符串之间的相似度。编辑距离反映了两个字符串的绝对差异,而相似度以一个[0,1]之间的数值反映两个字符串的相似程度,数值越大相似程度越高。常用的基于编辑距离计算两个字符串相似度(similarity)的公式如:
similarity=1.0-d(n)(m)/(m+n) (1)或
similarity=1.0-d(n)(m)/max(m,n) (2);
其中,d(n)(m)即d(n,m)表示两个字符串之间的编辑距离;m和n分别为两个字符串的长度;计算得出的相似度越大,表示2个字符串相似度越高。
但是,现有的字符串相似度计算方法不能很好的识别两个对象名称之间内在的相似度。例如,当按照公式(1)采用传统的编辑距离计算方法来判断“深圳市华傲数据技术有限公司”与“华傲数据技术有限公司”时,得出的相似度较低为0.77,与相似度结果不同,人们很容易判别出这两个名字实际上代表一家企业;“天津市南开区宏业汽车配件经营部”与“天津市南开区久晟汽车配件经营部”之间的相似度为0.87,但人们知道它们代表的是两家企业。因此,用户利用编辑距离方法进行名称匹配时,会得出一些不正确的结论,无法有效识别两个对象名称之间的相似度。
发明内容
本发明的目的在于提供一种基于信息熵的对象名称编辑距离计算方法,改进两个对象名称之间编辑距离的计算。
本发明的另一目的在于提供一种基于信息熵的对象名称匹配方法,改进两个对象名称之间相似度的识别。
为实现上述目的,本发明提供一种基于信息熵的对象名称编辑距离计算方法,包括:
步骤10、收集所有待识别对象名称,统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;
步骤20、对每个字符,根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,根据字符的信息熵得到字符的编辑代价;
步骤30、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和。
其中,字符的编辑代价=字符的信息熵=log(totalNum/freq)。
其中,采用动态规划方法计算对象名称之间的编辑距离。
其中,所述对象名称为机构名称、药品名称或建筑物名称。
其中,所述对象名称包含中文字符或英文字符。
本发明还提供一种基于信息熵的对象名称匹配方法,包括:
步骤1、收集所有待识别对象名称,统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;
步骤2、对每个字符,根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,根据字符的信息熵得到字符的编辑代价;
步骤3、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和;
步骤4、根据对象名称之间的编辑距离计算对象名称之间的相似度。
其中,以d(n)(m)表示字符串长度为n和字符串长度为m的两个对象名称之间的编辑距离,则该两个对象名称之间的相似度similarity=1.0-d(n)(m)/(d(n)(0)+d(0)(m))。
其中,以d(n)(m)表示字符串长度为n和字符串长度为m的两个对象名称之间的编辑距离,则该两个对象名称之间的相似度similarity=1.0-d(n)(m)/max(d(n)(0),d(0)(m))。
其中,字符的编辑代价=字符的信息熵=log(totalNum/freq)。
其中,采用动态规划方法计算对象名称之间的编辑距离。
综上所述,本发明基于信息熵的对象名称编辑距离计算方法改进了编辑距离的计算方式,更准确的反映两个对象名称字符串的绝对差异;本发明基于信息熵的对象名称匹配方法能够有效识别两个对象名称之间的相似度,处理名称类数据匹配问题效果更佳。
附图说明
图1为本发明基于信息熵的对象名称编辑距离计算方法一较佳实施例的流程图。
具体实施方式
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其有益效果显而易见。
参见图1,其为本发明基于信息熵的对象名称编辑距离计算方法一较佳实施例的流程图。该基于信息熵的对象名称编辑距离计算方法主要包括:
步骤10、收集所有待识别对象名称,统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;
步骤20、对每个字符,根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,根据字符的信息熵得到字符的编辑代价;
字符的信息熵可以用公式log(totalNum/freq)来计算,字符的编辑代价可以简单的令其等于字符的信息熵,log可以取2、e或其它任意适合的常数为底。在本发明中,字符的信息熵或字符的编辑代价的计算公式可以根据如下条件选定:如果某个字符出现的越频繁,其信息含量越低,编辑代价也越低;反之,说明其信息含量高,编辑代价越大,对对象的区分更有价值。
通过步骤10和20,可以计算得出每个字符的编辑代价;由此可得到所有字符的编辑代价表(costTable),可用于进一步计算两个对象名称的编辑距离和/或相似度。
步骤30、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑代价,对于替换操作,当两个字符相同时替换的编辑代价为0,否则为两个字符的编辑代价之和。
本发明基于信息熵的对象名称编辑距离的计算可以采用现有的算法来实现,例如可以采用动态规划方法计算对象名称之间的编辑距离。本发明考虑到对象名称的每个字符在整个名称中的权重不同,引入字符的信息熵改进编辑距离的计算,将字符的信息熵与编辑距离计算相关联,相较于原始的编辑距离计算,将插入或删除一个字符的编辑代价由1替换为该字符的编辑代价,对于替换操作,当两个字符不同时的编辑代价由1替换为该两个字符的编辑代价之和,从而最终的编辑距离计算结果能够更准确的反映两个对象名称字符串的绝对差异,最终的编辑距离计算结果除可以用于进一步计算对象名称的相似度,也可以在适当的应用领域代替原始的编辑距离计算结果来使用。
本发明还相应提供了基于信息熵的对象名称匹配方法,根据基于信息熵的对象名称编辑距离计算对象名称之间的相似度。本发明考虑到对象名称的每个字符在整个名称中的权重是不一样的,有些字符是很关键的,而有些字符在某些场合些通常会忽略,如机构名“深圳市华傲数据技术有限公司”中,“深圳市”3个字符代表企业所处区域,当在某个特定区域内计算一批机构名之间的相似度时(如识别所有广东省内的企业),这3个字符通常是无关紧要的;“华傲”是名称中最关键的部分;“数据技术”代表企业的类别,有一定的参考意义;“有限公司”代表企业的性质,通常在比较时也是无关紧要的。因此比较名称时需要区分每个字符的权重。本发明的方案是基于编辑距离来计算相似度方法,同时利用每个字符的信息熵,信息熵越大的字符其编辑距离(编辑代价)也越大。
参照利用动态规划算法来计算原始编辑距离的过程,下面通过伪代码来具体描述本发明基于信息熵的对象名称编辑距离计算方法及对象名称匹配方法。两个对象名称的编辑距离及相似度计算方法如下:
1.设对象名称1(name1)的长度为n,对象名称2(name2)的长度为m,初始化一个n+1行,m+1列的矩阵:d[n+1][m+1];设定d[0][0]为0;
本发明以d(n)(m)即d(n,m)来表示字符串长度为n和字符串长度为m的两个对象名称之间的编辑距离;
2.对矩阵的第一列值,其计算方法为:
for(i<-1ton){
d(i)(0)=d(i-1)(0)+insertCost(name1.charAt(i-1))
}
其中insertCost(name1.charAt(i-1))为插入对象名称1中第i-1个字符(编号从0开始)的代价,也即第i-1个字符的编辑代价,可在编辑代价表中查得。d(i)(0)的含义为插入对象名称1的0到i个字符总的编辑代价;
3.对矩阵的第一行值,其计算方法为:
for(j<-1to m){
d(0)(j)=d(0)(j-1)+insertCost(name2.charAt(j-1))
}
其中insertCost(name2.charAt(j-1))为对象名称2第j-1个字符的编辑代价;
4.计算2个对象名称可能的最多的编辑代价为:maxCost=d(n)(0)+d(0)(m);
5.计算d(i)(j)中其他行列的值,对于每行、每列d(i)(j)的值,计算方法如下:
a.计算在name1上i-1位置删除字符的代价:
delCosti=d(i-1)(j)+delCost(name1.charAt(i-1))
b.计算在name2上j-1位置删除字符的代价:
delCostj=d(i)(j-1)+delCost(name2.charAt(j-1))
c.计算name1上i-1位置和name2上j-1位置字符替换的代价:
change=d(i-1)(j-1)+changeCost(name1.charAt(i-1),name2.charAt(j-1))
其中2个字符替换的代价为:如果2个字符相同,则替换的代价为0;否则为2个字符编辑代价之和。
d.d(i)(j)的值取上面3个代价中的最小值:
d(i)(j)=min3(delCosti,delCostj,change)
6.所有d(i)(j)的值计算完毕后,d(n)(m)即为name1和name2之间编辑的最小代价,编辑代价越高,说明两者之间越不相似。因此name1和name2之间的相似度可以表示为:
similarity=1.0-d(n)(m)/maxCost,即similarity=1.0-d(n)(m)/(d(n)(0)+d(0)(m))。
name1和name2之间的相似度也可以表示为similarity=1.0-d(n)(m)/max(d(n)(0),d(0)(m)),或者采用其它适合的相似度计算公式。
采用上述的近似度计算公式时,公式log(totalNum/freq)的底数在计算过程中可以通过换底公式消去,因此底数的选取不影响相似度的计算结果。
至此,2个对象名称之间的相似度计算完毕。
本发明基于信息熵的对象名称编辑距离计算方法及对象名称匹配方法可以适合于各类对象名称,特别是机构名称、药品名称或建筑物名称,而且优选适用于同一类待识别对象名称的匹配,例如,待识别数据均为机构名称,均为药品名称或均为建筑物名称。对象名称中可以包含中文字符或英文字符,其它语言的字符,或其它符号。
实验表明,相比于原始的编辑距离计算相似度的方法,本发明的计算效果有明显的改善,例如:
1.对于“天津市南开区宏业汽车配件经营部”与“天津市南开区久晟汽车配件经营部”,原始编辑距离相似度为0.867,本方法计算出的值为0.59,本方法更能区分它们是不同的企业;
2.对于“天津市南开区星辰计算机耗材经营部”和“天津市南开区顺惟计算机耗材经营部”,原始编辑距离相似度为0.875,本方法计算出的值为0.576,同样更具有区分度;
3.对于“南开区天诚医药保健品研究所”和“天津市南开区天诚医药保健品研究所”,原始编辑距离相似度为0.8125,本方法计算出的值为0.998,本方法更能揭示它们代表同一家企业。
综上所述,本发明基于信息熵的对象名称编辑距离计算方法改进了编辑距离的计算方式,更准确的反映两个对象名称字符串的绝对差异;本发明基于信息熵的对象名称匹配方法能够有效识别两个对象名称之间的相似度,处理名称类数据匹配问题效果更佳。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf_第1页
第1页 / 共8页
基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf_第2页
第2页 / 共8页
基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf》由会员分享,可在线阅读,更多相关《基于信息熵的对象名称编辑距离计算方法及匹配方法.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明涉及一种基于信息熵的对象名称编辑距离计算方法及匹配方法。该编辑距离计算方法包括:步骤10、统计每个字符出现的次数freq以及对象名称的总数totalNum,如果字符在一对象名称中出现多次按一次计算;步骤20、根据对象名称的总数totalNum及字符出现的次数freq之间的比值计算字符的信息熵,得到字符的编辑代价;步骤30、计算对象名称的编辑距离时,插入或删除一个字符的编辑代价等于该字符的编辑。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1