发明内容
本发明的目的是提供一种基于多个数据源的自然人数据处理方法和系统,在对同一自然人的多条记录在T时和T+1时合并为同一自然人时,有效避免了相同超级身份标识的产生;减少后续数据处理对资源造成的浪费,而且提高数据处理效率,同时简化自然人识别的计算复杂度,避免后续倒排索引算法对自然人识别算法的影响。
本发明提供了一种基于多个数据源的自然人数据处理方法,包括以下步骤;
获取来自多个数据源的自然人数据表,所述自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对各个所述用户数据添加唯一编号信息,得到用户编号数据;
根据当前时间信息对用户编号数据做时间识别处理,得到用户时间编码数据;同时,根据所述列表表名信息将所述用户时间编码数据存入到图的顶点集;
根据所述列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将所述相似度信息存入图的边集;
根据图中的所述相似度信息和预设阈值将数据源进行合并,并根据合并结果获取对应的当前用户时间编码数据和前一次用户时间编码数据;
根据编码极值选取所述当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识;并根据所述超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。
作为一种可实施方式,所述根据所述列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将所述相似度信息存入图的边集,包括以下步骤;
任意选取两个数据源的列列表列名的公共列信息,并对所述公共列信息的相同列宽进行求同处理,得到共同列宽值;
并根据每个所述共同列宽值对数据源的自然人数据表中进行合并分组,得到自然人分组数据;
对每个同组的自然人分组数据之间的关联关系进行相似度处理,得到相似度信息;并将相似度信息与预设阈值的进行比较,根据比较结果将相似度信息存入图的边集。
作为一种可实施方式,本发明提供的基于多个数据源的自然人数据处理方法还包括以下步骤;
在根据所述列表列名信息对数据源两两进行并行处理之前,根据预设需求信息配置并行参数,根据所述并行参数和所述列表列名信息对数据源两两进行并行处理。
作为一种可实施方式,所述根据编码极值选取所述当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识,包括以下步骤;
分别对所述当前用户时间编码数据和前一次用户时间编码数据进行处理,得到各个对应的编码极值;
将各个对应的编码极值之间进行比较,选取最小或最大的编码极值对应的当前用户时间编码数据或前一次用户时间编码数据;
再将所述当前用户时间编码数据或前一次用户时间编码数据分配为超级身份标识。
作为一种可实施方式,本发明提供的基于多个数据源的自然人数据处理方法还包括以下步骤;
在每个所述用户数据中添加唯一编号信息之前,对每个所述用户数据进行随机排列,再对随机排列结果添加唯一编号信息。
相应的,本发明还提供一种基于多个数据源的自然人数据处理系统,包括获取添加模块、时间处理模块、相似度处理模块、合并获取模块以及分配回溯模块;
所述获取添加模块,用于获取来自多个数据源的自然人数据表,所述自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对各个所述用户数据添加唯一编号信息,得到用户编号数据;
所述时间处理模块,用于根据当前时间信息对用户编号数据做时间识别处理,得到用户时间编码数据;同时,根据所述列表表名信息将所述用户时间编码数据存入到图的顶点集;
所述相似度处理模块,用于根据所述列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将所述相似度信息存入图的边集;
所述合并获取模块,用于根据图中的所述相似度信息和预设阈值将数据源进行合并,并根据合并结果获取对应的当前用户时间编码数据和前一次用户时间编码数据;
所述分配回溯模块,用于根据编码极值选取所述当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识;并根据所述超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。
作为一种可实施方式,所述相似度处理模块包括选取单元、合并单元以及比较存储单元;
所述选取单元,用于任意选取两个数据源的列列表列名的公共列信息,并对所述公共列信息的相同列宽进行求同处理,得到共同列宽值;
所述合并单元,用于并根据每个所述共同列宽值对数据源的自然人数据表中进行合并分组,得到自然人分组数据;
所述比较存储单元,用于对每个同组的自然人分组数据之间的关联关系进行相似度处理,得到相似度信息;并将相似度信息与预设阈值的进行比较,根据比较结果将相似度信息存入图的边集。
作为一种可实施方式,本发明提供的基于多个数据源的自然人数据处理系统还包括配置模块;
所述配置模块,用于在根据所述列表列名信息对数据源两两进行并行处理之前,根据预设需求信息配置并行参数,根据所述并行参数和所述列表列名信息对数据源两两进行并行处理。
作为一种可实施方式,所述分配回溯模块包括编码极值计算单元、比较选取单元以及分配单元;
所述编码极值计算单元,用于分别对所述当前用户时间编码数据和前一次用户时间编码数据进行处理,得到各个对应的编码极值;
所述比较选取单元,用于将各个对应的编码极值之间进行比较,选取最小或最大的编码极值对应的当前用户时间编码数据或前一次用户时间编码数据;
所述分配单元,用于再将所述当前用户时间编码数据或前一次用户时间编码数据分配为超级身份标识。
作为一种可实施方式,所述获取添加模块包括排列单元;
所述排列单元,用于在每个所述用户数据中添加唯一编号信息之前,对每个所述用户数据进行随机排列,再对随机排列结果添加唯一编号信息。
与现有技术相比,本技术方案具有以下优点:
本发明提供的基于多个数据源的自然人数据处理方法和系统,其中,方法包括获取来自多个数据源的自然人数据表,自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对用户数据中添加唯一编号信息和加入当前时间信息,得到用户时间编码数据;根据列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将相似度信息存入图的边集;在当前时间,根据图中的相似度信息和预设阈值将数据源进行合并,完成同一自然人的在自然人数据表合并;同时将合并的自然人数据表所有时间对应的用户时间编码数据按照编码极值分配为超级身份标识;最后根据超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。本发明在对同一自然人的多条记录在T时和T+1时合并为同一自然人时,有效避免了相同超级身份标识的产生;减少后续数据处理对资源造成的浪费,而且提高数据处理效率,同时简化自然人识别的计算复杂度,避免后续倒排索引算法对自然人识别算法的影响。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部实施例。
请参阅图1,本发明实施例一提供的基于多个数据源的自然人数据处理方法,包括以下步骤;
S100、获取来自多个数据源的自然人数据表,自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对各个用户数据添加唯一编号信息,得到用户编号数据;
S200、根据当前时间信息对用户编号数据做时间识别处理,得到用户时间编码数据;同时,根据列表表名信息将用户时间编码数据存入到图的顶点集;
S300、根据列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将相似度信息存入图的边集;
S400、根据图中的相似度信息和预设阈值将数据源进行合并,并根据合并结果获取对应的当前用户时间编码数据和前一次用户时间编码数据;
S500、根据编码极值选取当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识;并根据超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。
需要说明的是,数据源的自然人数据表中存储着自然人的多维度数据;由于数据源的不同,每个数据源中的同一自然人的多维度数据不完全一致,根据两自然人的信息匹配数量是否超过某一阈值来识别自然人是否为同一自然人。通过对各个用户数据添加唯一编号信息,使得得到的用户编号数据均为唯一不重复的数据;比如,可以直接采用不同的数值作为唯一编号,使得用户编号数据为datasrcname_datetime_1、datasrcname_datetime_2、datasrcname_datetime_3,...;于其他实施例中,可以采用字母、字符或者他们的组合作为唯一编号,在此并不进行限制。
当前时间信息可以是对用户编号数据做时间识别处理的时候的系统时间;同一批次处理的当前时间信息相同,也就是说在定时执行的T时默认为一个相同的当前时间信息;在T+1时,才会默认为另一个当前时间信息;那么根据当前时间的不同每一次对相同的用户编号数据做时间识别处理后得到的用户时间编码数据也会不同;比如,在2017-01-0100:00:00时对三个自然人的数据源datasrc1,datasrc2,datasrc3做时间识别处理,则将数据源的datasrc1的每条用户编号数据编码为datasrc1_20170101000000_1,datasrc1_20170101000000_2,datasrc1_20170101000000_3,…;其他自然人的数据源按同样方式编码。使得每个数据源中的每个自然人数据表都有其对应的唯一的用户时间编码数据;由于日期时间的字符串格式具有全序性,可以根据用户时间编码数据排除相同的超级身份标识。
而上述提到图为并行计算框架,允许由顶点集合和边集合构造一个点和边都带属性的有向图(Graph),并提供面向点和边的属性操作符以及消息传递机制,在此就不进行详细说明。在根据列表列名信息对数据源两两进行并行处理的时候,可以根据不同的策略进行;比如,采用单量遍询策略,每次对任意两个数据源进行处理,直至完成所有数据源的处理;也可以是采用全量策略,一次同时对多对数据源进行处理,直至完成所有数据源的处理。
步骤S300和步骤S400中的预设阈值为同一个值,主要用于作为基准将相似度信息存入图的边集,相似度信息超过预设阈值识别为同一自然人,也就是说将超过预设阈值的相似度信息存入图的边集,再根据图中的相似度信息将数据源进行合并,使得数据源中的同一自然人合并。
由于当前时间信息为字符串格式具有全序性,而编码极值就是对各个当前用户时间编码数据和前一次用户时间编码数据进行计算得到的。这里选取具有最大或者最小的编码极值的当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识;达到排除由于T和T+1时分配重复的超级身份标识。也可以说若T时刻已经通过已有数据源生成自然人的超级身份标识关联的自然人信息表,则在T+1时刻认为T时刻的自然人信息表为新的数据源并加入到数据源组中依次重新运行,由于超级身份标识的生成方式以及T和T+1时刻操作时T+1的当前用户时间编号数据大于T时的前一次用户时间编号数据,从而保证了T+1时分配的超级身份标识与T时分配的超级身份标识相同。而根据超级身份标识对自然人数据表进行回溯处理主要是为了将分配好超级身份标识的数据合并到一张表。因为每个数据源的自然人数据表都分配了super_id,根据简单的sql便可为每条记录新增super_id列。
本发明提供的基于多个数据源的自然人数据处理方法,包括获取来自多个数据源的自然人数据表,自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对用户数据中添加唯一编号信息和加入当前时间信息,得到用户时间编码数据;根据列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将相似度信息存入图的边集;在当前时间,根据图中的相似度信息和预设阈值将数据源进行合并,完成同一自然人的在自然人数据表合并;同时将合并的自然人数据表所有时间对应的用户时间编码数据按照编码极值分配为超级身份标识;最后根据超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。本发明在对同一自然人的多条记录在T时和T+1时合并为同一自然人时,有效避免了相同超级身份标识的产生;减少后续数据处理对资源造成的浪费,而且提高数据处理效率,同时简化自然人识别的计算复杂度,避免后续倒排索引算法对自然人识别算法的影响。
进一步的,步骤S300包括以下步骤;
S310、任意选取两个数据源的列列表列名的公共列信息,并对公共列信息的相同列宽进行求同处理,得到共同列宽值;
S320、并根据每个共同列宽值对数据源的自然人数据表中进行合并分组,得到自然人分组数据;
S320、对每个同组的自然人分组数据之间的关联关系进行相似度处理,得到相似度信息;并将相似度信息与预设阈值的进行比较,根据比较结果将相似度信息存入图的边集。
列表列名和列表表名均可以通过api获取,根据两个数据源的列表列名求公共列,并对公共列循环执行分组。具体为对这两个数据源的共同字段列宽为钥匙,将相同的列宽值的记录分为一组,得到自然人分组数据;在组内分别计算自然人分组数据两两之间的相似度(如Hamming距离或Jaccard距离),并将相似度超过某一阙值的记录存入边集。以保证某些数据源的特殊条件比如:手机号相同的记录认为是同一自然人的情况。
在此,对如何根据预设阈值和相似度信息确认为同一自然人进行详细说明:
比如,预设阈值为k;那么将同一自然人的相似度信息(编码关联关系)不超过k个(如k=3)点时,合并为同一自然人。即如果a与b是临近的,b与c临近,c与d临近,且a到d的步长为3;当k=2时,a与b,c是同一自然人,a与d不认为是同一自然人。并分配图顶点集中的当前用户时间编码数据和前一次用户时间编码数据的最小者作为自然人的super_id(如a,b,c是同一自然人,则将它们的编码极值最小或最大者作为这三条记录的super_id)。
进一步的,本发明实施例一提供的基于多个数据源的自然人数据处理方法还包括以下步骤;
在根据列表列名信息对数据源两两进行并行处理之前,根据预设需求信息配置并行参数,根据并行参数和列表列名信息对数据源两两进行并行处理。根据并行参数和列表列名信息对数据源两两进行并行处理也可以是根据单量遍询策略或全量策略进行。根据实际情况人为配置来实现哪些数据源两两之间进行自然人识别;并行参数配置提高了运行效率,减少一些不必要数据的运算。
进一步的,步骤S500包括以下步骤;
分别对当前用户时间编码数据和前一次用户时间编码数据进行处理,得到各个对应的编码极值;
将各个对应的编码极值之间进行比较,选取最小或最大的编码极值对应的当前用户时间编码数据或前一次用户时间编码数据;
再将当前用户时间编码数据或前一次用户时间编码数据分配为超级身份标识。
如果设定选取最小的编码极值;则对各个对应的编码极值之间进行比较,如果得到的最小的编码极值为当前用户时间编码数据;则将当前用户时间编码数据分配为超级身份标识;如果得到的最小的编码极值为前一次用户时间编码数据;则将前一次用户时间编码数据分配为超级身份标识。
如果设定选取最大的编码极值;则对各个对应的编码极值之间进行比较,如果得到的最大的编码极值为当前用户时间编码数据;则将当前用户时间编码数据分配为超级身份标识;如果得到的最大的编码极值为前一次用户时间编码数据;则将前一次用户时间编码数据分配为超级身份标识。使得在不同时间次处理时,排除分配到重复的超级身份标识,减少后续数据处理对资源造成的浪费,而且提高数据处理效率,同时简化自然人识别的计算复杂度,避免后续倒排索引算法对自然人识别算法的影响。
进一步的,本发明实施例一提供的基于多个数据源的自然人数据处理方法还包括以下步骤;
在每个用户数据中添加唯一编号信息之前,对每个用户数据进行随机排列,再对随机排列结果添加唯一编号信息。通过随机排列,保障对每个用户数据都能添加唯一编号信息,提高处理效率。
基于同一发明构思,本发明实施例还提供一种基于多个数据源的自然人数据处理系统,该系统的实施可参照上述方法的过程实现,重复之处不再冗述。
如图2所示,是本发明实施例二提供的基于多个数据源的自然人数据处理系统的结构示意图,包括获取添加模块100、时间处理模块200、相似度处理模块300、合并获取模块400以及分配回溯模块500;
获取添加模块100用于获取来自多个数据源的自然人数据表,自然人数据表中包括用户数据、列表表名信息以及列表列名信息;对各个用户数据添加唯一编号信息,得到用户编号数据;
时间处理模块200用于根据当前时间信息对用户编号数据做时间识别处理,得到用户时间编码数据;同时,根据列表表名信息将用户时间编码数据存入到图的顶点集;
相似度处理模块300用于根据列表列名信息对数据源两两进行并行处理,得到自然人数据表内列表列名的相似度信息;根据预设阈值将相似度信息存入图的边集;
合并获取模块400用于根据图中的相似度信息和预设阈值将数据源进行合并,并根据合并结果获取对应的当前用户时间编码数据和前一次用户时间编码数据;
分配回溯模块500用于根据编码极值选取当前用户时间编码数据和前一次用户时间编码数据分配为超级身份标识;并根据超级身份标识对自然人数据表进行回溯处理,得到多个数据源归类后的自然人信息表。
本发明提供的基于多个数据源的自然人数据处理系统,包括获取添加模块100、时间处理模块200、相似度处理模块300、合并获取模块400以及分配回溯模块500;使得在对同一自然人的多条记录在T时和T+1时合并为同一自然人时,有效避免了相同超级身份标识的产生;减少后续数据处理对资源造成的浪费,而且提高数据处理效率,同时简化自然人识别的计算复杂度,避免后续倒排索引算法对自然人识别算法的影响。
如图3所示,是相似度处理模块300的结构示意图包括选取单元310、合并单元320以及比较存储单元330;
选取单元310用于任意选取两个数据源的列列表列名的公共列信息,并对公共列信息的相同列宽进行求同处理,得到共同列宽值;
合并单元320用于并根据每个共同列宽值对数据源的自然人数据表中进行合并分组,得到自然人分组数据;
比较存储单元330用于对每个同组的自然人分组数据之间的关联关系进行相似度处理,得到相似度信息;并将相似度信息与预设阈值的进行比较,根据比较结果将相似度信息存入图的边集。
进一步的,本发明实施例二提供的基于多个数据源的自然人数据处理系统还包括配置模块600;
配置模块600用于在根据列表列名信息对数据源两两进行并行处理之前,根据预设需求信息配置并行参数,根据并行参数和列表列名信息对数据源两两进行并行处理。
如图4所示,是分配回溯模块500的结构示意图包括编码极值计算单元510、比较选取单元520以及分配单元530;
编码极值计算单元510用于分别对当前用户时间编码数据和前一次用户时间编码数据进行处理,得到各个对应的编码极值;
比较选取单元520用于将各个对应的编码极值之间进行比较,选取最小或最大的编码极值对应的当前用户时间编码数据或前一次用户时间编码数据;
分配单元530用于再将当前用户时间编码数据或前一次用户时间编码数据分配为超级身份标识。
进一步的,获取添加模块100包括排列单元110;
排列单元110用于在每个用户数据中添加唯一编号信息之前,对每个用户数据进行随机排列,再对随机排列结果添加唯一编号信息。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。