首页 / 专利库 / 数学与统计 / 聚类算法 / 一种海量数据库表快速分类的方法

一种海量数据库表快速分类的方法

阅读:448发布:2020-05-08

专利汇可以提供一种海量数据库表快速分类的方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种海量 数据库 表快速分类的方法,其中,包括,计算互信息熵获取每个表的关键属性,根据属性字段类型的元数据信息及数据内容 摘要 构建所选属性的 特征向量 ,利用 机器学习 的聚类 算法 对关键属性进行聚类,对聚类中心打标签,形成训练集训练分类算法,将训练好的分类算法应用于余属性分类,对分类结果进行抽样判断,反向优化分类算法,输出所有数据库表属性字段的类别。本发明结合数据库字段元数据信息和字段内容构建字段特征向量,通过对待分析的数据库关键字段进行聚类并设置数据领域(打标签),构建训练集,训练行业特色的分类算法,简化手工处理工作量。,下面是一种海量数据库表快速分类的方法专利的具体信息内容。

1.一种海量数据库表快速分类的方法,其特征在于,包括:计算互信息熵获取每个表的关键属性,根据属性字段类型的元数据信息及数据内容摘要构建所选属性的特征向量,利用机器学习的聚类算法对关键属性进行聚类,对聚类中心打标签,形成训练集训练分类算法,将训练好的分类算法应用于余属性分类,对分类结果进行抽样判断,反向优化分类算法,输出所有数据库表属性字段的类别。
2.如权利要求1所述的海量数据库表快速分类的方法,其特征在于,计算互信息熵获取每个表的关键属性包括:
根据数据库的抽样数据,通过计算数据库表各字段间的互信息熵,得到不同字段间的依赖关系,根据阈值选择对其他字段影响最大的关键字段。
3.如权利要求2所述的海量数据库表快速分类的方法,其特征在于,计算互信息熵获取每个表的关键属性具体包括:
随机数据抽样,包括:
当数据库表数据规模较小时,使用全量数据;当数据规模较大时,采用无放回的随机抽样;
计算字段的信息熵和互信息熵包括:
字段X的信息熵H(X),其中p(x)为数值x在X整个取值范围内分布的概率;
字段x与其余字段y的互信息熵I(X,Y),p(x,y)为数据对整个取值范围内分布的概率:
依次计算所有字段的信息熵H(x),以及字段x与其余字段y的互信息熵I(x,y),形成字段间的依赖图,依赖图中的某一个节点vi的权值为A(vi),权重为Wi;
其中,A(vi)为字段依赖图节点vi的权值,代表节点vi与依赖图中其他节点相关性强弱;Wi为节点vi与其他节点的权重;
根据数据库表的字段权重Wi进行降序排列,选择权重之和大于给定阈值的字段集合,记做该表的关键字段集合。
4.如权利要求1所述的海量数据库表快速分类的方法,其特征在于,计算字段的特征向量的步骤包括:根据数据库表的关键属性,重新进行分层抽样;根据数据字段的元数据信息以及数据内容的统计特征等,计算属性字段的特征向量,分为数值型特征提取和字符型特征提取。
5.如权利要求4所述的海量数据库表快速分类的方法,其特征在于,进行数值型字段特征提取包括:
(1)计算字段的统计学特征;
(2)数据归一化处理包括:
使用z-score标准化方法,将原始数据转换为0-1之间的正态分布;
z-score公式如下:X′=(X-avg(X))/std(X),其中x为原始数据,x’为归一化后的数据,avg(X)为x的平均值,std(X)为x的标准差;(3)构造概率分布直方图包括:首先去除异常值,选择[Q1-1.5*IQR,Q3+1.5*IQR]之间的数据进行分桶,其中Q1第一个四分位数,Q3第三个四分位数,IQR为四分位间距IQR=Q3-Q1。根据桶的个数,计算归一化的数据概率分布直方图,其中分桶的个数决定了特征向量的长度;(4)使用KS方法判断数据是否满足常见的数据分布;(5)特征向量=统计特征+归一化的概率分布直方图+分布函数参数。
6.如权利要求4所述的海量数据库表快速分类的方法,其特征在于,字符型字段特征提取包括:
(1)读取属性字段的数据,提取字符串的字符长度分布特征;
(2)提取字符串的字符模式分布特征;
(3)对于提取的字符串的字符模式分布,使用预先设置的正则表达式,匹配字符串是否符合正则表达式;
(4)使用自然语言处理方法,提取字符串特征;
(5)进行命名实体识别;
(6)组合特征向量。
7.如权利要求1所述的海量数据库表快速分类的方法,其特征在于,利用机器学习的聚类算法对关键属性进行聚类,对聚类中心打标签包括:根据步骤2提取关键属性的特征向量,利用机器学习方法对关键属性进行聚类,进行打标签形成训练样本供机器学习算法训练,利用监督学习的聚类算法,对关键数据的特征向量进行聚类,对聚类中心进行打标签,将标签属性扩展到该聚簇中的其他属性上。
8.如权利要求1所述的海量数据库表快速分类的方法,其特征在于,形成训练集训练分类算法包括:
根据提取的关键属性特征及打的标签,训练有监督学习的分类算法模型;利用提取其余属性的特征向量,利用训练好的分类算法模型进行分类,并对分类结果进行随机抽样检验,增加分类错误数据的权重,放入训练集中重新训练分类算法,逐步迭代,最终输出训练好的分类算法。

