CN105930447A - 一种将树形嵌套数据转换为平面数据表的方法 - Google Patents

一种将树形嵌套数据转换为平面数据表的方法 Download PDF

Info

Publication number
CN105930447A
CN105930447A CN201610248636.7A CN201610248636A CN105930447A CN 105930447 A CN105930447 A CN 105930447A CN 201610248636 A CN201610248636 A CN 201610248636A CN 105930447 A CN105930447 A CN 105930447A
Authority
CN
China
Prior art keywords
node
primitive
tree
data
valued
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610248636.7A
Other languages
English (en)
Other versions
CN105930447B (zh
Inventor
王晓哲
曹代军
罗立刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zero Krypton Medical Intelligent Technology (Guangzhou) Co., Ltd.
Original Assignee
Zero Krypton Technology (beijing) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zero Krypton Technology (beijing) Co Ltd filed Critical Zero Krypton Technology (beijing) Co Ltd
Priority to CN201610248636.7A priority Critical patent/CN105930447B/zh
Publication of CN105930447A publication Critical patent/CN105930447A/zh
Application granted granted Critical
Publication of CN105930447B publication Critical patent/CN105930447B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees

Abstract

本发明实施例公开了一种将树形嵌套数据转换为平面数据表的方法,所述方法包括:A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;B、获取从根节点到各个所述叶节点的各条路径;C、根据所述各条路径生成各条原语链表;D、将所述原语链表合并为单个原语树;E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。由上,本发明实施例有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,有效降低了数据后续利用的成本。

Description

一种将树形嵌套数据转换为平面数据表的方法
技术领域
本发明涉及信息技术领域,特别涉及一种将树形嵌套数据转换为平面数据表的方法。
背景技术
在医疗、互联网等领域中经常出现将多个维度的信息整合在单个数据对象中的情形,通常此种数据对象都表现为不规则的深层嵌套的树形结构。在树形数据结构中,每个叶节点都是一个信息字段,其值可以是单值或多值;每个枝节点都是一个信息组,信息组可以是重复或非重复的,非重复信息组下可包含异构的确定数量的节点,而重复信息组下可包含同构的不定数量的节点。这种树形嵌套结构虽然方便了数据表达和存储,但难以被各种针对平面数据表设计的数据处理系统所接受,此时通常需要人工进行结构转换,会耗费大量人力财力。
发明内容
有鉴于此,本发明的主要目的在于提供一种将树形嵌套数据转换为平面数据表的方法,有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,有效降低了数据后续利用的成本。
本发明实施例提供一种将树形嵌套数据转换为平面数据表的方法,包括以下步骤:
A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;
B、获取从根节点到各个所述叶节点的各条路径;
C、根据所述各条路径生成各条原语链表;
D、将所述原语链表合并为单个原语树;
E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;
F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。
优选地,所述步骤C包括:
C1、生成所述各条路径的各个节点对应的抽取原语;
C2、将所述各条路径的各个节点对应的抽取原语分别串联成原语链表。
优选地,所述步骤C1还包括:
当判断所述路径中的枝节点或叶节点为可取多值节点时,为所述枝节点或叶节点增加生成一级ITER抽取原语;
其中,所述可取多值节点为其下有同构节点组或者其本身包含同构多值信息的节点;
所述ITER为:将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象,同时将元素下标生成以当前环境名称命名的列。
由上,为可取多值节点增加生成一级ITER抽取原语,有利于后续的数据转换。
优选地,所述步骤C1还包括:
当判断所述路径中的节点为叶节点时,若所述叶节点对应的字段包含同构多值信息,则调用JSON原语;若所述叶节点对应的字段为单值信息,则调用SCALAR原语;
其中,所述JSON为:将当前环境数据对象序列化为JSON字符串,生成以当前环境名称为列名的列;
所述SCALAR为:将当前环境数据对象作为单值,输出为以当前环境名称为列名的列;其中,若所述对象为列表类型则取首个元素。
优选地,所述步骤C1还包括:
当判断所述路径中的节点为根节点时,为所述根节点生成CID抽取原语;
当判断所述路径中的节点为枝节点时,为所述枝节点生成CTX抽取原语;
其中,所述CID为:生成预设公共字段;
所述CTX为:将当前工作对象设为指定key对应的数据对象,同时将key作为当前环境名称。
优选地,所述步骤D包括:
D1、确定各条原语链表中的各个原语的级别和类型;
D2、将同一级别中相同的原语合并为一个原语节点;
D3、通过连接关系将各个原语节点连接,以获取单个原语树。
优选地,所述步骤E包括:
E1、若所述单个原语树的各个叶节点回溯到根节点的各条路径中有可取多值节点,则分别获取所述各条路径中的各个首个可取多值节点;
E2、将所述各个首个可取多值节点加入可取多值节点集合;
E3、遍历所述可取多值节点集合中各个首个可取多值节点到根节点的路径及其下的子树,以及遍历根节点及所述根节点下不包含可取多值节点路径的子树,以获取各个抽取原语树。
由上,有利于后续对可取多值节点对应的字段所包含的数据的转换。
由上可以看出,本发明提供了一种将树形嵌套数据转换为平面数据表的方法,有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,可以获取任意节点数据转换后的平面数据表,且不受数据处理系统的限制,有效降低了数据后续利用的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种将树形嵌套数据转换为平面数据表的方法的流程示意图;
图2为本发明实施例提供的一种树形嵌套结构示意图;
图3为本发明实施例提供的一种定位后的树形嵌套数据结构示意图;
图4为本发明实施例提供的一种抽取后的原语链表结构示意图;
图5为本发明实施例提供的一种合并后的单个原语树结构示意图;
图6为本发明实施例提供的一种遍历后的第一类抽取原语树结构示意图;
图7为本发明实施例提供的一种遍历后的第二类抽取原语树结构示意图;
图8为本发明实施例提供的一种具体应用场景下的合并后的单个原语树结构示意图;
图9为本发明实施例提供的一种具体应用场景下的抽取原语树结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为克服现有技术中的缺陷,本申请实施例提供一种将树形嵌套数据转换为平面数据表的方法,用于自动将树形嵌套数据转换为平面数据表,有效降低了数据后续利用的成本。
实施例一
如图1所示,为本发明实施例中提供的一种将树形嵌套数据转换为平面数据表的方法,具体步骤如下:
S101,将待转换的信息字段集合中的各个信息字段分别定位到树形数据结构中的叶节点。
对于树形结构来说,节点包括根节点、枝节点和叶节点,各个阶段上均对应不同的字段名,其中叶节点的字段名对应关联有具体的数据,各枝节点(或称中间节点,即,除根节点和叶节点外的中间的节点)则都是信息组,除了包含下级字段节点以外自身并不关联任何数据。
如图2示出了一个树形嵌套结构的定义例子:其中/表示数据对象根,而a~i各个字母表示不同级别上的字段名,字段名后的*表示该字段下有同构节点组或者该字段本身包含同构多值信息。在本实施例中,假设待转换的信息字段集合中的各个信息字段的信息分别为对应于叶节点b、c、e、f、h、i中,则将各个信息字段分别定位到树形数据结构中的叶节点b、c、e、f、h、i。如图3所示,为定位后对应的实际数据的示意图。
S102,遍历树形结构,获得从根节点到各个所述叶节点的路径。由图2或图3所得到的路径如下所示:
/a-b;
/a-c;
/a-d-e;
/a-d-f;
/g-h;
/g-i。
S103,为待导出的各个所述路径的各个节点生成相应的抽取原语,并将所述抽取原语按照S102所构成的路径串联成原语链表。其中,当所述节点其下有同构节点组或者其对应的字段包含同构多值信息时(如图2所示带有*的字段名a、c、d)时,则为所述节点额外生成新的一级ITER原语。在本申请中,将其下有同构节点组或者其对应的字段包含同构多值信息的节点称为可取多值节点。
本实施例中使用如下数据抽取原语:
CID-生成预设公共字段;
CTX(key)-将当前工作对象设为指定key对应的数据对象,同时将key作为当前环境名称;
ITER-将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象(但不改变当前环境名称),同时将元素下标生成以"当前环境名称_seq"命名的列;
JSON-将当前环境数据对象序列化为JSON字符串,生成以当前环境名称为列名的列;
SCALAR-将当前环境数据对象作为单值(若对象为列表类型则取首个元素),输出为以当前环境名称为列名的列。
具体地,为每个待导出字段构建原语链表时,从根节点到该导出字段的叶节点上的各个节点,依所述路径依次取出每个节点,并对每个节点依次如下操作以确定该节点所生成的原语:
N1、判断该节点为根节点时,生成CID原语;
N2、判断该节点为枝节点时,生成CTX原语;
其中,若判断该节点为可取多值节点时,为该节点额外增加生成一级ITER原语;同时,若判断该节点为叶节点时(即最后的导出字段),若叶节点对应的字段包含同构多值信息时,则生成JSON原语,否则,即对应单值信息时,则生成SCALAR原语。
如上,依所述路径依次对每个节点如上操作后,对应所述路径,即可生成原语链表。
如图4所示,为抽取后的原语链表示意图。
S104,根据原语链表的深度和原语类型,将所述原语链表合并为单个原语树。
在本实施例中,如图5所示,为合并后的单个原语树。
具体为:
A、确定各条原语链表中的各个原语的级别和类型;
B、将同一级别中相同的原语合并为一个原语节点;
C、通过连接关系将各个原语节点连接。
S105,由叶节点到根节点方向,判断所述单个原语树叶节点到根节点的路径中是否有可取多值节点;若是,则执行S106;若否,则执行S108。
S106,获取各个叶节点回溯到的首个可取多值节点,并将首个可取多值节点加入可取多值节点集合;
S107,遍历所述可取多值节点集合中各个首个可取多值节点到根节点的路径及该节点的子树;以获取可表达为单个平面数据表的第一类抽取原语树。如图6所示,为遍历后的第一类抽取原语树结构示意图。
S108,遍历根节点及所述根节点下不包含可取多值节点的路径的子树,以获取可表达为单个平面数据表的第二类抽取原语树。如图7所示,为遍历后的第二类抽取原语树结构示意图。
其中,上述步骤S105-S108为:从合并后的单个原语树进行遍历操作,以获取可表达为单个平面数据表的各个原语树。
S109,执行S107和S108中获取的各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。如表1、2、3、4所示,为转换后的各个平面数据表。
a_seq b
0 foo
1 bar
表1
a_seq c_seq c
0 0 1
0 1 2
0 2 3
1 0 4
1 1 5
表2
表3
h i
123 456
表4
综上所述,本申请实施例提供了一种将树形嵌套数据转换为平面数据表的方法,用于自动将树形嵌套数据转换为平面数据表,有效降低了数据后续利用的成本。
实施例二
为了进一步说明本申请的技术方案,本申请提供了一个具体应用场景的实施例,具体如下:
S201,假设待转换的信息字段集合中的各个信息字段的信息分别为体重信息、身高信息、入院诊断信息、出院诊断信息、手术日期和手术名称,其分别对应于叶节点体重、身高、入院诊断、出院诊断、手术日期和手术名称中。
S202,计算从根节点到每个所述叶节点的路径。并为各个所述路径的各个节点生成相应的抽取原语,并将所述抽取原语串联成原语链表。
本实施例中定义如下数据抽取原语:
CID-生成预设公共字段;该公共字段至少包括但不限于以下其中之一:uniq_record_id(唯一记录ID)、medical_record_id(医疗记录ID)、patient_id(患者ID)、hosp_id(医院ID)、hosp_name(医院名称)、disease_id(疾病ID)、disease_name(疾病名称)。
CTX(key)-将当前工作对象设为指定key对应的数据对象,同时将key作为当前环境名称;当前环境名称至少包括但不限于以下其中之一:jiwangshi(既往史)、shoushuqingkuang(手术情况)、tizhong(体重)、shengao(身高)、ryzd(入院诊断)、cyzd(出院诊断)、shoushuriqi(手术日期)、shoushumiingcheng(手术名称)。
ITER-将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象(但不改变当前环境名称),同时将元素下标生成以"当前环境名称_seq"命名的列;
JSON-将当前环境数据对象序列化为JSON字符串,生成以当前环境名称为列名的列;
SCALAR-将当前环境数据对象作为单值(若对象为列表类型则取首个元素),输出为以当前环境名称为列名的列。
具体地,以CID为根,将这些原语组成树形关系后即可表达多个待导出字段的数据抽取逻辑,具体方法为:
为每个待导出字段生成一条抽取原语链表,对于从根节点到待导出字段上的每个节点,若其为可取多值节点时,则为其额外生成新的一级ITER原语,最后的导出字段若为同构多值信息时,则默认使用JSON导出原语,否则默认使用SCALAR导出原语;
S203,根据原语级别和原语类型将所述原语链表合并为单个原语树。
在本实施例中,如图8所示,为合并后的单个原语树。
具体为:
A、确定各条原语链表中的各个原语的级别和类型;
B、将同一级别中相同的原语合并为一个原语节点;
C、通过连接关系将各个原语节点连接。
S204,判断所述单个原语树叶节点到根节点的路径中是否有可取多值节点;若是,则获取各个叶节点分别回溯到的各个首个可取多值节点,并将首个可取多值节点加入可取多值节点集合;且遍历所述可取多值节点集合中各个首个可取多值节点到根节点的路径及其下子树;以获取可表达为单个平面数据表的各个抽取原语树。若否,则遍历根节点及所述根节点下不包含可取多值节点路径的子树,以获取可表达为单个平面数据表的各个抽取原语树。如图9所示,为遍历后的抽取原语树。
S205,执行S206中获取的各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。例如,图9中的第一个抽取原语树中,CID中唯一记录ID、医疗记录ID、患者ID、医院ID、医院名称、疾病ID、疾病名称,叶节点中体重、身高分别为102f5037、19858、1233、13、测试医院、23、肺癌、68kg、身高175cm。图9中的第四个抽取原语树中的叶节点手术日期对应手术名称。具体为,手术日期2014.3.24对应手术名称左肺探查术,以及手术日期2014.3.25对应手术名称左肺上叶切除术。执行图9中的第一个抽取原语树和第四个抽取原语树中的原语分别获取得到了平面数据表5和表6,其中,为了简短起见,部分表格列名进行了缩写处理并变为大写形式,例如,唯一记录ID、医疗记录ID、患者ID、医院ID、医院名称、疾病ID、疾病名称分别被简写为URID、MRID、PID、HID、HNAME、DID、DNAME。
URID MRID PID HID HNAME DID DNAME tizhong shengao
102f5037 19858 1233 13 测试医院 23 肺癌 68kg 175cm
表5
表6
其中,下面以执行图9中第四个抽取原语树生成表6的过程为例说明步骤S105的具体执行过程。具体如下:
1、初始化内部状态state为﹛﹜,当前上下文ctx为None,当前数据对象为data为obj对应值,然后开始按下述过程前序遍历抽取树。
2、执行CID原语,从data中提取uniq_record_id、medical_record_id、patient_id、hosp_id、hosp_name-、disease_id、disease_name这些固定键对应值并记录在内部状态state中,此时state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院",
"disease_id":23,
"disease_name":"肺癌"
}
3、执行CTX(shoushuqingkuang)原语,设置data为data["shoushuqingkuang"]、ctx为shoushuqingkuang,此时data变为
4、执行ITER原语,对data中的数组元素进行遍历,设置idx为0、data为data[0],同时以当前ctx值shoushuqingkuang加_seq键、idx+1为值记录到state中,此时,data变为
{
"shoushuriqi":"2014-03-24",
"shoushumingcheng":"左肺探查术"
}
而state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院
"disease_id":23,
"disease_name":"肺癌",
"shoushuqingkuang_seq":1
}
5、执行CTX(shoushuriqi)原语,设置data为data["shoushuriqi"]、ctx为shoushuriqi,此时data变为
"2014-03-24"
6、执行SCALAR原语,以当前ctx值shoushuriqi为键、当前data为值记录到state中,此时state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院
"disease_id":23,
"disease_name":"肺癌",
"shoushuqingkuang_seq":1,
"shoushuriqi":"2014-03-24",
}
7、回溯一级至CTX(shoushuriqi)原语结点,恢复ctx和data
8、执行CTX(shoushumingcheng)原语,设置ctx为shoushumingcheng、data为data["shoushumingcheng"],此时data变为
"左肺探查术"
9、执行SCALAR原语,以当前ctx值shoushumingcheng为值、当前data为值记录到state中,此时state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院
"disease_id":23,
"disease_name":"肺癌
"shoushuqingkuang_seq":1,
"shoushuriqi":"2014-03-24",
"shoushumingcheng":"左肺探查术"
}
10、因当前抽取树的所有结点都被遍历了一遍,且state非空,则按照遍历顺序将state中的键值对作为表格的一行输出,如下表7所示,
表7
11、回溯一级至CTX(shoushumingcheng)原语结点
12、回溯一级至ITER原语结点,增加idx为1、data为data[1],同时以当前ctx值shoushuqingkuang加_seq为键、idx+1为值记录到state中,此时data变为
{
"shoushuriqi":"2014-03-25",
"shoushumingcheng":"左肺上叶切除术
}
而state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院
"disease_id":23,
"disease_name":"",
"shoushuqingkuang_seq":2,
"shoushuriqi":"2014-03-24",
"shoushumingcheng":"左肺探查术
}
13、执行CTX(shoushuriqi)原语,设置data为data["shoushuriqi"]、ctx为shoushuriqi,此时,data变为
"2014-03-25"
14、执行SCALAR原语,以当前CTX值shoushuriqi为键、当前data为值记录到state中,此时state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院",
"disease_id":23,
"disease_name":"肺癌",
"shoushuqingkuang_seq":2,
"shoushuriqi":"2014-03-25",
"shoushumingcheng":"左肺探查术"
}
15、回溯一级至CTX(shoushuriqi)原语结点
16、执行CTX(shoushumingcheng)原语,设置data为data["shoushumingcheng"]、ctx为shoushumingcheng,此时data变为
"左肺上叶切除术"
17、执行SCALAR原语,以当前ctx值shoushumingcheng为键、当前data为值记录到state中,此时state变为
{
"uniq_record_id":"102f5037",
"medical_record_id":19858,
"patient_id":1233,
"hosp_id":13,
"hosp_name":"测试医院",
"disease_id":23,
"disease_name":"肺癌",
"shoushuqingkuang_seq":2,
"shoushuriqi":"2014-03-25",
"shoushumingcheng":"左肺上叶切除术"
}
18、因当前抽取树的所有结点都被遍历了一遍,且state非空,则按照遍历顺序将state中的键值对作为表格的一行输出,具体如表8所示:
表8
19、回溯一级至CTX(shoushumingcheng)结点,恢复ctx和data
20、回溯一级至ITER结点,对应data数组所有元素都已处理完毕。
21、回溯一级至CTX(shoushuqingkuang)结点,恢复ctx和data
22、回溯一级至CID结点,恢复ctx和data
23、没有更多原语结点需要执行,抽取树执行完毕
最终产生的平面表9即为:
表9
其他几张平面表的生成过程与此类似,不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种将树形嵌套数据转换为平面数据表的方法,其特征在于,包括以下步骤:
A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;
B、获取从根节点到各个所述叶节点的各条路径;
C、根据所述各条路径生成各条原语链表;
D、将所述原语链表合并为单个原语树;
E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;
F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。
2.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
C1、生成所述各条路径的各个节点对应的抽取原语;
C2、将所述各条路径的各个节点对应的抽取原语分别串联成原语链表。
3.根据权利要求2所述的方法,其特征在于,所述步骤C1还包括:
当判断所述路径中的枝节点或叶节点为可取多值节点时,为所述枝节点或叶节点增加生成一级ITER抽取原语;
其中,所述可取多值节点为其下有同构节点组或者其本身包含同构多值信息的节点;
所述ITER为:将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象,同时将元素下标生成以当前环境名称命名的列。
4.根据权利要求3所述的方法,其特征在于,所述步骤C1还包括:
当判断所述路径中的节点为叶节点时,若所述叶节点对应的字段包含同构多值信息,则生成JSON原语;若所述叶节点对应的字段为单值信息,则生成SCALAR原语;
其中,所述JSON为:将当前环境数据对象序列化为JSON字符串,生成以当前环境名称为列名的列;
所述SCALAR为:将当前环境数据对象作为单值,输出为以当前环境名称为列名的列;其中,若所述对象为列表类型则取首个元素。
5.根据权利要求2所述的方法,其特征在于,所述步骤C1还包括:
当判断所述路径中的节点为根节点时,为所述根节点生成CID抽取原语;
当判断所述路径中的节点为枝节点时,为所述枝节点生成CTX抽取原语;
其中,所述CID为:生成预设公共字段;
所述CTX为:将当前工作对象设为指定key对应的数据对象,同时将key作为当前环境名称。
6.根据权利要求1所述的方法,其特征在于,所述步骤D包括:
D1、确定各条原语链表中的各个原语的级别和类型;
D2、将同一级别中相同的原语合并为一个原语节点;
D3、通过连接关系将各个原语节点连接,以获取单个原语树。
7.根据权利要求1所述的方法,其特征在于,所述步骤E包括:
E1、若所述单个原语树的各个叶节点回溯到根节点的各条路径中有可取多值节点,则分别获取所述各条路径中的各个首个可取多值节点;
E2、将所述各个首个可取多值节点加入可取多值节点集合;
E3、遍历所述可取多值节点集合中各个首个可取多值节点到根节点的路径及其下的子树,以及遍历根节点及所述根节点下不包含可取多值节点路径的子树,以获取各个抽取原语树。
CN201610248636.7A 2016-04-20 2016-04-20 一种将树形嵌套数据转换为平面数据表的方法 Active CN105930447B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610248636.7A CN105930447B (zh) 2016-04-20 2016-04-20 一种将树形嵌套数据转换为平面数据表的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610248636.7A CN105930447B (zh) 2016-04-20 2016-04-20 一种将树形嵌套数据转换为平面数据表的方法

