发明内容
本申请所要解决的技术问题是提供一种企业数据匹配方法能够更加精确和快速的形成匹配记录对。
相应的,本申请还提供了针对上述企业数据匹配方法对应的装置。
为了解决上述问题,本申请公开了一种企业数据匹配方法,包括:
获取企业名称数据;
根据预置的字典库对所述企业名称数据进行分词获取地址属性分词;
根据所述地址属性分词获取对应的最高子行政级别地址;
根据所述最高子行政级别地址对所述企业名称数据进行分块形成记录对集合;
将记录对集合进行比较决策获得匹配记录对。
进一步,所述根据地址属性分词获取对应的最高子行政级别地址包括:
将地址属性分词与预置字典中的地址词进行比对;
当所述地址属性分词包括预置字典中最高子行政级别地址时,以所述最高子行政级别地址作为该企业名称数据分块;
当所述地址属性分词仅包括预置字典中第二级子行政级别地址时,根据所述第二级子行政级别地址在字典中获取对应的最高子行政级别地址作为该企业名称数据分块;
进一步,所述根据地址属性分词获取对应的最高子行政级别地址还包括:
当所述地址属性分词不包括第二季子行政级别地址时,获取最后地址词;
根据所述最后地址词获取最高子行政级别地址,将所述最高子行政级别地址作为所述企业名称数据分块;
当所述地址属性分词不包括任何地址词时,将所述企业名称数据作为空白分块记录。
进一步,所述根据最高子行政级别地址对所述企业名称数据进行分块形成记录对集合还包括:
将同一个分块内的企业名称数据两两配对,将空白分块内的企业名称数据与其它所有分块内的企业名称数据两两配对形成记录对。
进一步,所述将记录对集合进行比较决策获得匹配记录对包括:
将所述记录对经过比较算法获得算法比较记录对;
将所述算法比较记录对进行决策获得匹配记录对。
本申请还提供了一种企业数据匹配装置,包括:
获取模块,用于获取企业名称数据;
分词模块,用于根据预置的字典库对所述企业名称数据进行分词获取地址属性分词;
地址获取模块,用于根据所述地址属性分词获取对应的最高子行政级别地址;
分块模块,用于根据所述最高子行政级别地址对所述企业名称数据进行分块形成记录对集合;
比较决策模块,用于将记录对集合进行比较决策获得匹配记录对。
进一步,所述地址获取模块具体用于,将地址属性分词与预置字典中的地址词进行比对;当所述地址属性分词包括预置字典中最高子行政级别地址时,以所述最高子行政级别地址作为该企业名称数据分块;当所述地址属性分词仅包括预置字典中第二级子行政级别地址时,根据所述第二级子行政级别地址在字典中获取对应的最高子行政级别地址作为该企业名称数据分块;
进一步,所述地址获取模块还用于,当所述地址属性分词不包括第二季子行政级别地址时,获取最后地址词;
根据所述最后地址词获取最高子行政级别地址,将所述最高子行政级别地址作为所述企业名称数据分块;
当所述地址属性分词不包括任何地址词时,将所述企业名称数据作为空白分块记录。
进一步,所述分块模块具体用于,将同一个分块内的企业名称数据两两配对,将空白分块内的企业名称数据与其它所有分块内的企业名称数据两两配对形成记录对。
进一步,所述比较决策模块还包括:
比较模块,用于将所述记录对经过比较算法获得算法比较记录对;
决策模块,用于将所述算法比较记录对进行决策获得匹配记录对。
与现有技术相比,本申请包括以下优点:本申请通过分词得到地址属性词,根据所述地址属性词得到最高子行政级别地址作为分块,将同一分块能的企业名称数据两两配对形成匹配记录对,减少了计算量,提供了匹配精度。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图2,示出了本申请一种企业数据匹配方法;
在本发明实施例中,所述最高子行政级别地址为当前应用行政级别下的最高子行政级别,例如若本发明实施例应用在全国领域,则所述最高子行政级别地址为省、直辖市、自治州和特别行政区等一级行政级别,当然如果本发明实施例应用在全球范围内,则最高子行政级别地址则可以是各国家、地区等名称。在本发明实施例中以在中国区域实施为例进行表述:
步骤S101、获取企业名称数据;
本发明实施例中的企业名称数据可以是在已输入被记录在数据库的数据。
步骤S102、根据预置的字典库对所述企业名称数据进行分词获取地址属性分词;
在本发明实施例中,企业名称数据主要利用行业词、地址词对公司名称进行分词,而不是使用通用的分词工具对公司名称进行分词。通用的分词工具无法满足记录匹配过程的需要:1.其字典涵盖不到特定领域的公司名称,如“西安国盛大药房”,在开源分词工具IKAnalyzer上使用智能切分的分词结果是“西/安国/盛大/药房”,其原因在于IKAnalyzer分词所使用的字典中没能涵盖“国盛”或“国盛大药房”;2.通用分词工具只能够给出其分词结果,如“同仁堂/药店”无法提供[同仁堂:名称词]/[药店:特征词]这样详细的词性标注结果。因此本发明实施例针对企业名称数据这一特定领域,定制化一个字典库,其中包含了地址信息、名称词信息、特征词信息等。利用Trie树技术组织定制化的字典库,通过使用后缀思想来提高匹配结果的精确度。如“西安国盛大药房”通过从后向前搜索首先识别出“大药房”(大药房是存储在字典中的特征词),并且没有以“大药房”结尾的其他关键词,因此识别出[大药房:特征词],接下来识别出“国盛”(国盛是存储在字典中的名称词),[国盛:名称词],最后识别出“西安”(西安是存储在字典中的地址词),[西安:地址]。
步骤S103、根据所述地址属性分词获取对应的最高子行政级别地址;
进一步,所述根据地址属性分词获取对应的最高子行政级别地址包括:
将地址属性分词与预置字典中的地址词进行比对;
当所述地址属性分词包括预置字典中最高子行政级别地址时,以所述最高子行政级别地址作为该企业名称数据分块;
当所述地址属性分词仅包括预置字典中第二级子行政级别地址时,根据所述第二级子行政级别地址在字典中获取对应的最高子行政级别地址作为该企业名称数据分块;
进一步,所述根据地址属性分词获取对应的最高子行政级别地址还包括:
当所述地址属性分词不包括第二季子行政级别地址时,获取最后地址词;
根据所述最后地址词获取最高子行政级别地址,将所述最高子行政级别地址作为所述企业名称数据分块;
当所述地址属性分词不包括任何地址词时,将所述企业名称数据作为空白分块记录。
利用地址信息分块,这一步骤主要利用企业名称数据中的地址信息,以及记录在地址属性上的信息,通过地址信息获得该企业名称数据所对应的省,将省份相同的记录放在同一个块中用作后续处理,其中省份信息缺失的将置为Null。其中企业名称数据地址属性上的信息作为主要参考信息,如果在地址属性上能够获取到该公司所在的省份,将不再提取公司名称中的省份信息,否则将从企业名称数据中提取地址信息。从公司名称中提取省份信息的详细过程如图3所示。利用地址属性词、公司名称中获得的省份信息,将省份相同的记录放入同一记录块内,将省份缺失的记录放入同一记录块,将省份缺失的记录块记为空白块。
步骤S104、根据所述最高子行政级别地址对所述企业名称数据进行分块形成记录对集合;
进一步,所述根据最高子行政级别地址对所述企业名称数据进行分块形成记录对集合还包括:
将同一个分块内的企业名称数据两两配对,将空白分块内的企业名称数据与其它所有分块内的企业名称数据两两配对形成记录对。
这一步骤是利用已经产生的分块产生记录对,首先将同一分块内的企业名称数据两两组成记录对,其次将空白块中的每一条企业名称数据与其他分块内的所有企业名称数据两两组成记录对。将所有产生的记录对放在同一集合内,去掉重复记录对,组成记录对集合,作为比较决策流程的输入。
步骤S105、将记录对集合进行比较决策获得匹配记录对。
进一步,所述将记录对集合进行比较决策获得匹配记录对包括:
将所述记录对经过比较算法获得算法比较记录对;
将所述算法比较记录对进行决策获得匹配记录对。
针对分块算法的输出,对于记录对集合中的每一对记录对首先计算其相似度,然后通过与预置阈值相比较,如果高于阈值则认为该记录对是匹配的,并将其输出,如果记录对不匹配则不输出。
对于待比较的记录对,首先获取企业名称数据地址信息,地址信息的获得与获取省份时类似,主要利用地址属性信息,并将地址信息存储成省、市、县/区、镇/乡/街道、村/小区、楼、号等标准化的形式;然后获取其公司名称信息,并将公司名称存储成层级组织。其中地址信息如“深圳南山高新中一道35号”分词并标准化成“广东省:省/深圳市:市/南山区:区/高新中一道:道/35号:号”,公司名称信息如“一致药店南山同心分店”被分词成“<一致:名称词/药店:特征词>,南山:地址词,<同心:名称词/分店:特征词>”。
其中地址标准化部分,除了将类似于“深圳”这样一个城市名称扩展成“深圳市”之外,另一个值的强调的地方在于考虑了通过市对省信息的补齐,如上面提到的“深圳南山”的信息,由于深圳这个市存在且只存在于广东省,因此将类似缺少省份的数据通过数据中的有关市的信息映射到该省上,这一部分功能的实现依赖于一个市到省的映射表。
在本发明实施例中,预置尽可能全的特征词、地址信息词,企业名称数据中不能被识别的部分往往是公司名称词,因此有必要将未识别的词作为公司名称词处理。当然另外一个辅助信息是该未识别词应该位于某一特征词前面,并与该特征词联合构成一个组织。
在将地址信息标准化、公司名称存储成层级组织结构后,在此基础上计算记录对的相似度。首先计算地址的相似度,通过对记录对中两条企业名称数据在省、市、县/区、镇/乡/街道、村/小区、楼、号上分别计算是否相同,并利用加权计算来获得两条记录的相似度。如果两条企业名称数据的相似度过低,比如深圳市与东莞市虽然同在一个省,可是其市信息同时存在却不相同并且不存在相互缩写关系,则两条企业名称数据的相似度极低,此时直接将两条企业名称数据的地址相似度作为记录对的相似度输出。只有在记录对在地址信息上的相似度足够高的时候才进一步计算最小组织单位是否匹配。
进一步,步骤S105后还可以包括:
根据所述匹配的记录对输出记录组。
决策流程输出了匹配记录对,这些记录对中可能同时存在<a,b>匹配、<b,c>匹配,但是并没有<a,c>记录对的匹配信息,为此在产生记录组的时候利用一个传递规则:
如果<a,b>、<b,c>匹配,则<a,c>匹配。
使所有能够匹配上的记录产生一个闭包,如上例中的[a]=[b]=[c]={a,b,c}。
通过上述规则,利用已经匹配的记录对就可以将相互匹配的企业名称数据归入一个记录组中。
本发明实施例通过分词得到地址属性词,根据所述地址属性词得到最高子行政级别地址作为分块,将同一分块能的企业名称数据两两配对形成匹配记录对,减少了计算量,提供了匹配精度。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
如图4所述为本发明一种企业数据匹配装置一实施例的结构示意图,包括:
获取模块21,用于获取企业名称数据;
分词模块22,用于根据预置的字典库对所述企业名称数据进行分词获取地址属性分词;
地址获取模块23,用于根据所述地址属性分词获取对应的最高子行政级别地址;
分块模块24,用于根据所述最高子行政级别地址对所述企业名称数据进行分块形成记录对集合;
比较决策模块25,用于将记录对集合进行比较决策获得匹配记录对。
进一步,所述地址获取模块23具体用于,将地址属性分词与预置字典中的地址词进行比对;当所述地址属性分词包括预置字典中最高子行政级别地址时,以所述最高子行政级别地址作为该企业名称数据分块;当所述地址属性分词仅包括预置字典中第二级子行政级别地址时,根据所述第二级子行政级别地址在字典中获取对应的最高子行政级别地址作为该企业名称数据分块;
进一步,所述地址获取模块23还用于,当所述地址属性分词不包括第二季子行政级别地址时,获取最后地址词;
根据所述最后地址词获取最高子行政级别地址,将所述最高子行政级别地址作为所述企业名称数据分块;
当所述地址属性分词不包括任何地址词时,将所述企业名称数据作为空白分块记录。
进一步,所述分块模块24具体用于,将同一个分块内的企业名称数据两两配对,将空白分块内的企业名称数据与其它所有分块内的企业名称数据两两配对形成记录对。
进一步,所述比较决策模块25还包括:
比较模块251,用于将所述记录对经过比较算法获得算法比较记录对;
决策模块252,用于将所述算法比较记录对进行决策获得匹配记录对。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本申请所提供的一种企业数据匹配方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。