基于大数据的列数据处理方法、设备及介质与流程

文档序号:19418600发布日期:2019-12-14 01:11阅读:261来源:国知局
基于大数据的列数据处理方法、设备及介质与流程

本发明实施例涉及数据处理技术,尤其涉及一种基于大数据的列数据处理方法、设备及介质。



背景技术:

随着大数据时代的来临,企业中往往会涉及到大量的数据,需要工作人员对其进行维护,并确定每个数据的含义,以及数据之间的关联关系,从而使得数据能够更好地辅助业务分析。

通过计算数据之间的相似性以及相似程度可以很好地帮助工作人员去寻找到与分析的数据相近的主题数据。现有技术中,采用无监督学习的方式对数据进行聚类,并通过数据重叠度,不同值、唯一值重叠度、模式匹配、名称匹配等特征来计算数据之间的相似度。

现有技术中的方法虽然可以计算出数据之间的相似度,但是由于采用了无监督学习的方式对数据进行聚类,导致计算量大且计算得到的相似度结果准确度不高。



技术实现要素:

本发明实施例提供一种基于大数据的列数据处理方法、设备及介质,可以得到列数据对准确率较高的相似度并且可以减少计算量。

第一方面,本发明实施例提供了一种基于大数据的列数据处理方法,该方法包括:

获取待处理的列数据集合,并根据所述列数据集合中各列数据的数据属性对各所述列数据进行分类处理,得到至少两个初始列数据集合;

对各所述初始列数据集合进行无监督聚类处理,得到与各所述初始列数据集合分别对应的至少两个无监督聚类簇;

根据至少两个所述无监督聚类簇生成多个列数据对,并确定各所述列数据对中的两个列数据间的列名相似度以及列备注相似度;

根据所述列名相似度以及所述列备注相似度,确定与各所述列数据对匹配的相似度。

第二方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:

获取待处理的列数据集合,并根据所述列数据集合中各列数据的数据属性对各所述列数据进行分类处理,得到至少两个初始列数据集合;

对各所述初始列数据集合进行无监督聚类处理,得到与各所述初始列数据集合分别对应的至少两个无监督聚类簇;

根据至少两个所述无监督聚类簇生成多个列数据对,并确定各所述列数据对中的两个列数据间的列名相似度以及列备注相似度;

根据所述列名相似度以及所述列备注相似度,确定与各所述列数据对匹配的相似度。

第三方面,本发明实施例还提供了一种计算机可读存储介质,存储介质用于存储指令,指令用于执行:获取待处理的列数据集合,并根据所述列数据集合中各列数据的数据属性对各所述列数据进行分类处理,得到至少两个初始列数据集合;

对各所述初始列数据集合进行无监督聚类处理,得到与各所述初始列数据集合分别对应的至少两个无监督聚类簇;

根据至少两个所述无监督聚类簇生成多个列数据对,并确定各所述列数据对中的两个列数据间的列名相似度以及列备注相似度;

根据所述列名相似度以及所述列备注相似度,确定与各所述列数据对匹配的相似度。

本发明实施例通过获取待处理的列数据集合,首先根据列数据集合中的列数据属性对获取的列数据集合进行分类处理,得到了至少两个初始列数据集合;然后对初始列数据集合进行无监督聚类处理,得到至少两个无监督聚类簇;接着根据至少两个无监督聚类簇生成多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度;最后根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度。本发明实施例的技术方案可以得到列数据对准确率较高的相似度结果并且可以减少计算量。

附图说明

图1是本发明实施例一中的一种基于大数据的列数据处理方法的流程图;

图2是本发明实施例一中的一种应用场景的示意图;

图3是本发明实施例二中的一种列名相似度的计算方法的流程图;

图4是本发明实施例三中的一种列名相似度的计算方法的流程图;

图5是本发明实施例三中的计算编辑距离的流程图;

图6是本发明实施例三中的计算列相似度的流程图;

图7是本发明实施例四中的一种基于大数据的列数据处理装置的结构示意图;

图8是本发明实施例五中的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

本文使用的术语“列数据”是按列存储的方式存储在数据库中的数据,其中,每一列包括的数据量是不固定的。

本文使用的术语“列数据的数据属性”是列数据的元信息,元信息中包括列数据的列类型。