Publications (2)

Publication Number Publication Date
CN105930447A true CN105930447A (zh) 2016-09-07
CN105930447B CN105930447B (zh) 2019-03-08

Family

ID=56839422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610248636.7A Active CN105930447B (zh) 2016-04-20 2016-04-20 一种将树形嵌套数据转换为平面数据表的方法

Country Status (1)

Country Link
CN (1) CN105930447B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407171A (zh) * 2016-11-03 2017-02-15 华能澜沧江水电股份有限公司 基于树形结构的安全监测自定义报表的生成系统及方法
CN110263104A (zh) * 2019-05-14 2019-09-20 阿里巴巴集团控股有限公司 Json字符串处理方法及装置
CN110618979A (zh) * 2019-08-14 2019-12-27 平安科技(深圳)有限公司 嵌套循环的数据处理方法、装置及计算机设备
CN110765123A (zh) * 2018-07-09 2020-02-07 株式会社日立制作所 基于树形结构的材料数据的存储方法、装置和系统
CN111667217A (zh) * 2020-06-09 2020-09-15 宏图智能物流股份有限公司 一种仓库网络信息存储方法
CN114021536A (zh) * 2021-11-17 2022-02-08 广州天维信息技术股份有限公司 多级表头报表的处理方法、装置、设备和存储介质
CN116108235A (zh) * 2023-02-20 2023-05-12 上海安博通信息科技有限公司 一种树形结构的路径获取方法、装置以及处理设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101002207A (zh) * 2004-06-04 2007-07-18 爱克发公司 进行结构化医学报告的一般方法
CN102950595A (zh) * 2012-10-31 2013-03-06 常州数控技术研究所 工业机器人的编程系统和方法
CN105190701A (zh) * 2013-05-15 2015-12-23 微软技术许可有限责任公司 基于原语的合成

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101002207A (zh) * 2004-06-04 2007-07-18 爱克发公司 进行结构化医学报告的一般方法
CN102950595A (zh) * 2012-10-31 2013-03-06 常州数控技术研究所 工业机器人的编程系统和方法
CN105190701A (zh) * 2013-05-15 2015-12-23 微软技术许可有限责任公司 基于原语的合成

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407171B (zh) * 2016-11-03 2023-09-26 华能澜沧江水电股份有限公司 基于树形结构的安全监测自定义报表的生成系统及方法
CN106407171A (zh) * 2016-11-03 2017-02-15 华能澜沧江水电股份有限公司 基于树形结构的安全监测自定义报表的生成系统及方法
CN110765123A (zh) * 2018-07-09 2020-02-07 株式会社日立制作所 基于树形结构的材料数据的存储方法、装置和系统
CN110263104B (zh) * 2019-05-14 2022-12-27 创新先进技术有限公司 Json字符串处理方法及装置
CN110263104A (zh) * 2019-05-14 2019-09-20 阿里巴巴集团控股有限公司 Json字符串处理方法及装置
CN110618979B (zh) * 2019-08-14 2022-09-09 平安科技(深圳)有限公司 嵌套循环的数据处理方法、装置及计算机设备
CN110618979A (zh) * 2019-08-14 2019-12-27 平安科技(深圳)有限公司 嵌套循环的数据处理方法、装置及计算机设备
CN111667217A (zh) * 2020-06-09 2020-09-15 宏图智能物流股份有限公司 一种仓库网络信息存储方法
CN111667217B (zh) * 2020-06-09 2022-07-12 宏图智能物流股份有限公司 一种仓库网络信息存储方法
CN114021536A (zh) * 2021-11-17 2022-02-08 广州天维信息技术股份有限公司 多级表头报表的处理方法、装置、设备和存储介质
CN114021536B (zh) * 2021-11-17 2022-08-09 广州天维信息技术股份有限公司 多级表头报表的处理方法、装置、设备和存储介质
CN116108235A (zh) * 2023-02-20 2023-05-12 上海安博通信息科技有限公司 一种树形结构的路径获取方法、装置以及处理设备
CN116108235B (zh) * 2023-02-20 2023-11-10 上海安博通信息科技有限公司 一种树形结构的路径获取方法、装置以及处理设备