说明书全文

一种海量数据库表快速分类的方法

技术领域

[0001] 本发明涉及数据库技术,特别涉及一种海量数据库表快速分类的方法。

背景技术

[0002] 在数仓建设过程中,数据编目与清洗耗费了大量的人、物力,其中很重要的一个工作是对数据库表进行分类。通过对数据库表进行分类打标签,识别出所属数据领域(如该字段代表客户、产品、数量、金额等),建立数据目录,有助于补齐缺失的元数据信息,辅助制定数据质量规则发现数据质量问题等,有针对性的进行后续数据治理和提升。
[0003] 现有的数据分类方法需要实施人员根据数据库设计文档、库表结构备注等进行,很大程度依赖人的经验,每条元数据信息都需逐一确认,费时费力。当面对海量的数据类型和数据规模时,人工成本非常巨大。为此,我们将机器学习方法引入数据管理领域,基于现有数据分类标签,通过聚类、分类等方法,让计算机辅助进行数据分类与打标签,减少重复工作量,提高效率。
[0004] 实现这一方法的关键技术之一是提取数据库字段(字符型和数值型)的特征向量,通过训练机器学习分类算法识别出所属数据领域。
[0005] 数据库表的字段的特征应包含两部分:字段的元数据信息和字段对应的数据内容。字段的元数据信息是对该字段的剖析和描述,包括字段类型、长度、字段内容的分布特征、模式等。如对于邮箱字段,其元数据信息包括:字段属于字符串,长度不大于256字符,模式满足邮箱的正则表达式等;对于销售金额字段,其元数据信息包括:字段属于数值型,精度在小数点后两位,数据分布大致满足正太分布,其最大值、最小值、均值、方差等在某一特定范围内等等。在构造数据库字段特征时,增加此类元数据信息,能够更加准确、快速的分辨出字段所属数据领域。

发明内容