本文使用的术语“初始列数据集合”是指根据列数据集合中各列数据的数据属性对各列数据进行聚类处理,可以得到数值型初始列数据集合、字符型初始列数据集合以及时间型初始列数据集合。

本文使用的术语“无监督聚类簇”是指根据对初始列数据集合进行无监督聚类处理,而得到的列数据的分类结果。

本文使用的术语“相似度”是指两个列数据之间的相似程度,即两个列数据越类似,其相似度越大;相应的,“列名相似度”是指两个列数据之间列名的相似程度;“列备注相似度”是指两个列数据之间列备注的相似程度,其中,列备注是为了便于了解列数据的属性,人为加上的对列数据的标准,某一列数据可能有列备注,也可能没有列备注。

本文使用的术语“列数据对”可以由任意两个列数据组成,本文中的列数据对也可以由任意两个无监督聚类簇组成;相应的,“第一列名”即为第一列数据或者第一无监督聚类簇的名字;“第二列名”即为第二列数据或者第二无监督聚类簇的名字;“第一列备注”即为第一列数据或者第一无监督聚类簇的备注;“第二列备注”即为第二列数据或者第二无监督聚类簇的备注。

为了便于理解,将本发明实施例的主要发明构思进行简述。

现有技术中,采用无监督学习的方式对列数据进行聚类,并通过列数据重叠度,不同值、唯一值重叠度、模式匹配、名称匹配等特征来计算列数据之间的相似度。

现有技术中的方法虽然可以计算出列数据之间的相似度,但是由于采用了无监督学习的方式对列数据进行聚类,导致计算量大且计算得到的相似度结果准确度不高。

发明人针对现有技术中的采用了无监督学习的方式对列数据进行聚类,导致计算量大且计算得到的相似度结果准确度不高的问题,考虑是否可以通过一种方法计算列数据的相似度,尽量减少计算量并且能够提高计算列相似度的准确率。

基于上述思考,发明人创造性的提出,通过获取待处理的列数据集合,首先根据列数据集合中的列数据属性对获取的列数据集合进行分类处理,得到了至少两个初始列数据集合;然后对初始列数据集合进行无监督聚类处理,得到至少两个无监督聚类簇;接着根据至少两个无监督聚类簇生成多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度;最后根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度。这样做的好处是,通过将大量的列数据进行分类处理后再对初始列数据集合进行无监督聚类,并生成列数据对可以大量的减少计算量;同时,通过计算列数据对的列名相似度和列备注相似度来确定列数据的相似度,可以提高计算列数据的相似度的准确性。

实施例一

图1是本发明实施例一中的一种列数据的处理方法的流程图,本实施例可适用于对企业中大量的列数据进行处理的情况,该方法可以由列数据的处理装置来执行,该装置可以通过软件和/或硬件的方式实现,并集成在执行本方法的设备中,在本实施例中执行本方法的设备可以是计算机、平板电脑和/或手机等智能终端。具体的,参考图1,该方法具体包括如下步骤:

步骤110、获取待处理的列数据集合,并根据列数据集合中各列数据的数据属性对各列数据进行分类处理,得到至少两个初始列数据集合。

需要说明的是,数据库中存储数据时可以对数据进行按行存储也可以进行按列存储。按行存储数据没有索引的查询使用大量输入/输出接口,并且建立索引和物化视图需要花费大量时间和资源,同时,面对查询的需求,数据库必须被大量膨胀才能满足性能需求;按列存储数据由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。按列存储数据可以将每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量。

具体的,本发明实施例所涉及到的列数据是以列为单位对数据进行处理,每一个列数据中可以包含一个或多个数据,通过对列数据进行处理能大大减少读取的数据量,也更加方便进行后续的数据处理操作。相应的,本发明实施例中涉及到的列数据处理方法也可以计算行数据的相似度,为了便于对本发明实施例的叙述在本发明实施例中仅以列数据为例进行介绍。

其中,待处理的列数据存储在列式存储数据库中,存储在列式存储数据库中的所有列数据被称为列数据集合。具体的,可以根据列数据集合中各列数据的数据属性对列数据进行分类处理,得到至少两个初始列数据集合。