Also Published As

Publication number Publication date
CN105930447B (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN105930447A (zh) 一种将树形嵌套数据转换为平面数据表的方法
CN102930023B (zh) 基于知识的数据质量解决方案
Wagner et al. Embedding trees in a hypercube is NP-complete
CN105468371A (zh) 一种基于主题聚类的业务流程图合并方法
CN107784598A (zh) 一种网络社区发现方法
CN102841891B (zh) 一种树状结构节点的排序方法、装置及查询系统
CN105138335A (zh) 一种基于控制流图的函数调用路径提取方法及装置
CN107423391A (zh) 网页结构化数据的信息提取方法
CN106022363A (zh) 一种适用于自然场景下的中文文字识别方法
CN105808766A (zh) 一种基于事务项约束扩展的多层关联规则挖掘方法
Barto et al. Near unanimity constraints have bounded pathwidth duality
CN109522416A (zh) 一种金融风险控制知识图谱的构建方法
CN107507171A (zh) 一种肺部ct图像气道三维骨架树状结构提取及标记方法
CN106933863A (zh) 数据清理方法及装置
Willems et al. Using hybridization networks to retrace the evolution of Indo-European languages
CN103927325B (zh) 一种对url进行分类的方法及装置
CN112905906B (zh) 一种融合局部协同与特征交叉的推荐方法及系统
CN105808729B (zh) 基于论文间引用关系的学术大数据分析方法
Friedman et al. Fusion and large cardinal preservation
CN106933844A (zh) 面向大规模rdf数据的可达性查询索引的构建方法
CN104850646A (zh) 一种针对单个不确定图的频繁子图挖掘方法
CN108614932A (zh) 基于边图的线性流重叠社区发现方法、系统及存储介质
Le Clément et al. Constraint-based graph matching
CN107423822A (zh) 贝叶斯网络构建方法及装置
Ghamarian et al. Incremental pattern matching in graph-based state space exploration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190121

Address after: 510627 Summer Plaza D505, Gaode Site, Pearl River New Town, Tianhe District, Guangzhou City, Guangdong Province

Applicant after: Zero Krypton Medical Intelligent Technology (Guangzhou) Co., Ltd.

Address before: 100080 BC District, 8 Haidian Street, Haidian District, Haidian District, Beijing, 8th Floor, Block A, Zhonggang International Building

Applicant before: Zero krypton Technology (Beijing) Co., Ltd.

GR01 Patent grant
GR01 Patent grant