[0006] 本发明的目的在于提供一种海量数据库表快速分类的方法,用于解决上述现有技术的问题。
[0007] 本发明一种海量数据库表快速分类的方法,其中,包括,计算互信息熵获取每个表的关键属性,根据属性字段类型的元数据信息及数据内容摘要构建所选属性的特征向量,利用机器学习的聚类算法对关键属性进行聚类,对聚类中心打标签,形成训练集训练分类算法,将训练好的分类算法应用于余属性分类,对分类结果进行抽样判断,反向优化分类算法,输出所有数据库表属性字段的类别。
[0008] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,计算互信息熵获取每个表的关键属性包括:根据数据库的抽样数据,通过计算数据库表各字段间的互信息熵,得到不同字段间的依赖关系,根据阈值选择对其他字段影响最大的关键字段。
[0009] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,计算互信息熵获取每个表的关键属性具体包括:随机数据抽样,包括:当数据库表数据规模较小时,使用全量数据;当数据规模较大时,采用无放回的随机抽样;计算字段的信息熵和互信息熵包括:字段X的信息熵H(X),其中p(x)为数值x在X整个取值范围内分布的概率;
[0010]
[0011] 字段x与其余字段y的互信息熵I(X,Y),p(x,y)为数据对整个取值范围内分布的概率:
[0012]
[0013] 依次计算所有字段的信息熵H(x),以及字段x与其余字段y的互信息熵I(x,y),形成字段间的依赖图,依赖图中的某一个节点vi的权值为A(vi),权重为Wi;
[0014]
[0015]
[0016] 其中,A(vi)为字段依赖图节点vi的权值,代表节点vi与依赖图中其他节点相关性强弱;Wi为节点vi与其他节点的权重;根据数据库表的字段权重Wi进行降序排列,选择权重之和大于给定阈值的字段集合,记做该表的关键字段集合。
[0017] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,计算字段的特征向量的步骤包括:根据数据库表的关键属性,重新进行分层抽样;根据数据字段的元数据信息以及数据内容的统计特征等,计算属性字段的特征向量,分为数值型特征提取和字符型特征提取。
[0018] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,进行数值型字段特征提取包括:(1)计算字段的统计学特征;(2)数据归一化处理包括:使用z-score标准化方法,将原始数据转换为0-1之间的正态分布;z-score公式如下:X′=(X-avg(X))/std(X),其中x为原始数据,x’为归一化后的数据,avg(X)为x的平均值,std(X)为x的标准差;(3)构造概率分布直方图包括:首先去除异常值,选择[Q1-1.5*IQR,Q3+1.5*IQR]之间的数据进行分桶,其中Q1第一个四分位数,Q3第三个四分位数,IQR为四分位间距IQR=Q3-Q1。根据桶的个数,计算归一化的数据概率分布直方图,其中分桶的个数决定了特征向量的长度;(4)使用KS方法判断数据是否满足常见的数据分布;(5)特征向量=统计特征+归一化的概率分布直方图+分布函数参数。
[0019] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,字符型字段特征提取包括:(1)读取属性字段的数据,提取字符串的字符长度分布特征;(2)提取字符串的字符模式分布特征;(3)对于提取的字符串的字符模式分布,使用预先设置的正则表达式,匹配字符串是否符合正则表达式;(4)使用自然语言处理方法,提取字符串特征;(5)进行命名实体识别;(6)组合特征向量。
[0020] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,利用机器学习的聚类算法对关键属性进行聚类,对聚类中心打标签包括:根据步骤2提取关键属性的特征向量,利用机器学习方法对关键属性进行聚类,进行打标签形成训练样本供机器学习算法训练,利用监督学习的聚类算法,对关键数据的特征向量进行聚类,对聚类中心进行打标签,将标签属性扩展到该聚簇中的其他属性上。
[0021] 根据本发明的海量数据库表快速分类的方法的一实施例,其中,形成训练集训练分类算法包括:根据提取的关键属性特征及打的标签,训练有监督学习的分类算法模型;利用提取其余属性的特征向量,利用训练好的分类算法模型进行分类,并对分类结果进行随机抽样检验,增加分类错误数据的权重,放入训练集中重新训练分类算法,逐步迭代,最终输出训练好的分类算法。
[0022] 本发明提出一种准确、快速的数据库字段分类方法和处理流程,丰富提取的字段特征,从无到有建立分类算法,辅助用户进行字段分类。结合数据库字段元数据信息和字段内容构建字段特征向量,通过对待分析的数据库关键字段进行聚类并设置数据领域(打标签),构建训练集,训练行业特色的分类算法,简化手工处理工作量。附图说明
[0023] 图1为整体处理流程图
[0024] 图2为提取数据库表关键字段处理流程图;
[0025] 图3为字段依赖示意图;
[0026] 图4为提取字段特征处理流程图;
[0027] 图5为提取数值型字段特征:统计学特征和概率分布直方图;
[0028] 图6为提取字符型字段特征流程图。

具体实施方式