可选的,根据列数据集合中各列数据的数据属性对各列数据进行分类处理,包括:获取列数据集合中各列数据的元信息,元信息中包括列数据的列类型;根据各列数据的数据类型,对各列数据进行分类处理。其中,列类型可以为字符型、数值型以及时间型中的至少一项。示例性的,列数据的元信息还可以包括列名、列备注或者该列的统计信息。其中,若列数据的列类型为字符型,则该列数据的统计信息可以为列数据的最短长度、最长长度、平均长度和/或频数最大数据的长度;若列数据的列类型为数值型,则该列数据的统计信息可以为列数据的极大值、极小值和/或平均值。

具体的,根据列数据集合中各列数据的数据属性对各列数据进行分类处理,可以得到至少两个初始列数据集合。示例性的,根据列数据集合中各列数据的数据属性对各列数据进行分类处理,可以得到数值型初始列数据集合、字符型初始列数据集合以及时间型初始列数据集合。需要说明的是,若列数据集合中还包括其他类型的列数据,相应的,也可以得到与该列数据类型一致的初始列数据集合。

步骤120、对各初始列数据集合进行无监督分类处理,得到与各初始列数据集合分别对应的至少两个无监督聚类簇。

具体的,对步骤110中得到的初始列数据集合进行无监督聚类,得到与每个初始列数据集合相对应的至少两个无监督聚类簇。示例性的,若初始列数据集合为数值型初始列数据集合,则通过无监督聚类,可以得到与数值型初始列数据集合对应的至少两个无监督聚类簇。以下将介绍如何对初始列数据集合进行无监督聚类:

其中,若初始列数据集合为数值型初始列数据集合,可计算列数据的统计指标,可以包括极大值a1、极小值a2和平均值a3,则可以把某一列数值型数据的列特性可表示为[a1,a2,a3]。

假设有n列数值型数据,计算其统计信息,可得到其列特性矩阵

将n作为isodata算法的输入,对数值型初始列数据集合进行聚类,从而可以实现对n列数据进行更细致的分类,具体的,可以得到至少两个无监督聚类簇。

若初始列数据集合为字符型初始列数据集合,由于字符数据没有数值型数据直观的统计信息,故将每列字符数据中字符串最短长度b1,字符串最长长度b2,字符串平均长度b3,频数最大的字符串长度b4,则可以把某一列字符型数据的列特性可表示为[b1,b2,b3,b4]。

假设有m列字符型数据,计算其特性指标,可得到其列特性矩阵

将m作为isodata算法的输入,对字符型初始列数据集合进行聚类,从而对m列数据进行更细致的分类,具体的,可以得到至少两个无监督聚类簇。

由于时间类型数据量总体相对较少,不需要进行进一步的聚类;而其他类型的数据没有统一的结构,不便于找到其列特性,故本发明实施例中不对其进行进一步聚类。

步骤130、根据至少两个无监督聚类簇生成多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度。

具体的,通过对初始列数据集合进行无监督处理后,可以得到至少两个无监督聚类簇,可以通过将至少两个无监督聚类簇进行两两组合,从而得到多个列数据对。需要说明的是,此时,每个列数据中的数据与初始的列数据中的数据内容不同,经过无监督聚类后,每一个列数据中包含的数据为与其对应的无监聚类簇的全部列数据。示例性的,若对初始列数据集合进行无监督聚类,得到的无监督聚类簇的数量为a,则生成的列数据对的数量为需要说明的是,列数据1和列数据2组成的列数据对12与列数据2和列数据1组成的列数据对21为同一个列数据对。生成列数据对后,分别确定各列数据对的列名相似度和列备注相似度。

需要说明的是,若不进行步骤110和步骤120,直接对获取的列数据集合生成列数据对,若列数据集合中有100000个列数据,则会生成将近50亿个列数据对,也就是说需要对5000000000个列数据对进行列名和列备注的相似度的计算,才能得到全部的相似数据,而假设将上述的10万个列数据,经过步骤110和步骤120的处理后,得到400个无监督聚类簇,这400个无监督聚类簇可以生成个列数据对。因此,本发明实施例的方案,可以极大地降低计算量,并且列数据集合中的列数据越多,降低计算量的效果越明显。

步骤140、根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度。

