基于降维算法的数据关联方法及系统
技术领域
本发明公开方法及系统,涉及数据挖掘
技术领域
,具体地说是基于降维算法的数据关联方法及系统。背景技术
某些大数据中心,汇聚了内部各业务条线及业务数据,需要实现以人员主数据为中心的数据打通和深度挖掘,但由于不同数据来源数据质量参差不齐,且人员数据中身份证、手机号等可直接用于判断联系的关键字段出现错误或缺失,而其他信息字段多为无法直接进行比较的长短文本,如常住地,户籍地、工作单位等时,极其容易导致大量数据无法与人员主数据关联。
发明内容
本发明针对现有技术的问题,提供基于降维算法的数据关联方法及系统,具有通用性强、实施简便等特点,具有广阔的应用前景。
本发明提出的具体方案是:
基于降维算法的数据关联方法,利用Simhash算法将每个数据的相关字段降维转换为数据指纹,比较数据指纹的近似度,获取数据间匹配关系。
进一步,所述的基于降维算法的数据关联方法中降维转换相关字段:
将每个数据的相关字段设置为对应特征,
利用Simhash算法计算所有特征的Simhash值并通过权重配置及归一化处理形成数据指纹。
进一步,所述的基于降维算法的数据关联方法中比较数据指纹间的汉明距离,根据汉明距离比较结果判断数据指纹间的近似度。
进一步,所述的基于降维算法的数据关联方法中所述划分数据指纹区间,利用区间的哈希表查找并比较数据指纹间的汉明距离。
基于降维算法的数据关联系统,包括降维转换模块和比对模块,
降维转换模块利用Simhash算法将每个数据的相关字段降维转换为数据指纹,比对模块比较数据指纹的近似度,获取数据间匹配关系。
进一步,所述的基于降维算法的数据关联系统中降维转换模块降维转换相关字段的过程:
将每个数据的相关字段设置为对应特征,
利用Simhash算法计算所有特征的Simhash值并通过权重配置及归一化处理形成数据指纹。
进一步,所述的基于降维算法的数据关联系统中比对模块比较数据指纹间的汉明距离,根据汉明距离比较结果判断数据指纹间的近似度。
进一步,所述的基于降维算法的数据关联系统中对比划分数据指纹区间,利用区间的哈希表查找并比较数据指纹间的汉明距离。
基于降维算法的数据关联装置包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的基于降维算法的数据关联方法。
计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的基于降维算法的数据关联方法。
本发明的有益之处是:
本发明提供基于降维算法的数据关联方法,利用Simhash算法将每个数据的相关字段降维转换为数据指纹,能够将高维数据降维到相对低维的空间上,有利于进行数据字段的相似性比对,再进行数据指纹的近似度比较,获取数据间匹配关系,实现了大量低质量数据与海量主数据的高成功率快速匹配,也提升低质量业务数据的关联度查找效率。
附图说明
图1是本发明方法流程示意图。
具体实施方式
涉及的名词说明:分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,中文分词指的是中文在基本文法上有其特殊性而存在的分词。
局部敏感哈希(Locality Sensitive Hashing,LSH)算法,是近似最近邻搜索算法中的一种,它在高维数据空间中表现优异。局部敏感哈希核心思想是:在高维空间相邻的数据经过局部敏感哈希函数的映射投影转化到低维空间后,他们落入同一个空间区间的概率很大,而不相邻的数据映射到同一个空间区间的概率则很小。
Simhash是一种常用的局部敏感哈希算法,与普通hash算法的不同在于:针对微小差异的字符串,Simhash的计算结果仅有微小差异,而普通hash则差异巨大,这种特征允许通过比较Simhash摘要来衡量原内容的相似性。Simhash算法简单高效,适合与对语法一致性要求不太高的大规模并发场景中应用,符合项目中遇到的问题场景。
HashMap的基本数据结构是数组加链表。HashMap数组的每一个元素不止是一个Entry对象,也是一个链表的头节点。每一个Entry对象通过Next指针指向它的下一个Entry节点。当新来的Entry映射到冲突的数组位置时,只需要插入到对应的链表尾部即可。当链表长度大于8时,链表转为红黑树,以此提高查找效率。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供基于降维算法的数据关联方法,利用Simhash算法将每个数据的相关字段降维转换为数据指纹,比较数据指纹的近似度,获取数据间匹配关系。
利用本发明方法通过Simhash算法降维转换数据字段为数据指纹,可以利用数据指纹比较,获取数据间匹配关系,提升低质量数据与主数据关联比例和关联效率。
具体应用中,在本发明的一些实施例中,详细说明分析计算过程。以人员的主数据与一些无关联的包含姓名、身份类型、户籍地、原工作单位、现工作单位、常住地等信息中的多个字段内容多为中文信息为例,执行本发明方法时,使用Simhash将人员主数据及待关联数据中每条数据中多个字段进行合并降维,形成数据指纹:
首先,将每个数据的相关字段设置为对应特征,比如特征1,特征2,特征3...特征N,对每个特征设置不同的权重值,尤其针对长文本字段时,可以进行分词,并将长文本字段的特征划分为子特征的集合,比如特征3对应长文本字段,特征3被分为子特征3-1,子特征3-2,子特征3-3...子特征3-N,所有子特征的权重值与特征3相同,并可在后续计算中使用子特征的集合代替特征3。为方便观察与计算,利用特征列表进行特征展示。例如表1。
表1
然后,利用Simhash算法计算所有特征的Simhash值:计算特征列表中所有特征的Simhash,可以根据需要选择64bits或者128bits,本例采用64bits。参考表2。
表2
再进行权重配置,将Simhash结果按位加权,如果该位为0,则加权结果为-1×特征权重,如该位为1,则加权结果为1×特征权重,参考表3。
表3
特征编号
Simhash
加权结果
特征1
d41d8cd98f00b204
5,5,-5,5,-5,5,-5,-5,-5,…
特征2
3b5d5c3712955042
-2,-2,2,2,2,-2,2,2,…
子特征3-1
2cd6ee2c70b0bded
-1,-1,1,-1,1,1,-1,-1,…
子特征3-2
9ffbf43126e33be5
1,-1,-1,1,1,1,1,1,…
…
…
…
子特征3-N
60b725f10c9c85c7
-1,1,1,-1,-1,-1,-1,-1,…
…
…
…
上述过程所产生的数据均可存放于数据库中备用。当有新接入数据需要与主数据进行关联时,根据新接入数据中包含的字段,提取相应字段的加权结果进行后续操作即可。
再将本次参与比较的字段加权结果按位进行sum压缩合并,得到结果:
8,-3,6,15,-6,8,7,8,…
对结果进行归一化,逐位判断,如>0,则归一化为1,否则归一化为0,结果即为本条数据的指纹:
10110111…(共64bits)。
经过上述数据处理过程,得到了人员主数据及新增数据每条数据的数据指纹。继续比较数据指纹间的汉明距离,根据汉明距离比较结果判断数据指纹间的近似度,获得数据间匹配关联关系。
进一步,为详细说明数据指纹间的近似度比较,在本发明的一些实施例中,利用两个数据指纹判定相似的条件的汉明距离进行比较判断。
根据汉明距离(Hamming Distance)<=3,距离越小则相似度越高的条件进行筛选。为降低筛选的复杂度优化算法,划分数据指纹区间,以前述实施例中64bits为例,将64bits的数据指纹分为4个区间,则不同的位数最多位于3个区间,即必有一个区间相等。
其中将主数据的数据指纹按每16位取值,作为key建立四个HashMap:A(1-16位),B(17-32位),C(33-48位),D(49-64位),value为完整的指纹值。
分别取待关联数据的1-16位,17-32位,33-48位,49-64位在A、B、C、D四个HashMap中查找是否有对应元素:如果在四个HashMap中均未查到对应元素,则无相似数据记录,说明主数据与待关联数据确实没有关联关系;如果有命中,则遍历命中的该键值链表计算获取最小汉明距离的值;如果在四个HashMap有多个命中,则逐个遍历每个链表,找到所有的相近数据记录。
上述优化后的数据指纹近似度比较过程实现了算法复杂度数量级的降低,并且能够实现大量低质量数据与海量主数据的高成功率快速匹配,提升低质量数据与人员主数据关联比例和关联效率。
同时本发明还提供基于降维算法的数据关联系统,包括降维转换模块和比对模块,
降维转换模块利用Simhash算法将每个数据的相关字段降维转换为数据指纹,比对模块比较数据指纹的近似度,获取数据间匹配关系。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。同样地,本发明系统可以通过Simhash算法降维转换数据字段为数据指纹,可以利用数据指纹比较,获取数据间匹配关系,提升低质量数据与主数据关联比例和关联效率。
以及本发明提供基于降维算法的数据关联装置包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的基于降维算法的数据关联方法。上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。同样地,本发明装置可以通过Simhash算法降维转换数据字段为数据指纹,可以利用数据指纹比较,获取数据间匹配关系,提升低质量数据与主数据关联比例和关联效率。
同时本发明提供计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行所述的基于降维算法的数据关联方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。