一种生成结构化数据的元数据的方法与装置的制造方法_2

文档序号:8528202阅读:来源:国知局
数组。
[0054]本领域技术人员应能理解,前述通过分析二维表数据中的列分隔符来解析结构化数据的方式仅为举例,而不应被视为对本发明的任何限制,任何现有其它或今后可能出现的解析结构化数据的方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0055]并且,本领域技术人员应能理解,典型地,二维表数据中属于同一列的大部分元素对应于一个数据类型。特殊地,网络设备也可以将同一行的所有元素确定为一个数组,这种方式适用于其中属于同一行的大部分元素对应于一个数据类型的二维表数据。
[0056]优选地,网络设备可以对初始结构化数据进行转化,以使初始结构化数据转化为可被按照预定方式解析的所述结构化数据。
[0057]在此,所述可被按照预定方式解析的结构化数据包括但不限于前述按照分析列分隔符的方式来解析的二维表数据。
[0058]所述初始结构化数据例如关系型数据库表、JSON数据、XML数据等其他形式的数据。这些初始结构化数据的结构特征与二维表数据有所不同,因此网络设备可以将这些初始结构化数据转化为可被按照分析列分隔符的方式来解析的二维表数据。
[0059]例如,XML数据如下所示:
[0060]〈name〉张三〈/name〉
[0061]<age>25</age>
[0062]〈gender〉男〈/gender〉
[0063]〈educat1n〉大学本科〈/educat1n〉
[0064]〈degree〉学士〈/degree〉
[0065]网络设备可以分析该XML数据的分隔符,并将该XML数据转化为以下二维表数据:
[0066]name ;age ;gender ;educat1n ;degree
[0067]张三;25 ;男;大学本科;学士
[0068]此外,根据本发明的一个实施例,对于如关系型数据库表、JSON数据、XML数据等其他形式的初始结构化数据,网络设备也可以按照其各自的结构特征来解析以获得初始结构化数据所对应的一个或多个数组。
[0069]在步骤S2中,网络设备确定其中至少一个数组的数据类型。
[0070]在此,网络设备可以确定其中部分或全部数组的数据类型。例如,网络设备可以通过调用多个数据类型探测器来确定每个数组的数据类型。
[0071]其中,数据类型探测器意指用于确定数组的数据类型的计算机程序。
[0072]数据类型探测器可以通过多种统计方式来确定一个数组是否属于某一特定的数据类型。例如,一个数据类型探测器可以接收一个包含若干元素的数组作为输入参数,并对该数组中的至少部分元素进行探测,以确定该(等)元素是否属于某个特定的数据类型。如果该数组中被探测的属于该特定数据类型的元素的数量占比大于一占比阈值,如80%,则该数组属于该特定的数据类型。其中,所述占比阈值是基于数据类型探测器的容错特性来确定的。所有数据类型探测器可以均采用同一个占比阈值,或者,每个数据类型探测器也可以分别采用各自的占比阈值。
[0073]根据本发明一个优选实施例,各种URL数据类型探测器可以通过以下任一验证方式来确定一元素是否属于URL数据类型:
[0074]I)探测该元素是否符合以下正则表达式:
[0075](http I ftp I https):\八/[\w\__] + (\.[\w\-_] +) + ([/ % ;: §& =a-zA—ZO-9$\—+ ! *,0,] + (\ ? [% ;:@& = a-zA—ZO-9$\—+ ! *,(),]*)? ) ? $"
[0076]在此,该正则表达式包括以下4部分:
[0077]其中,“(http I ftp |https)://”用于验证URL的协议名称部分;
[0078]“ [\w\-_] + (\.[\w\-_] +) ”用于验证URL的主机名称部分;
[0079]"([/% = a-zA-Z0-9$\-_.+ ! *,(),] ”用于验证 URL 的路径名称部分;
[0080]“(\ ? [%;:§& = a-zA-Z0-9$\-_.+ ! *,(),]*)? ) ? ”用于验证 URL 的参数部分。
[0081 ] 如果一元素符合以上正则表达式,则该元素可以被确定属于URL数据类型。
[0082]2)获得元素中所包含的域名后缀,并验证该域名后缀是否属于合法的顶级域名,如“.COm”、“.net”、“.Cn”等。如果一元素中包括合法的顶级域名,则该元素可被确定属于URL数据类型。
[0083]3)结合以上第I)和第2)两个验证方式来确定一元素是否属于URL数据类型。也即,既符合前述正则表达式,又包括合法的顶级域名的元素可以被确定为属于URL数据类型。
[0084]前述各种用于探测URL的数据类型探测器属于验证函数式数据类型探测器,此夕卜,数据类型探测器还可以包括词典式数据类型探测器、聚焦分析式数据类型探测器等类别的数据类型探测器。其中,词典式数据类型探测器例如可以探测性别、学历、学位等数据类型。聚焦分析式数据类型探测器特定用于探测枚举数据类型。枚举数据类型意指其中所有元素的数据值集中在多个特定的数据值的数组的数据类型。例如,数组6包括8个元素:[2,4,4,2,2,4,4,2]。该数组6可以被确定为枚举数据类型。
[0085]其中,一个数据类型探测器可以探测一个数组中的所有元素;或者,一个数据类型探测器也可以仅探测在一个数组中的部分元素,这部分元素可以通过对数组进行数据抽样来获得。
[0086]典型情况下,一个数据类型探测器只用于探测一种数据类型。
[0087]由于需要支持的数据类型多达几十甚至上百个,所以数据类型探测器可以以插件的方式存在,网络设备可以加载所有预置的或用户提供的数据类型探测器并将这些数据类型探测器统一放到一个探测器列表中。
[0088]网络设备可以按照多种方式调用多个数据类型探测器来确定一个数组的数据类型。例如,多个数据类型探测器可以并行地探测一个数组,如果其中某一个数据类型探测器返回命中,也即,该数据类型探测器确定该数组属于该数据类型探测器所对应的数据类型,则其他数据类型探测器停止探测。接着,多个数据类型探测器再并行地探测下一个数组,直至确定每个数组的数据类型。
[0089]此外,优选地,如果所有数据类型探测器均未返回命中,也即,一数组的数据类型不属于所有数据类型探测器所对应的数据类型,该数组的数据类型可以被确定为默认的数据类型,如文本数据类型。
[0090]进一步地,网络设备可以按照多个数据类型探测器的排序,逐个将数据类型探测器用于探测一个数组的数据类型,直至确定该数组的数据类型;随后,网络设备对下一数组执行前述步骤,也即,网络设备再次按照多个数据类型探测器的排序,逐个将数据类型探测器用于探测下一数组的数据类型,直至确定该下一数组的数据类型,以此类推,直至网络设备确定所有数组的数据类型。
[0091]其中,多个数据类型探测器的排序至少可以基于以下2种方式确定:
[0092]I)网络设备可以将多个数据类型探测器划分为不同层级,按照数据类型探测器所属的层级对这些数据类型探测器进行排序。
[0093]在此,由于不同的数据类型之间具有层级关系,因此,网络设备可以按照数据类型的层级关系将多个数据类型探测器划分为不同层级。
[0094]例如,以树状结构为例,“文本”、“数字”等基本数据类型的层级可以被设定为根节点。“浮点数”型数据类型从属于“数字”型数据类型,因此,“浮点数”型数据类型的层级可以被设定为一级叶节点。“整数”型数据类型进一步从属于“浮点数”型数据类型,因此,“整数”型数据类型的层级可以被设定为二级叶节点。
[0095]网络设备可以按照树状结构的层级顺序,优先采用处于最外层叶节点的数据类型探测器进行探测,并逐层向内递进,直至采用处于根节点的数据类型探测器进行探测。
[0096]处于叶节点的数据类型更具体,处于根节点的数据类型更概括。处于叶节点的数据类型探测器先探测数组的数据类型,可以保证一一不属于外层叶节点的数据类型的数组才会被进一步探测其是否属于较内层节点的数据类型,从而数组的数据类型可以被更具体地确定而不会概括地被确定为如“文本”等基本类型。
[0097]2)网络设备可以将多个数据类型探测器划分为不同层级,按照数据类型探测器所属的层级对这些数据类型探测器进行排序;随后,网络设备对属于同一层级的数据类型探测器按照运行速度进行二次排序。
[0098]在此,网络设备按照数据类型探测器所属的层级对数据类型探测器进行排序的方式,与前述第I)种排序方式相同或基本相同,因此不再赘述,并以引用的方式包含于此。
[0099]在按照数据类型探测器所属的层级对数据类型探测器进行一次排序之后,网络设备还可以按照运行速度从快到慢的顺序在各层级中进行二次排序,如将属于同一层级的数据类型探测器中运行速度快的数据类型探测器排在优先的位置并先用于探测,以及将该层级中运行速度相对慢的数据类型探测器排在靠后的位置并后用于探测。
[0100]在此,网络设备对属于同一层级的数据类型探测器按照运行速度进行二次排序,可以提升探测效率。
[0101]本领域技术人员应能理解,前述2种对多个数据类型探测器进行排序的方式仅为举例,而不应被视为对本发明的任何限制,任何现有其它方案或今后可能出现的排序方式如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0102]在步骤S3中,网络设备根据所确定的数据类型,生成结构化数据的元数据。
[0103]在此,所述结构化数据的元数据意指用于描述结构化数据的数据。
[0104]元数据至少可以包括数组的数据类型。继前例示例A,在步骤S2中,网络设备确定数组I的数据类型为文本,数组2的数据类型为年龄,数组3的数据类型为性别,数组4的数据类型为学历,数组5的数据类型为学位。网络设备可以基于这些数据类型,生成二维表数据的元数据:第I列的数据类型为文本,第2列的数据类型为年龄,第3列的数据类型为性别,第4列的数据类型为学历,第5列的数据类型为学位。
[0105]此外,元数据还可以包括由数据类型确定的其他元数据。
[0106]优选地,所述其他元数据包括但不限于以下至少任一项:
[0107]I)结构化数据具有标题数组。
[0108]在此,网络设备可以将结构化数据中位于标题位置的多个元素所组成的数组作为待检测数组,以检测其是否为标题数组。如果该待检测数组为标题数组,
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1