具体的,通过步骤130可以得到列数据对的列名相似度和列备注相似度,并将列数据的列名相似度记为scol,列数据的列备注相似度记为scom,则列数据对的相似度s,可以通过如下公式计算得到。

本实施例的技术方案,通过获取待处理的列数据集合,首先根据列数据集合中的列数据属性对获取的列数据集合进行聚类处理,得到了至少两个初始列数据集合;然后对初始列数据集合进行无监督聚类处理,得到至少两个无监督聚类簇;接着根据至少两个无监督聚类簇生成多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度;最后根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度,可以得到列数据对准确率较高的相似度结果并且可以减少计算量。

具体应用场景

为了更好的理解本发明实施例,图2列举了一种可以应用本发明实施例的系统,具体的,数据目录系统发送各列数据的元信息到列相似度后端服务,其中,各列数据的元信息的任何变化都会与其相关列相似度的重新计算。列相似度后端服务接收到数据目录系统发送的各列数据的元信息的变化后,列相似度后端服务会将各列数据的元信息写入到相似度后端数据库中,即通过相似度后端数据库可以查询各列数据的元信息。同时,列相似度后端服务也可以将列数据相似度计算任务发送至任务调度服务,任务调度服务接收到请求后,会通过分布式计算引擎进行各列数据的相似度计算;分布式计算引擎对列数据相似度计算任务进行细化;首先,第一任务中的第一阶段首先对各列数据即初始列数据集进行分类处理得到初始列数据集合,然后对初始列数据集合进行无监督聚类处理得到无监督聚类簇,最后根据上一步得到的至少两个无监督聚类簇生成多个列数据对;然后,第一任务中的第二阶段对生成的多个列数据对中的第一列数据对进行列名和列备注的预处理,得到第一列数据对的列名相似度和列备注相似度,并根据第一列数据对的列名相似度和列备注相似度得到第一列数据对的列相似度,最后将第一列数据对的相似度保存至相似度后端数据库中;同时,分布式计算引擎中的第二任务-第n任务可以对生成的第二列数据对-第n列数据对的列相似度进行计算,并保存至相似度后端数据库中。需要说明的是,第n任务具体数值并不固定,其与生成的列数据对的对数相关,例如,生成的列数据对的对数为100,那么第n任务即为第一百任务。本系统中,列相似度后端服务可以实时的查询相似度后端数据库中的列数据的元信息和列数据的相似度,也可以查询任务调度服务的任务状态。

在本应用场景中,通过分布式计算引擎通过不同的任务可以同时得到每个列数据对的相似度,并将列数据对的相似度保存在相似度后端数据库中,通过列相似度后端服务可以实时的查询列数据对的相似度,不但可以得到列数据对准确率较高的相似度结果并且可以减少计算量和计算时间。

实施例二

图3为本发明实施例二涉及到的计算列数据对中的两个列数据间的列名相似度的流程图,本实施例对上述实施例进行细化,将确定各列数据对中的两个列数据间的列名相似度细化为:获取与列数据对中的两个列数据对应的第一列名以及第二列名;计算第一列名与第二列名间的列名编辑距离;分别获取与第一列名对应的第一列名词向量表,以及与第二列名对应的第二列名词向量表,并计算第一列名词向量表与第二列名词向量表间的列名语义距离;根据列名编辑距离以及列名语义距离,确定列数据对中的两个列数据间的列名相似度。具体的,参考图3,该方法包括:

步骤步骤310、获取与列数据对中的两个列数据对应的第一列名以及第二列名。

具体的,每一个列数据对中都包含两个列数据,分别记为第一列数据和第二列数据,相应的,第一列数据的列名被记为第一列名,第二列数据的列名被记为第二列名。需要说明的是,本实施例中涉及到的第一列数据、第二列数据、第一列名以及第二列名等词,均是为了便于对本发明实施例的描述而用到的,其并不是对本发明实施例的限制。

可选的,列数据的列名的命名方式主要有两种,一种是驼峰式命名,如myfirstname;另一种是下划线命名,如my_first_name。本实施例中需要对列数据的列名进行标准化操作,即将列名展开成独立的单词,如上述列数据名需要展开为[my,first,name]。由于数字对列名相似度没有影响,当列名中出现数字时,对数字进行忽略处理,即将列数据名中的数字删除。