[0029] 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0030] 图1所示为本发明一种海量数据库表快速分类的方法的流程图,如图1所示,本发明首先通过计算互信息熵获取每个表的关键属性,根据属性字段类型(目前主要针对字符型和数值型)等元数据信息及数据内容摘要等构建所选属性的特征向量,利用机器学习的聚类算法对关键属性进行聚类,对聚类中心打标签,形成训练集训练分类算法,将训练好的分类算法应用于其余属性分类,并对分类结果进行抽样判断,反向优化分类算法,最终输出所有数据库表属性字段的类别。
[0031] 如图1所示,识别数据库表关键属性的步骤包括:
[0032] 根据数据库的抽样数据,通过计算数据库表各字段间的互信息熵,得到不同字段间的依赖关系,根据阈值选择对其他字段影响最大的关键字段。处理流程如图2所示。
[0033] (1)随机数据抽样,包括:
[0034] 当数据库表数据规模较小时(如不足1000条),使用全量数据;当数据规模较大时,采用无放回的随机抽样,确保样本尽可能的代表全量数据。
[0035] (2)计算字段的信息熵和互信息熵包括:
[0036] 字段X的信息熵H(X),其中p(x)为数值x在X整个取值范围内分布的概率;
[0037]
[0038] 字段x与其余字段y的互信息熵I(X,Y),p(x,y)为数据对整个取值范围内分布的概率:
[0039]
[0040] 图3所示为字段依赖图,如图3所示,依次计算所有字段的信息熵H(x),以及字段x与其余字段y的互信息熵I(x,y),形成字段间的依赖图,依赖图中的某一个节点vi的权值为A(vi),权重为Wi。
[0041]
[0042]
[0043] 其中,A(vi)为字段依赖图节点vi的权值,代表节点vi与依赖图中其他节点相关性强弱;Wi为节点vi与其他节点的权重。
[0044] 根据数据库表的字段权重Wi进行降序排列,选择权重之和大于给定阈值(如0.8)的字段集合,记做该表的关键字段集合。
[0045] 根据阈值倒排选择选择关键属性的伪代码如下:
[0046]
[0047] 2、计算字段的特征向量的步骤包括:
[0048] 根据数据库表的关键属性,重新进行分层抽样;根据数据字段的元数据信息以及数据内容的统计特征等,计算属性字段的特征向量,主要分为数值型特征提取和字符型特征提取。处理流程如附图4所示,其中附图5和附图6分别对附图4中数值型和字符型字段提取过程进行了细化。
[0049] 2.1读取数据表元数据
[0050] 通过jdbc等方式,获取数据库表的字段元数据,包括字段名称、类型、长度、备注等信息。
[0051] 2.2根据关键字段进行分层抽样
[0052] 根据“1、识别数据库表关键属性”中的方法,识别关键数据,读取关键属性的数据分布,根据数据分布进行分层抽样。
[0053] 2.3变量字段,分别对数值型和字符型字段提取关键特征向量
[0054] 2.3.1数值型字段特征提取
[0055] 图5为提取数值型字段特征:统计学特征和概率分布直方图,如附图5所示,对于数值型数据,首先计算其最大值、最小值、均值、方差、标准差、中位数、众数等基础统计信息,并对数据进行归一化,计算其统计概率分布直方图,将基础统计信息与概率分布直方图共同构成数值型数据的特征向量。
[0056] (1)计算字段的统计学特征
[0057] 计算最大值、最小值、均值、方差、标准差、4分位数(1/4分位数Q1和3/4分位数Q3)、众数,这些统计学特征能够直观的反映数据集的大致分布,有利于对后续分类计算。
[0058] (2)数据归一化处理
[0059] 使用z-score标准化方法,将原始数据转换为0-1之间的正态分布。正态分布式一种非常通用的数学模型,能够方便进行数据处理
[0060] z-score公式如下:X′=(X-avg(X))/std(X),其中x为原始数据,x’为归一化后的数据,avg(X)为x的平均值,std(X)为x的标准差。
[0061] (3)构造概率分布直方图
[0062] 首先去除异常值,选择[Q1-1.5*IQR,Q3+1.5*IQR]之间的数据进行分桶,其中Q1第一个四分位数,Q3第三个四分位数,IQR为四分位间距IQR=Q3-Q1。根据桶的个数,计算归一化的数据概率分布直方图,其中分桶的个数决定了特征向量的长度。
[0063] (4)判断数据与常见分布的关系
[0064] 使用KS方法判断数据是否满足常见的数据分布,如0-1分布、二项分布、正态分布、泊松分布、平均分布、指数分布等,若符合,则计算对应分布函数的参数。
[0065] (5)组合特征向量
[0066] 特征向量=统计特征+归一化的概率分布直方图+分布函数参数。
[0067] 最终形成的特征向量为一个大数组,由步骤(2)得到的统计特征,步骤(3)得到归一化的概率分布直方图数组,步骤(4)得到了分布函数参数数组[分布类型,参数1,参数2](常见分布函数最多有两个参数)组成,组成示意如下:
[0068]
[0069] 2.3.2字符型字段特征提取
[0070] 对于字符型数据,首先计算字符串的长度分布特征(字符串长度的最大值、最小值、均值、中位数等)和字符分布特征(字母、数字、特殊符号等出现的次数、位置等);然后与常见的正则表达式(如邮箱、邮编、手机号、身份证号等)进行匹配;利用自然语言处理方法,提取字符串的词向量,并进行命名实体识别,判断该字符串是否为人名、地名、物品名等;最后,综合上述信息,形成字符型数据的特征向量。图6为提取字符型字段特征流程图,如附图6所示,
[0071] (1)读取属性字段的数据,提取字符串的字符长度分布特征
[0072] 首先获取该属性字段的数据内容,针对字符串的长度,统计最大值、最小值、均值、方差、标准差、众数等,从统计度了解字符串的长度分布。
[0073] (2)提取字符串的字符模式分布特征
[0074] 这里的字符模式,是指字符串中各字符对应类型的组成,将字符串拆成一个个的字符,字母对应\w(或A),数字对应\d(或#),特殊表达式(逗号、分号、引号、破折号、省略号、点号、星号、句号、空格、加减乘除符号等)对应-,将字符串转换成形如“\w\w\d\d-\d”格式的模式。对字符模式分布进行聚合统计,选择TOP5的模式。
[0075] (3)常见正则表达式匹配
[0076] 对于提取的字符串的字符模式分布,使用预先设置的正则表达式,如邮箱、手机号、身份证号等,匹配字符串是否符合正则表达式。
[0077] (4)使用自然语言处理技术,提取字符串特征
[0078] 首先对字符串进行分词,使用TFIDF、CBOW、Word2Vec等技术提取词向量;将字段的所有内容看做是一篇文章,使用Doc2Vec等方法,构造该字段的文本特征向量。
[0079] (5)命名实体识别
[0080] 通过命名实体识别技术,识别字段内容是否为人名、机构名、地名、物品名等,是划分数据域的一个重要依据。通过分析词性、词向量等,与预置的人名、地名等语料库进行匹配,选择相似度超过一定阈值的类别作为结果使用。
[0081] (6)组合特征向量
[0082] 最终形成的特征向量=字符串长度统计特征+模式分布特征+词向量+匹配的正则表达式+命名实体识别结果,组成示意如下:
[0083]
[0084] 2.4构造属性的特征向量
[0085] 统一数值型和字符型字段的特征向量长度,构成特征向量如下:
[0086] 字段类型(字符型、数值型) 2.3.1与2.3.2步骤得到的字段特征向量
[0087] 3、数据聚类与打标签
[0088] 根据步骤2提取关键属性的特征向量,利用机器学习方法对关键属性进行聚类,进行打标签形成训练样本供机器学习算法训练。利用无监督学习的聚类算法(如基于密度的聚类算法),对关键数据的特征向量进行聚类,对聚类中心进行打标签(标签体系事先已创建),系统自动将标签属性扩展到该聚簇中的其他属性上。
[0089] 4、数据分类算法训练与优化
[0090] (1)训练分类算法
[0091] 根据步骤2提取的关键属性特征及步骤3打的标签,训练有监督学习的分类算法(如SVM、随机森林等)模型。
[0092] (2)数据分类结果校验及算法优化
[0093] 利用步骤2提取提取其余属性的特征向量,利用训练好的分类算法模型进行分类,并对分类结果进行随机抽样检验,增加分类错误数据的权重,放入训练集中重新训练分类算法,逐步迭代,最终输出训练好的分类算法。
[0094] 本发明构造字段特征向量的方法:在数据内容的基础上,增加字段的元数据信息,结合行业先验知识,构造特征向量。对于数值型数据,将统计特征与概率分布直方图结合;对于字符型数据,在现有词向量基础上,增加字符模式分布等特征,并与常见正则表达式匹配。根据信息熵,提取关键字段,进行聚类和打标签,作为快速构建有行业特色分类算法的训练集。
[0095] 本发明所述的方法,在多个实际业务数据库(备份库)上进行测试,样本数据规模为1000,关键字段阈值为0.8,采用DBSCAN作为聚类算法,数值型字段分桶个数为512,字符串词向量为512,分别应用与自研软件、部分商用软件的数据库,经试验,结果在可接受范围内。试验结果表明,该方法能够快速提取数据库中各表的关键字段,提取适应行业特点的特征,形成行业知识的积累,大大减少了手工标注工作量。
[0096] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