可选的,将列数据的列名进行标准化操作后,利用词向量模型将列数据名中的英文单词转化为词向量,示例性的,可以通过facebook利用fasttext算法训练公开的英文词向量模型得到列数据名中的英文单词的词向量。假设第一列名和第二列名分别为a和b,预处理之后得到两个列名的单词表分别为a=[a1,a2,...,an]和b=[b1,b2,...,bm],其中a1,a2,...,n分别为第一列名a中的每个单词,b1,b2,...,bm分别为第二列名b中的每个单词,其中其中n为第一列名中包含的单词数量,m为第二列名中包含的单词数量。由于列名分解后的单词可能存在缩写单词、错拼单词等情况,因此某些单词不一定存在对应的词向量,本实施例中若查询不到某些单词的向量,则忽略该单词。因此,第一列名和第二列名的单词表转化为词向量表av=[va1,va2,...,van′]和bv=[vb1,vb,...,vbm′],其中其中n为第一列名中包含的单词数量,m为第二列名中包含的单词数量,n′为第一列名中包含的词向量数量,m′为第二列名中包含的词向量数量,且n′≤n,m′≤m,va1,va2,...,van′分别为第一列名a中与单词a1,a2,...,an对应的词向量,vb1,vb,...,vbm′分别为第二列名b中与单词b1,b2,...,bm对应的词向量。

步骤320、计算第一列名与第二列名间的列名编辑距离。

编辑距离是指两个字符之间,由一个字符转换成为另一个字符所需要的最少编辑操作次数,允许的编辑操作包括一个字符替换为另一个字符,插入一个字符,删除一个字符。因此编辑距离的大小并不是在某一个范围内,为了将其标准化在[0,1]范围内,对编辑距离重新定义,具体公式如下:

h′=(s(x)((lmax-d)/lmax×6)-0.5×2

其中,s(x)为sigmoid函数,用于将编辑距离标准化到[0,1]范围内;lmax表示两个字符串的最大字符数;d表示两个字符串的原编辑距离,即最少编辑操作次数;h′为自定义编辑距离,即本实施例中涉及到的列名编辑距离,其中,h′越大,表示两个字符串越相似。

由于列数据名的单词大小可能不一致,为了保证列数据对ab与列数据ba的编辑距离一致,故令单词列表较长的列为第一列,第一列名与第二列名间的列名编辑距离的计算公式如下:

f(ai,b)=max(g(ai,b1),g(ai,b2),...,g(ai,bm))

其中,s2表示第一列名与第二列名间的列名编辑距离,f(ai,b)表示第一列名中第i个单词ai与第二列名中所有单词的编辑距离的最大值,g(ai,bj)表示第一列名中第i个单词与第二列名中第j个单词的编辑距离。

若ai为单词,且在词向量中出现,考虑到单词存在近义词的情况,利用词向量集得到ai的近义词,利用近义词优化编辑距离,从而增大编辑距离的可靠性,故g(ai,bj)的计算公式定义如下:

g(ai,bj)=max(h′(ai,bj),h′(ai1,bj),h′(ai2,bj),...,h′(aik,bj))

其中aik表示第一列名中第i个单词ai的第k个近义词,h′(aik,bj)表示aik和bj的编辑距离。

若ai不在词向量中出现(即可能不是单词或拼写错误),则不考虑近义词情况。

由上可知,在计算ai和bj的编辑距离时,需要考虑ai的近义词。若ai存在词向量,利用已有词向量集可以得到ai的空间距离最近的k个单词,即[ai1,ai2,...,aik];若ai不存在词向量,此时ai无近义词,k=0,故g(ai,bj)=h′(ai,bj)。

步骤330、计算第一列名词向量表与第二列名词向量表间的列名语义距离。

具体的,通过步骤310中得到第一列名与第二列名的词向量表分别为av=[va1,va2,...,van′]和bv=[vb1,vb,...,vbm′],其中n′≤n,m′≤m,va1,va2,...,van′分别为第一列名a中与单词a1,a2,...,an对应的词向量,vb1,vb,...,vbm′分别为第二列名b中与单词b1,b2,...,bm对应的词向量。则可以根据以下公式计算第一列名词向量表与第二列名词向量表间的列名语义距离:

s1=va·vb/(‖va‖×‖vb‖)

其中s1为第一列名词向量表与第二列名词向量表间的列名语义距离,lav和lbv分别为列表a和b的词向量个数。

步骤340、根据列名编辑距离以及列名语义距离,确定列数据对中的两个列数据间的列名相似度。

具体的,由步骤320得到第一列名与第二列名间的列名编辑距离s2,由步骤330得到第一列名与第二列名间的列名语义距离s1,列名编辑距离s2和列名语义距离s1的范围均为[0,1]。列名相似度计算中,由于列名单词很大可能不存在词向量,故列名相似度中,编辑距离的权重相对较大。而单纯的线性权重关系无法得到一个准确的列名相似度,故本实施例采用分段函数的形式,计算列名相似度,具体可以根据如下公式计算列名相似度scol,

本实施例在列名相似度计算过程中,获取与列数据对中的两个列数据对应的第一列名以及第二列名,并对获取的列名进行处理,得到列名词向量,根据列名词向量计算第一列名与第二列名间的列名编辑距离和列名语义距离,并通过分段函数将不同条件下的列名编辑距离和列名语义距离设置不同的权重,得到了准确率更高的列名相似度。

实施例三

图4是本发明实施例三涉及到的计算列数据对中的两个列数据间的列备注相似度的流程图,本实施例对上述任意实施例进行细化,将确定各列数据对中的两个列数据间的列备注相似度细化为:获取与列数据对中的两个列数据对应的第一列备注以及第二列备注;计算第一列备注与第二列备注间的列备注编辑距离;对第一列备注以及第二列备注进行分词处理后,得到与第一列备注对应的第一列备注词向量以及与第二列备注对应的第二列备注词向量;计算第一列备注词向量与第二列备注词向量间的列备注语义距离;根据列备注编辑距离以及列备注语义距离,确定列数据对中的两个列数据间的列备注相似度,具体的,参考图4,该方法包括:

步骤410、获取与列数据对中的两个列数据对应的第一列备注以及第二列备注。

具体的,列备注可以反映与其对应的列数据的主要内容,需要用户对其进行定义,因此,有可能存在某一列数据不存在列备注的现象。将列数据对中与第一列数据对应的备注记为第一列备注,与第二列数据对应的列备注记为第二列备注。

可选的,在确定第一列备注或者第二列备注为空时,确定列数据对中的两个列数据间的列备注相似度为0,即若确定第一列数据不包含列备注、第二列数据不包含列备注或者第一列数据和第二列数据都不包含列备注是,可以直接确定列数据对中两个列数据间的列备注相似度为0。

可选的,获取到列数据对中的两个列数据对应的第一列备注以及第二列备注后,可以对第一列备注和第二列备注进行分词处理,其中,分词处理是将连续的文本按照一定的规则重新组合成词序列的过程。示例性的,可以将第一列备注和第二列备注经中的停用词、标点符号、英文字母以及数字删除,并通过结巴分词工具对第一列备注和第二列备注进行分词处理,得到第一列备注表c=[c1,c2,...,cn]和第二列备注表d=[d1,d2,...,dm],其中,n为第一列备注中包含的单词数量,m为第二列备注中包含的单词数量。然后利用词向量模型将英文单词转化为词向量,本实施例中可以通过查询腾讯ailib利用directionalskip-gram(dsg)算法训练公开的词向量数据集而得到列备注中每个单词对应的词向量,需要说明的是,当列备注中的单词查询不到词向量时,对其进行忽略处理,最终,得到第一列备注和第二列备注的词向量表分别为cv=[vc1,vc2,...,vcn′]和dv=[vd1,vd2,...,vdm′],其中n为第一列备注中包含的单词数量,m为第二列备注中包含的单词数量,n′为第一列备注中包含的词向量数量,m′为第二列备注中包含的词向量数量,且n′≤n,m′≤m,vc1,vc2,...,vcn,分别为与第一列备注中的单词c1,c2,...,cn对应的词向量,vd1,vd2,...,vdm′分别为与第二列备注中的单词d1,d2,...,dm对应的词向量。

步骤420、计算第一列备注与第二列备注间的列备注编辑距离。

具体的,第一列备注与第二列备注间的列备注编辑距离与第一列名与第二列名间的列名编辑距离的计算方法一致,本实施例中在此不再对其进行阐述,通过步骤320中涉及到的方法,可以得到第一列备注与第二列备注间的列备注编辑距离为s4。

步骤430、计算第一列备注词向量表与第二列备注词向量表间的列备注语义距离。

具体的,由步骤410得到第一列备注和第二列备注的词向量表分别为cv=[vc1,vc2,...,vcn′]和dv=[vd1,vd2,...,vdm′],其中n为第一列备注中包含的单词数量,m为第二列备注中包含的单词数量,n′为第一列备注中包含的词向量数量,m′为第二列备注中包含的词向量数量,且n′≤n,m′≤m,vc1,vc2,...,vcn′分别为与第一列备注中的单词c1,c2,...,cn对应的词向量,vd1,vd2,...,vdm′分别为与第二列备注中的单词d1,d2,...,dm对应的词向量。

则第一列备注词向量表与第二列备注词向量表间的列备注语义距离可以通过如下公式计算得到:

s3=vc·d/(‖vc‖×‖vd‖)

其中s3为列名的语义距离,lcv和ldv分别为第一列备注和第二列备注的词向量个数。

步骤440、根据列备注编辑距离以及列备注语义距离,确定列数据对中的两个列数据间的列备注相似度。

具体的,由步骤420得到第一列备注与第二列备注间的列备注编辑距离s4,由步骤430得到第一列备注与第二列备注间的列备注语义距离s3,列备注编辑距离s4和列备注语义距离s3的范围均为[0,1]。列备注相似度计算中,由于列备注为文本信息,故列备注的语义距离的重要性大于列备注的编辑距离。而单纯的线性权重关系无法得到一个准确的列备注相似度,故本实施例采用分段函数的形式,计算列备注相似度,具体可以根据如下公式计算列备注相似度scom:

本实施例在列备注相似度计算过程中,获取与列数据对中的两个列数据对应的第一列备注以及第二列备注,并对获取的列备注进行处理,得到列备注词向量,根据列备注词向量计算第一列备注与第二列备注间的列备注编辑距离和列备注语义距离,并通过分段函数将不同条件下的列备注编辑距离和列备注语义距离设置不同的权重,得到了准确率更高的列备注相似度。

为了更好的理解本发明实施例,图5是计算列编辑距离的流程图,其中列编辑距离包括列名编辑距离和列备注编辑距离。首先,需要对列名和列备注进行处理得到与其对应的词向量,比较两个列数据表的长度,将较长的列数据表记为a表,较短的列数据表记为b表,其中,a表与第一列数据表对应,b表与第二列数据表对应;然后,判断a表中的第i个单词是否存在词向量,若存在,则寻找k个第i个单词的近义词,即ai=[ai,a1,...,ak],分别计算ai中每个单词与b表中每个单词的编辑距离,并选出最大的编辑距离,最终得到列编辑距离。

在上述例子中,通过确定最大编辑距离而得到列编辑距离,提高了求解编辑距离的准确度。

示例性的,图6是本发明实施例中计算列相似度的流程图,首先对列数据对中包含的两个列数据的列名进行处理,得到列名词向量,根据列名词向量分别计算列名的语义距离和编辑距离,并计算得到列名相似度;针对列备注相似度的计算,需要先判断列数据对中的两个列数据是否包含列备注,若其中一个列数据不包含列备注,则两个列数据间的列备注相似度为0;若两个列数据都包含列备注,则首先对列备注进行处理,得到列备注词向量,并根据列备注词向量计算列备注的语义距离和编辑距离,并计算得到列备注相似度;最终,通过列名相似度和列备注相似度确定列相似度。

在上述例子中,通过对列名和列备注进行处理,得到列名和列备注的词向量,并根据列名和列备注的词向量确定了列名和列备注的相似度,最终得到了准确率较高的列相似度。

实施例四

图7是本发明实施例四中的提供的一种基于大数据的列数据处理装置的结构示意图,该装置可以由软件和/或硬件的方式实现,并且可以执行本发明任意实施例所述的基于大数据的列数据处理方法,具体的,参考图7,该装置包括:列数据集合获取模块710、无监督聚类处理模块720、列数据对生成模块730及列数据对相似度确定模块740。

其中,列数据集合获取模块710:用于获取待处理的列数据集合,并根据列数据集合中各列数据的数据属性对各列数据进行分类处理,得到至少两个初始列数据集合;

无监督聚类处理模块720:用于对各初始列数据集合进行无监督聚类处理,得到与各初始列数据集合分别对应的至少两个无监督聚类簇;

列数据对生成模块730:用于生成与各无监督聚类簇分别对应的多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度;

列数据对相似度确定模块740:用于根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度。

本实施例的技术方案,通过列数据集合获取模块得到了至少两个初始列数据集合,并通过无监督聚类模块对初始列数据集合进行无监督聚类处理得到了至少两个无监督聚类簇;然后通过列数据对生成模块生成列数据对,计算得到每个列数据对的列名相似度和列备注相似度;最后,通过列数据对相似度确定模块得到列数据对的相似度。可以得到列数据对准确率较高的相似度结果并且可以减少计算量。

可选的,本实施例在上述方案的基础上,列数据集合获取模块710还可以包括:列数据的元信息获取单元,用于获取列数据集合中各列数据的元信息,元信息中包括列数据的列类型;根据各列数据的数据类型,对各列数据进行分类处理。

可选的,列类型包括下述至少一项:字符型、数值型以及时间型。

可选的,列数据对生成模块730将至少两个无监督聚类簇进行两两组合,得到多个列数据对。

可选的,列数据对生成模块730还包括列名相似度计算单元,其中列名相似度计算单元具体包括:获取与列数据对中的两个列数据对应的第一列名以及第二列名;计算第一列名与第二列名间的列名编辑距离;计算第一列名词向量表与第二列名词向量表间的列名语义距离;根据列名编辑距离以及列名语义距离,确定列数据对中的两个列数据间的列名相似度。

可选的,列数据对生成模块730还包括列备注相似度计算单元,其中列备注相似度计算单元具体包括:获取与列数据对中的两个列数据对应的第一列备注以及第二列备注;计算第一列备注与第二列备注间的列备注编辑距离;计算第一列备注词向量表与第二列备注词向量表间的列备注语义距离;根据列备注编辑距离以及列备注语义距离,确定列数据对中的两个列数据间的列备注相似度。

可选的,本实施例所述的列数据处理装置还包括列备注判断模块,用于在确定第一列备注或者第二列备注为空时,确定列数据对中的两个列数据间的列备注相似度为0。

本发明实施例所提供的基于大数据的列数据处理装置可执行本发明任意实施例所提供的基于大数据的列数据处理方法,具备执行方法相应的功能模块和有益效果。

实施例五

图8为本发明实施例五提供的一种计算机设备/终端/服务器的结构示意图,如图8所示,该设备包括处理器80、存储器81、输入装置82和输出装置83;设备/终端/服务器中处理器80的数量可以是一个或多个,图8中以一个处理器80为例;设备/终端/服务器中的处理器80、存储器81、输入装置82和输出装置83可以通过总线或其他方式连接,图8中以通过总线连接为例。

存储器81作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于大数据的列数据处理方法对应的程序指令/模块(例如,列数据处理装置中的列数据集合获取模块710、无监督聚类处理模块720、列数据对生成模块730及列数据对相似度确定模块740)。处理器80通过运行存储在存储器81中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的基于大数据的列数据处理方法。

存储器81可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器81可进一步包括相对于处理器80远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置82可用于接收输入的数字或字符信息,以及产生与设备/终端/服务器的用户设置以及功能控制有关的键信号输入。输出装置83可包括显示屏等显示设备。

实施例六

本发明实施例六还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于大数据的列数据处理方法,该方法包括:获取待处理的列数据集合,并根据列数据集合中各列数据的数据属性对各列数据进行分类处理,得到至少两个初始列数据集合;

对各初始列数据集合进行无监督聚类处理,得到与各初始列数据集合分别对应的至少两个无监督聚类簇;

根据至少两个无监督聚类簇生成多个列数据对,并确定各列数据对中的两个列数据间的列名相似度以及列备注相似度;

根据列名相似度以及列备注相似度,确定与各列数据对匹配的相似度。当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于大数据的列数据处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述相似度计算装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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