CN114207598A - 电子表单表转换 - Google Patents
电子表单表转换 Download PDFInfo
- Publication number
- CN114207598A CN114207598A CN201980099111.3A CN201980099111A CN114207598A CN 114207598 A CN114207598 A CN 114207598A CN 201980099111 A CN201980099111 A CN 201980099111A CN 114207598 A CN114207598 A CN 114207598A
- Authority
- CN
- China
- Prior art keywords
- data
- header
- hierarchy
- region
- column
- 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.)
- Pending
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 claims description 42
- 238000007373 indentation Methods 0.000 claims description 35
- 238000001514 detection method Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 26
- 238000004458 analytical method Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 18
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 238000010801 machine learning Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000000926 separation method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009466 transformation Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 241000234295 Musa Species 0.000 description 2
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 2
- 235000014443 Pyrus communis Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/137—Hierarchical processing, e.g. outlines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Document Processing Apparatus (AREA)
Abstract
提供了一种用于电子表单表转换的方案。在该方案中,检测电子表单表的至少一个表头区域和数据区域。通过分析表头区域中的单元合并和/或缩进、和/或数据区域的对应单元中的数据项之间的函数关系,确定表头区域中每个表头区域的层级结构。基于对表头区域的层级结构的识别,电子表单表能够被转换为关系表。以此方式,基于表头层级来辅助理解表头结构,可以实现从电子表单表向关系表的自动转换。
Description
背景技术
电子文档通常包含电子表单表,以传递密集封装的多维数据。可以通过采用布局模式来编辑电子表单表,以便以二维形式有效地指示数据项。许多电子表单表被设计成由人类解释并且具有灵活结构。它们通常包括表头、嵌入子表头和各种单元尺寸的复杂集合。然而,表结构和内容的丰富组合呈现出了由其他工具进行复杂数据分析、可视化、故障检测和其他处理时对电子表单表进行使用的困难。在各种场景下,期望将电子表单表转换为统一结构以便由机器进行后续处理。
发明内容
根据在此描述主题的实现,提供了一种用于电子表单表转换的方案。在该方案中,检测电子表单表的一个或多个表头区域和数据区域。通过分析表头区域中的单元合并和/或缩进、和/或数据区域的对应单元中的数据项之间的函数关系,确定表头区域中每个表头区域的层级结构。基于对表头区域的层级结构的识别,电子表单表能够被转换为关系表。以此方式,基于表头层级来辅助理解表头结构,可以实现从电子表单表向关系表的自动转换。
提供发明内容部分以便以简化形式介绍将在以下具体实施方式部分中进一步描述的一些概念。本发明内容部分无意标识所要求保护的主题的关键特征或必要特征,也无意用于限制所要求保护的主题的范围。
附图说明
图1示出其中可实现本公开的各种实现的计算设备100的框图;
图2示出了根据本公开的实现的表分析模块的框图;
图3示出了根据本公开的实现的电子表单表的区域检测的结果的示例;
图4A和图4B示出了根据本公开的实现的表头层级结构的示例;
图5A示出了根据本公开的实现的电子表单表的另一示例,其中显示了公式而不是结果值;
图5B示出根据本公开的实现的图5A中的电子表单表的表头层级结构的示例;
图6示出了根据本公开的另一实现的表分析模块的框图;
图7示出了根据本公开的实现的示例用户界面;
图8A至图8C示出了根据本公开的实现的示例用户界面;
图9示出了根据本公开的实现的用于表转换的过程的流程图。
贯穿附图,相同或相似的附图标记表示相同或相似的元件。
具体实施方式
现在将参考多个示例实现来讨论本公开。应当理解,讨论这些实现仅仅是为了使本领域技术人员能够更好地理解并因此实现本公开,而并不暗示对主题范围的任何限制。
如本文所用,术语“包括”及其变体应被解读为开放式术语,其意指“包括但不限于”。术语“基于”应当被理解为“至少部分地基于”。术语“一个实现”和“实现”将被解读为“至少一个实现”。术语“另一实现”将被解读为“至少一个其他实现”。术语“第一”、“第二”等可以指不同或相同的对象。下文可以包括其他明确或隐含的定义。
示例环境
在各种情况下,期望将电子表单表转换为关系表以便由机器进行后续处理。当前,在当今的典型工作流中存在一个关键步骤:从电子表单表中手动提取数据,并将数据转换成统一结构,例如关系表。这样的手动提取和转换是乏味且耗时的,尤其是当表复杂时。由于机器理解电子表单表的困难,缺乏用于将电子表单表转换为关系表的自动化技术。在本公开的实现中,提供了一种用于自动化电子表单表转换的方案。
图1示出其中可实现本公开的各种实现的计算设备100的框图。应当理解,图1所示的计算设备100仅用于说明的目的,而不表示以任何方式对本公开的实现的功能和范围做出任何限制。如图1所示,计算设备100包括通用计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
在一些实现中,计算设备100可被实现为具有计算能力的任何用户终端或服务器终端。服务器终端可以是由服务提供商提供的服务器、大型计算设备等。用户终端例如可以是任何类型的移动终端、固定终端或便携式终端,包括移动电话、站、单元、设备、多媒体计算机、多媒体输入板、因特网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收机、无线电广播接收机、电子书设备、游戏设备或其任何组合,包括这些设备的附件和外围设备或其任何组合。可以设想,计算设备100可以支持到用户的任何类型的接口(诸如“可穿戴”电路等)。
处理单元110可以是物理或虚拟处理器,并且可以基于存储在存储器120中的程序来实现各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以便提高计算设备100的并行处理能力。处理单元110也可称为中央处理单元(CPU)、微处理器、控制器或微控制器。
计算设备100通常包括各种计算机存储介质。这样的介质可以是计算设备100可访问的任何介质,包括但不限于易失性和非易失性介质、或可分离和不可分离介质。存储器120可以是易失性存储器(例如,寄存器、高速缓冲存储器、随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)或快闪存储器)或其任何组合。存储设备130可以是任何可分离或不可分离的介质,并且可以包括机器可读介质,诸如存储器、闪存驱动器、磁盘或另一其他介质,其可以用于存储信息和/或数据并且可以在计算设备100中访问。
计算设备100还可以包括附加的可分离/不可分离、易失性/非易失性存储介质。尽管在图1中未示出,但可以提供用于从可拆卸和非易失性磁盘读取和/或写入其中的磁盘驱动器、以及用于从可拆卸非易失性光盘读取和/或写入其中的光盘驱动器。在这样的情况下,每个驱动器可以经由一个或多个数据介质接口连接到总线(未示出)。
通信单元140经由通信介质与另一计算设备通信。此外,计算设备100中的组件的功能可由单个计算集群或可经由通信连接进行通信的多个计算机来实现。因此,计算设备100可以使用与一个或多个其他服务器、联网的个人计算机(PC)或其他通用网络节点的逻辑连接,在联网环境中操作。
输入设备150可以是多个输入设备中的一个或多个,例如鼠标、键盘、跟踪球、语音输入设备等。输出设备160可以是诸如显示器、扬声器、打印机等各种输出设备中的一个或多个。通过通信单元140,计算设备100还可以与诸如存储设备和显示设备的一个或多个外部设备(未示出)通信,如果需要,还可以与使得用户能够与计算设备100交互的一个或多个设备、或者使计算设备100能够与一个或多个其他计算设备通信的任何设备(诸如网卡,调制解调器等)通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
在一些实现中,作为集成在单个设备中的替代,计算设备100的一些或全部组件也可以被布置在云计算架构中。在云计算体系结构中,组件可被远程提供,并且一起工作以实现本公开中描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,而不要求终端用户知道提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用合适的协议经由广域网(诸如因特网)提供服务。例如,云计算提供方在广域网上提供应用程序,其可通过web浏览器或任何其他计算组件来访问。云计算体系结构的软件或组件以及相应的数据可以存储在远程位置处的服务器上。云计算环境中的计算资源可被合并或分布在远程数据中心中的位置处。云计算基础设施可以通过共享数据中心来提供服务,尽管它们对于用户而言表现为单个接入点。因此,云计算体系结构可用于从远程位置处的服务提供商提供本文所述的组件和功能。备选地,它们可以从常规服务器提供、或直接安装、或以其他方式安装在客户端设备上。
计算设备100可以被用于实现本公开的实现中的表转换。因此,在下文中,计算设备100也被称为“表转换设备”。存储器120可以包括具有一个或多个程序指令的一个或多个表分析模块122。这些模块可由处理单元110访问和执行,以便执行本文描述的各种实现的功能。
在执行表转换时,计算设备100可以通过输入设备150接收电子表单文件170。电子表单文件170包含用于转换的至少一个电子表单表172。表分析模块122对电子表单表172执行电子表单表到关系表的转换,以生成一个或多个关系表180。关系表180包括多个数据记录182,每个数据记录182包括来自电子表单表172的数据项。关系表180以统一结构排列数据项。输出设备160可以将关系表180呈现给观看者,或者将关系表180传输或存储到其他设备或数据库。关系表180还可以本地存储在计算设备100处以供将来使用。
如本文所使用的,“电子表单表”是指包括行和列中的单元或网格的表,具有以二维形式指示数据值的任何布局模式。可以使用电子表单应用程序来生成、编辑和/或呈现电子表单表。如本文所使用的,“电子表单应用程序”是指未修改的、商业上可获得的应用程序,其可操作以将数据呈现和处理为包括单元网格的电子表单。电子表单应用程序的示例包括但不限于Excel和Open Office Calc.。
如本文所使用的,“关系表”具有一组记录,其中每个记录被称为该表的一行。关系表以统一或规范化结构组织数据,其中同一关系表中的每个记录具有相同数目的数据字段。通常,一个记录的一个或多个数据字段可以形成针对该记录的包含数据值的一个或多个其他数据字段的索引。然而,一个记录中的一些字段可能不保存数据,由NULL(空)值指示。关系表的对应数据字段形成一组列,其可以具有可能不是数据本身的一部分的特定名称。记录的每个数据字段可以具有特定含义,因此在一些情况下,关系表可以具有包含用于描述相应数据字段的表头字段的表头记录。表头记录可以被放置作为关系表的第一行。关系表有时可称为数据库表、或列优先(column-major)的平面表。
如本文所使用的,从电子表单表到关系表的“转换”操作是使用关系表来索引电子表单表中的每个数据值。与电子表单表相比,机器易于分析和处理关系表。
应当理解,图1所示的电子表单表和关系表仅用于说明目的。在其他示例中,可以处理任何电子表单表,并且可以相应地生成任何关系表。
工作原理和用于实施表转换的示例结构
根据本公开的实现,提出了一种用于电子表单表转换的方案。在该方案中,检测电子表单表的一个或多个表头区域和数据区域。通过分析表头区域中的单元合并和/或缩进、和/或数据区域的相应单元中的数据项之间的函数关系,确定每个表头区域的层级结构。基于对表头区域的层级结构的识别,电子表单表能够被转换为关系表。这样,通过基于表头层级级别促进对表头结构的理解,可以实现从电子表单表到关系表的自动转换。以下参考附图描述本公开的基本原理和多个示例实现。
首先参考图2,图2示出了根据本公开的实现的表分析模块的框图。出于说明目的,参考图1的计算设备100中的表分析模块122,用于实现本文所述的表转换的示例。表分析模块122包括用于实现电子表单表的转换中的多个阶段的多个模块。
为了更好地理解本公开的实现,首先介绍与电子表单表相关的一些基本概念。
电子表单表包括排列成行和列的单元(或网格)。单元是表中的基本组件。在一些情况下,可以将多个单元合并成一个单元,称为合并单元。行或列中的合并单元可以延伸越过后续行或单元中的多个单元;因此,合并单元的长度可以等于后续行或单元中的多个单元的总长度。填充在单元中的数据通常可称为数据项。电子表单表中的一些单元可以是空白的,没有被填充任何有效值或字符。数据项可以是任何表示格式的字符串或数值。数据项和单元可以以电子表单表的编辑工具所支持的各种结构来组织和/或各种方式来呈现。
电子表单表通常可以被划分成不同类型的区域,包括:用于呈现电子表单表的标题的标题区域、用于呈现与该表相关的注释的注释区域、用于呈现数据值的数据区域、以及用于索引或描述数据区域内的数据值的表头区域。表中的每个区域可以由电子表单表的一行或多行或多列中的一个或多个单元组成。一些电子表单表可以不包括标题区域和注释区域。
表头区域通常可位于电子表单表的顶侧或左侧。位于顶侧的表头区域可以被称为顶部表头区域,而位于左侧的表头区域可以被称为左表头区域。可以理解,位于电子表单表的底侧或右侧的表头区域也是可能的。顶部表头区域(或底部表头区域)具有按行朝向排列的数据项,因此有时可称为行朝向的表头区域。左表头区域(或右表头区域)具有按列朝向排列的数据项,因此有时可以称为列朝向表头区域。电子表单表可以包括一个以上的表头区域,例如包括顶部表头区域和左侧表头区域。应注意,虽然其他类型的表头区域(例如,底侧或右侧处的表头区域)也是可能的,但为了便于描述,本文将顶部表头区域和左表头区域描述为表头区域的典型实例。
发明人已经发现,填充在表头区域的单元中的数据项可以根据它们在电子表单表中的功能被分类为不同的语义类别。表头区域中的数据项可用作索引数据区域的行或列中的数据项的索引,并且因而这样的索引可以被认为是一个语义类别。例如,在包含过去十年在不同国家的产品销售额的电子表单表中,该表中所指示的国家(诸如,中国、美国、澳大利亚等)的名称可以是用于索引销售额的相应索引,并且表中所指示的年份(诸如,2016、2017、2018等)也可以是用于索引销售额连同国家名称的相应索引。在一些情况下,表头区域中的数据项可用作索引集合名称,用于描述用于索引数据区域的行或列中的数据项的索引的集合,因此这样的索引集合名称可以被认为是一个语义类别。索引的集合可以在表头区域的同一行或同一列中,并且可以在语义上聚合。例如,“国家”是指中国、美国、澳大利亚等索引的索引集合名称。
此外,表头区域中的数据项可以是用于描述数据区域的行或列中的数据项的值名称,因此这样的值名称可以被认为是一个语义类别。这样的类型的数据项不能被用于索引数据区域中的数据项,因为由不同索引数据项索引的不同行或列中的数据项可以具有相同的值名称。例如,值名称可以是诸如“数目”、“量”、“百分比”的量度或诸如“米”、“ml”等的量度单位。在一些情况下,表头区域中的数据项可以是用于描述数据区域的行或列中的如下数据项的聚合名称,这些数据项是从数据区域的至少一个另外的行或列中的数据项计算得到的。这样的聚合名称的示例可以是描述从多个其他数据项中总结的结果的数据项的“总计”或“小计”。其他示例可以包括“最大”、“最小”、“平均”、“除法”等。应当理解,值名称和聚合名称的术语被提供仅用于解释说明,并且它们的表示相同或相似语义的变体也可能包含在电子表单表中。
上文已经讨论了与电子表单表相关的一些概念。可以使用图2中的表分析模块122来实现表转换过程。如图所示,表分析模块122包括区域检测阶段或模块210、表头层级结构识别阶段或模块220以及表转换阶段或模块230。
在一些实现中,可以提供包含电子表单表172的电子文档或文件,作为表分析模块122的输入。表分析模块122可以首先从诸如电子表单文件170之类的文件中检测电子表单表172。例如,可以通过确定文件170中的电子表单表172的边界框,来检测文件170中的电子表单表172。在一些实现中,文件170中的电子表单表172的区域可以由用户明确地或隐含地指示。用于自动或手动辅助表检测的任何方法(无论是已有的还是将来要开发的)都可用于检测电子文档中电子表单表172的范围。
在确定了电子表单表172的边界框的情况下,区域检测模块210被配置为检测包含在电子表单表172中的不同类型的区域,尤其是检测至少一个表头区域和数据区域。电子表单表潜在地包括顶部表头区域和/或左侧表头区域。区域检测模块210可以检测这两种类型的表头区域中的每一种是否被包含在电子表单表172中。在检测到一个或多个表头区域的情况下,电子表单表的数据区域可以被确定为包括与一个或多个表头区域相对应的相同行和/或列中的有效数据项。图3示出了在由区域检测模块210检测之后的示例电子表单表172上的检测结果。如图所示,在检测时,电子表单表172包括顶部表头区域310-1和左表头区域310-2(统称或单独称为电子表单表172的表头区域310)。电子表单表127还包括数据区域320,该数据区域320包含可由表头区域中的数据项索引的数据项。下面将详细讨论区域检测模块210中的表头检测。
区域检测模块210的检测结果,即(多个)表头区域和数据区域的检测,被提供给表头层级识别模块220。表头层级结构识别模块220被配置为确定检测到的(多个)表头区域中每个表头区域中的数据项的层级结构。与一个表头区域相关的层级结构可以包括一个或多个层级级别,每个层级级别对应于被填充在该表头区域的单元中的一个或多个数据项。在复杂电子表单表中,表头区域可以被设计成在语义上具有更多层级级别。表头区域的底层层级结构的识别可以促进对电子表单表的理解以及之后的表转换。
根据本公开的实现,基于对以下三个特征中的一个或多个的检测来确定表头区域中的数据项的层级结构,这三个特征包括:表头区域中的单元合并、表头区域中的单元的缩进级别、或在数据区域中在一个单元中关于至少一个另外单元定义的函数关系。当在电子表单表172中检测到一个以上的表头区域时,每个表头区域的层级结构可以由表头层级识别模块220以类似的方式并行地或顺序地确定。通过检测来自表头区域的三个特征中的任何特征,可以理解每个表头区域中数据项的层级结构。在一些实现中,附加地或可替换地,可以在表头层级结构识别模块220中应用表头区域中数据项的自动语义分析,以确定表头层级结构。下面将更详细地讨论表头层级结构识别的一些实现。
电子表单表172的(多个)表头区域的层级结构被提供给表转换模块230,该表转换模块230被配置成基于(多个)对应表头区域的(多个)层级结构,将电子表单表172转换成至少一个关系表180。关系表是以统一结构安排电子表单表172中的数据项。通常,关系表可以包括多个数据记录,每个数据记录包括与电子表单表中的数据项相对应的多个数据字段。多个数据记录中的对应数据字段包含:在层级结构中处于相同层级级别的表头区域的数据项、或由表头区域的数据项索引的数据区域中的数据项。
取决于层级结构,电子表单表172可以具有一个或多个可能的下钻(drill-down)级别。电子表单表172中的数据项可以从各个下钻级别的角度重新排列,以形成相应关系表。下面将详细讨论基于层级结构的表转换。
应理解,图2中的模块可实施为一个或多个软件引擎、组件等,其配置有用于实施属于特定模块的功能性的逻辑。每个模块可以使用一个或多个这样的软件引擎、组件等来实现。软件引擎、组件等在一个或多个计算系统或设备的一个或多个处理器上执行,并且利用或操作存储在一个或多个计算系统上的一个或多个存储设备、存储器等中的数据。在一些实现方式中,图2中的不同模块可以被实现为单个模块,并且图2中的单个模块可以被分离为一个以上模块。在一些实现方式中,一个或多个另外的模块可以被包括在表分析模块122中。
表头区域检测
在检测电子表单表中的一个或多个表头区域时,区域检测模块122可以确定在电子表单表172的水平方向或垂直方向上是否存在分隔表头区域和数据区域的分隔线。分隔线可以被认为是顶部表头区域的最后一行和数据区域的第一行之间的线,或者是左表头区域的最后一列和数据区域的第一列之间的线。顶部表头区域可以包括电子表单表172的一行或多行,并且左侧表头区域可以包括电子表单表172的一列或多列。如果在水平方向上存在分隔线,则顶部表头区域被检测为包含如下区域:该区域包含从电子表单表172的第一行到定义分隔线的那个行的一行或多行。类似地,如果在垂直方向上存在分隔线,则可以检测到左表头区域。
在一些实现中,区域检测模块122可以检测电子表单表172中的行和列的一个或多个以下特征,以确定是否存在顶部表头区域或左表头区域,以及电子表单表172中的哪个区域可以被认为是顶部表头区域或左表头区域。这些特征可以包括:在电子表单表172的行和/或列的单元中检测到至少一个空白值的出现;电子表单表的行和/或列的单元中的数据类型,电子表单表172中的行和/或列的相对位置;电子表单表172的行和/或列中的数据转换,其指示相邻单元中的数据项之间的对比;和/或电子表单表172的行和/或列中的数值分布。通过考虑与电子表单表172的行和/或列相关的一个或多个特性,可以在分隔线处检测针对表头区域的可能的行或列。
与行和/或列相关的特性可称为行/列特性或线特性,其可从对应行和/或列中的单元的一个或多个特性来评估。在一些实现中,有助于表头区域检测的单元的特性可以包括:填充在单元中的数据项、数据项的类型(通过检测数据项是否以浮点、整数或串表示)、和/或填充在单元中的数值的表示(例如,以数字、日期、时间或其他形式表示)。可替换地或附加地,可以从单元中导出其他特性,例如,关于单元合并、单元样式化、数据项的语义等的信息。单元样式化例如可以包括字体、字体颜色、样式、背景颜色、缩进级别、间隔、和/或定义单元中数据项的呈现方式的其他特性。
在一些实现中,区域检测模块210可以应用机器学习模型来基于行/列特性,检测电子表单表172中的一个或多个表头区域。可以应用各种类型的机器学习模型,其示例可以包括梯度提升决策树(GBDT)模型、支持向量机(SVM)、随机森林、神经网络等。模型的输出是电子表单表172内的顶部表头区域和/或左侧表头区域的位置。例如,模型的输出可以指示两行或两列之间的线是表头区域和数据区域的分隔线。在一些实现中,行/列特性可以直接用作机器学习模型的输入。在存在与分隔线邻接的一个或多个空白列或行的情况下,这样的空白列或行可以被认为是数据区域的一部分。在一些其他实现方式中,可以从用作机器学习模型的输入的行/列特性导出各种其他特性,只要这些特性被认为与模型的输出相关联。可以使用训练数据来确定机器学习模型。训练数据可以包括用于已知电子表单表的各种模型输入和相应的基本真值输出。
表头层级结构识别
如上所述,表头层级结构识别模块220基于单元合并、缩进级别、函数关系和可能的数据项语义分析中的一个或多个,来确定电子表单表172中每个检测到的表头区域的层级结构。层级结构的全部或部分可以基于上述因素之一来确定。在一些实现中,层级结构可以被表示为树结构,其中每个节点表示表头区域中的数据项。
在一些实现中,如果一个或多个合并单元出现在表头区域中,则表头层级识别模块220可以确定表头区域的层级结构。在检测到行或列中的合并单元时,表头层级结构识别模块220还可以确定表头区域中是否存在后续行(在顶部表头区域的情况下)或后续列(在左侧表头区域的情况下)。在存在后续行或列的情况下,合并单元延伸越过后续行或列中的多个单元,表头层级识别模块220确定层级结构中处于一个层级级别的节点(在此,有时仅为了便于描述而称为“第一”层级级别)以表示该合并单元中的数据项,以及确定层级结构中处于一个层级级别的多个节点(在此,有时仅为了便于描述而称为“第二”层级级别)以分别表示多个单元中的数据项。第二层级级别低于第一层级级别。即,合并单元中的数据项具有比合并单元在其上延伸的后续行或列中的单元中的数据项更高的层级级别。这是人们在设计电子表单表时遵循的规则。
在图1和图3所示的示例电子表单表172中,顶部表头区域310-1在其第一行中具有两个合并单元,它们分别填充有数据项“Small size(小尺寸)”和“Large size(大尺寸)”。两个合并单元中的每个合并单元延伸越过后续的第二行中的两个单元。因此,合并单元中的数据项处于比合并单元所覆盖的后续行中的数据项更高的层级级别。图4A示出了顶部表头区域310-1的示例性层级结构401。如图所示,层级结构401包括节点420-1和420-2,节点420-1和420-2表示顶部表头区域310-1中的两个合并单元中的数据项。节点420-1和420-2具有它们的子节点430-1、430-2和子节点430-3和430-4,它们表示由合并单元覆盖的表头区域的单元中的数据项。节点420-1、420-2处于层级结构401中的第一层级级别,其高于节点430-1到430-2的层级级别。
在一些实现中,表头区域中的与单元合并无关的各个数据项可被确定为层级结构中的各个节点,并且它们的层级级别可以与对应于同一行(对于顶部表头区域)和同一列(对于左表头区域)处的数据项的级别相同。例如,在图4A的结构401中,表示数据项“Totalhouseholds(总户)”的节点420-3处于与节点420-1和420-2相同的层级级别。
在一些示例中,如果在电子表单表172的表头区域中不可能找到满足如下的任何特定数据项(该特定数据项与层级结构中所确定的层级级别处所需的节点相关联),则可以在层级结构中构造虚拟节点。在一些示例中,虚拟节点可以是层级结构的虚拟根节点,或者可以是表示表头区域中的数据项集合的子节点集合的虚拟父节点。如图4A的例子所示,虚拟“根”节点410被包含在层级结构401中。
在一些实现中,单元中的缩进级别可以反映它们的层级关系。缩进级别通常用于确定列朝向的表头区域(左表头区域、或可能的右表头区域)中的层级结构。因此,表头层级结构识别模块220可以确定表头区域(例如,左表头区域)的同一行中的数据项的缩进级别。在一些示例中,单元的缩进级别可以通过单元左侧与其中填充的数据项的开始之间的距离来测量。所测量的距离越大,缩进级别越高。通常,具有相同缩进级别的单元中的数据项在表头区域的整个层级结构中处于相同层级级别的概率越高,而具有较高缩进级别的单元中的数据项可能处于比具有较低缩进级别的单元中的数据项更低的层级级别。
具体地,在确定电子表单表172的左表头区域的层级结构时,表头层级识别模块220检测到表头区域中的单元的缩进级别低于表头区域中的一个或多个其他单元的缩进级别。在这样的情况下,表头层级结构识别模块220确定层级结构中处于一个层级级别的节点(这里有时为了便于描述而称为“第三”层级级别)用以表示具有较低缩进级别的数据项,并且确定在层级结构中处于另一层级级别的节点(这里有时为了便于描述而称为“第四”层级级别)来表示具有较高缩进级别的数据项。
在一些实现方式中,表头层级识别模块220检测到左表头区域的相同列中的多个单元具有相同缩进级别,并且然后可以至少基于这样的检测来确定层级结构中处于相同层级级别(此有时仅为了便于描述而被称为“第五”层级级别)的相应节点,以表示这些多个单元中的数据项。
在图1和图3所示的示例电子表单表172中,左表头区域310-2包括使用不同缩进级别排列的数据项。更具体地,填充有数据项“Married-couple families(已婚夫妇家庭)”的单元具有比与年龄相关的后续四个单元的缩进级别更低的缩进级别。此外,后续四个单元的缩进级别被确定为相同。因此,根据缩进级别,如图4B所示确定左表头区域310-2的示例性层级结构402,其中表示具有较低缩进级别的数据项“Married-couple families”的节点440处于比表示后续四个单元中具有较高缩进级别的数据项的节点450-1至450-4更高的层级级别。
应当理解,虽然示出了两个不同缩进级别的比较示例,但是在其他实现中,诸如电子表单表的左表头区域等面向列的表头区域可包含具有两个或更多个不同缩进级别的单元。可以相应地确定该表头区域的层级结构。
作为替换或附加,表头层级结构识别模块220可以检测数据区域的不同单元中的数据项之间的一个或多个函数关系,并基于检测到的函数关系来确定表头区域的层级结构。许多电子表单表编辑工具向用户提供插入各种公式的选项,以从数据区域中的一个或多个其他数据项计算数据项。公式可以表示数据项之间的函数关系,其指示要对一个或多个数据项执行操作以计算结果数据项。函数关系的一些示例可以包括求和(summing up)、除法(dividing)、最大化(maximizing)、最小化(minimizing)、条件函数(conditionalfunction),等。
数据区域中的数据项之间的函数关系可以反映表头区域中的相应数据项的一种层级。因此,在检测到数据区域中在第一单元中关于至少一个第二单元定义的函数关系时,表头层级识别模块220可以确定层级结构中处于一个层级级别的一个或多个节点(本文中有时仅为了便于描述而称为“第六”层级级别)用以表示表头区域的单元中的对应数据项,并且确定层级结构中处于一个层级级别的至少一个节点(本文中有时仅为了便于描述而称为“第七”层级级别)用以表示表头区域的单元中的对应数据项。与数据区域中的数据项相对应的表头区域中的数据项是索引或描述该数据区域中的该数据项的数据项,这两个数据项可以在相同的列中(在顶部表头区域的情况下)或在相同的行中(在左表头区域的情况下)。
根据函数关系的类型,第六层级级别和第七层级级别可以在相同级别或不同级别。在不同级别的情况下,第六层级级别可以高于或低于第七层级级别。在一些示例中,如果函数关系指示求和操作,则第六层级级别可以高于第七层级级别。如果函数关系指示对多个数据项进行平均,最大化或最小化的操作或者对数据项进行除法的操作,则第六层级级别可以等于第七层级级别。可以预先配置两个层级级别的差异或等同性与不同类型的函数关系之间的映射。
为了说明基于函数关系确定层级结构,图5A示出了电子表单表172的不同示例,其中检测到该表的左表头区域510和数据区域520。具体地,如图5A中突出显示的,在由列B和行2索引的单元(由“B2”表示,并且可以类似地表示其他单元的位置)中插入求和公式,指示该单元B2中的数据值是数据区域520中的四个其他单元B3、B4、B5、B8中的数据值的和。在单元B2的同一行中的单元C2中插入类似的求和公式。这样,表头层级结构识别模块220可以确定与单元B2和C2中的数据项相对应的表头区域510中的数据项“All Sources(所有源)”处于较高层级结构级别,而与单元B3、B4、B5和B8中的数据项相对应的表头区域510中的数据项“Stationary Sources(固定源)”,“Area-wide Sources(区域范围源)”,“On-roadMobile(路上机动车)”和“Other Mobiles(其他机动车)”处于较低层级级别,它们的节点连接到表示数据项“All Sources”的节点。类似地,在同一行中的单元B5和C5检测到求和公式,并且在在另一行中的单元B8和C8检测到求和公式,指示这些单元中的每个数据值是其他单元中的数据值的和。
图5B示出了层级结构530,该层级结构530是基于在该示例电子表单表172的数据区域中检测到的函数关系从左表头区域510识别的。表示表头区域510中的单元A2的数据项的节点540处于较高层级级别,而作为节点540的子节点,表示表头区域510中的单元A3、A4、A5和A8的数据项的节点550-1至550-4处于相对较低层级级别。类似地,节点550-3在表示单元A6和A7的数据项的较低层级级别处具有两个子节点560-1、560-2,并且节点550-4在表示单元A9至A11的数据项的较低层级级别处具有三个子节点560-3、560-4、560-5。
在一些实现中,表头层级结构识别模块220可以对包含在表头区域中的数据项执行语义分析,以支持表头层级结构的检测。语义分析可以帮助确定表头区域中的多个数据项是具有并行语义含义还是属于较高语义角色。例如,如果数据项的序列{Apple,Banana,Orange,Pear,China,US}被包括在表头区域中,则通过语义分析,表头层级识别模块220可以确定数据项集合{Apple,Banana,Orange,Pear}处于相同层级级别,该层级级别可以低于对应于“fruit”的虚拟节点的层级级别(如果这样的数据项没有被包括在表头区域中)。还可以确定数据项集合{China,US}处于相同的层级级别,则该层级级别可以低于对应于“country”的虚拟层级级别(如果这样的数据项没有被包括在表头区域中)。
以上实现描述了基于包括单元合并、缩进级别和/或函数关系的各种因素来确定表头区域在层级结构中的层级级别。基于不同因素的确定过程的层级结果可以被聚合以形成表头区域的完整层级结构。
在一些实现中,可以应用基于机器学习的方法来从结果预测正确的层级结构。例如,如果从这些因素所确定的层级结构结果中存在不一致,可以训练并应用机器学习模型。此外,机器学习模型还可以帮助处理某些电子表单表,其中在表头区域中未找到单元合并、缩进和/或函数关系或不足以检测表头层级结构。例如,如果单元实际上没有被合并,而是被可视地设计成具有“合并”的效果,并且扩展跨越多个其他单元,则机器学习模型可被训练成便于预测与这些单元相关的相应层级级别。在一些实现中,当发现此类不一致性时,可能需要用户干预或确认,以邀请用户基于对电子表单表的表头区域的人类理解来调整或确认层级结构。
在一些实现中,除了层级结构之外,表头层级识别模块220还可被配置成确定电子表单表172的表头区域中的数据项的相应语义类别,并因此将表示数据项的层级结构的节点标记为具有相应语义类别。表头区域中的数据项的语义类别可以是如上所述的那些语义类别,包括:用于索引数据区域的行或列的数据项的索引,用于描述用于索引数据区域的行或列中的数据项的索引的集合的索引集合名称,用于描述数据区域的行或列中的数据项的值名称,用于描述数据区域的行或列中的如下数据项的聚合名称,这些数据项是从数据区域的至少一个另外的行或列中的数据项计算得到。用于表头区域中的节点标记的语义类别也可用于表转换模块230中的表转换。
为了确定数据项的语义类别,表头层级结构识别模块220还可以识别按照父子关系在树结构中链接的一个或多个节点集合,并为该节点集合中的每个节点构造多个预定语义模式。每个语义模式指示父子关系中的各个节点的语义类别的不同组合。例如,对于具有父节点和两个子节点的一个节点集合,语义模式可以被确定为{索引集合名称,索引,索引},{索引,索引,聚合名称},{索引,值名称,值名称},其中上述列表中的第一个语义类别是针对父节点的,而其余语义类别是针对子节点的。
然后,表头层级识别模块220可以确定树结构和多个预定语义模式之间的相应语义匹配级别。语义匹配级别可以通过测量语义模式中的每个语义类别与树结构中的对应节点是否匹配,然后对在语义模式中找到的匹配的语义类别的数目求和来确定。在一些情况下,可以通过测量与树结构中的各个节点匹配的语义模式的总体匹配概率来确定语义匹配级别。如果语义匹配级别指示一个模式中的所有或大部分语义类别与树结构中的节点匹配,或者总匹配概率超过一个阈值,则表头层级识别模块220确定树结构中的节点集合的语义类别为该模式中指示的相应语义类别。在一些实现中,可以应用预先训练的机器学习模型来确定树结构和语义模式之间的语义匹配级别。将在下面的表转换过程中描述节点的语义类别的使用。
表朝向检测
在一些实现中,在表转换处理期间,还期望确定电子表单表172中的数据排列的朝向。通常,表中数据排列的朝向可以包括列优先(column-major)朝向、行优先(row-major)朝向、或行和列的交叉朝向。表分析模块122还可以包括实现这样的表朝向检测的模块。图6示出了这样的实现中的表分析模块122的示例。如图所示,表分析模块122还包括朝向确定模块610,用于确定电子表单表172中的数据排列的朝向。朝向确定模块610可能需要区域检测模块210和电子表单表172的检测结果作为输入。
在一些实现中,朝向确定模块610可以检测数据项的表示格式在数据区域的行方向和/或列方向上是否显著一致。如果数据区域中的数据项在行方向、列方向、或在两个方向上具有完全相同的表示格式,则朝向确定模块610可以确定电子表单表172在行和列中具有行优先朝向、列优先朝向或交叉朝向。通常,交叉朝向可以具有顶部表头区域和左表头区域两者。
如果数据项的表示格式不能指示显著的一致性,或者作为替换,朝向确定模块610可以利用一个或多个其他规则。例如,朝向确定模块610可以检测在数据区域的行方向和/或列方向上是否存在数据类型的一致性,在至少一个表头区域的行方向和/或列方向上至少一个表头区域是否存在太多的空白单元(例如,空白单元的数目超过阈值数目),和/或在数据区域的行方向或列方向上的数据的长度是否足够长(例如,高于预定的长度阈值)。取决于检测/确定的一个或多个结果,朝向确定模块610可以确定电子表单表172中的数据排列的方向。例如,图1和图2所示的示例电子表单表172具有行和列中的交叉朝向。
在一些实现中,朝向确定模块610还可以应用机器学习模型来预测输入电子表单表172是否具有行优先朝向、列优先朝向或交叉朝向。可以对机器学习模型进行训练,以从与表头和数据区域的任何其他方面相关的上述规则和/或特征信息中进行探索,以确定电子表单表172的朝向。在这方面可以采用用于分类的各种机器学习模型。
在一些实现中,除了在表转换阶段中使用之外,来自朝向确定模块610的数据排列的结果朝向可用于引导由表头层级识别模块220对表头层级级别的确定。例如,如果确定电子表单表172具有列优先朝向,则列朝向的表头区域(诸如左表头区域,如果存在)的层级结构可能不被识别,因为它可能是简单的或者甚至不存在于具有这样的列优先朝向的表中。表头层级结构识别模块220可能只需要确定行朝向的表头区域(例如顶部表头区域)的层级结构。类似地,如果确定电子表单表172具有行优先朝向,则行朝向的表头区域的层级结构(如果存在)可能不被具体识别,并且只需要识别列朝向的表头区域的层级结构。
表转换
表转换模块230被配置为基于相应表头区域的层级结构,将电子表单表172转换为至少一个关系表180。
在一些实现中,如果电子表单表172中的数据排列的朝向指示交叉朝向,并且电子表单表包括行朝向的表头区域和列朝向的表头区域(诸如顶部表头区域和左表头区域),则表转换模块230可对电子表单表172执行列转行(unpivoting)操作。如果顶部表头区域和/或左侧表头区域的层级结构包括一个以上的层级级别,则可以有一个以上的下钻级别用于进行列转行操作。所有可能的下钻级别可以是两个层级结构中的层级级别的组合的枚举数目。具体地,表转换模块230可从列朝向的表头区域的层级结构中选择第一层级级别,并从行朝向的表头区域的层级结构中选择第二层级级别,然后关于第一层级级别和第二层级级别(称为下钻级别对)来进行列转行电子表单表172,以获得关系表。关系表可以包括表头区域中的层级级别及其更高层级级别中的数据项,以及由这些数据项索引或描述的数据区域中的数据项。
在一些实现中,如果在目标下钻级别中存在缺失数据项,则存在一些可选方法来处理这样的情况。具体地,在针对下钻级别k的转换表中,如果在级别k处不存在一个或多个列或行中的一组数据项,则对应的数据项可能不在所转换的关系表中被示出,包括所存在的紧挨着的较高级别的数据项。作为第二选项,在转换的关系表中的数据项可以显示为空白。备选地,对应于所存在的紧挨着的较高级表头的数据项可以被拷贝,并作为当前下钻级别的数据项被填充到转换表的单元中。在一种实现方式中,用户例如可以通过用户输入来指定:当生成并呈现经转换的表时,可以应用上述选项中的哪一个。
如果电子表单表172具有列优先朝向,并且在层级结构中存在一个以上的层级级别(这意味着该表不是平坦的),则对应于层级结构中的一个或多个层级级别(从根节点到叶节点)的所有数据项可以被级联为该表的新的平坦表头。这样的表可以作为关系表输出。如果电子表单表172具有行优先朝向,则可以首先将电子表单表172转置为具有列优先朝向的新电子表单表,然后可以以与具有列优先朝向的电子表单表类似的方式,将新电子表单表转换为关系表。
在一些实现中,在表转换中,如果表头区域包括对应于聚合名称的数据项,则电子表单表172可被转换以生成包括多个数据记录的关系表,以将数据项之一记录在数据区域的行或列中,并将至少一个数据项记录在表头区域中以用于索引数据区域中的数据项。
在一些实现中,在表转换中,如果电子表单表172的表头区域包括对应于索引集合名称、值名称和/或聚合名称的一个或多个数据项,则可在关系表中创建表头记录,其包括指示对应于索引集合名称、值名称和/或聚合名称的一个或多个数据项的数据字段,以便描述相同数据字段中的后续记录。
在一些实现中,在关系表的多个数据记录中,如果数据字段包含填充在电子表单表的表头区域中的单元中的数据项,则从该单元拷贝数据项。如果数据字段包含填充在数据区域的单元中的数据项,则数据区域的单元中的数据项可在关系表中被引用,使得数据字段中的数据项随着数据区域的单元中的数据项改变而改变。
表转换的应用和用户交互
本文描述的表分析模块122的功能可以被实现为单独应用或其他应用中的添加组件。在一些实现中,可向用户呈现特定用户界面以指示在表转换过程期间一个或多个阶段的结果。
在一个实现中,在确定一个或多个关系表180之后,关系表180和可能的原始电子表单表172可以在特定请求时或自动地呈现给用户。对于每个关系表180,可以在电子表单表172中突出显示对应于层级级别的表头区域中的数据项,并且也可以突出显示关系表180中的对应数据字段。例如如图7所示,如果关系表180是根据如下层级级别来构造的,即在左侧表头区域中具有与年龄相关的节点的层级级别、以及在顶部表头区域中具有与家族大小(family sizes)相关的节点,则对应的列和行在电子表单表172中以不同的方式被突出显示,同时对应的数据字段也被突出显示。此外,电子表单表172的数据区域中的数据项和关系表180的对应数据字段也可以如图7所示被突出显示。这使得用户能够容易地识别两个表中的数据之间的对应关系。
在一些实现中,允许用户交互来引导或控制表转换过程。在一个实现方式中,在确定表头层级结构时,可以向用户呈现由表头层级识别模块220自动所确定的表头区域的原始层级结构。可以在每次为用户确定层级结构时触发呈现,或者可以在表头层级识别模块220发现从不同相关因素所确定的结果之间的某种不一致性时触发呈现,如上所述。允许用户调整所呈现的层级结构。当从用户接收到对原始层级结构的修改时,基于该修改来修改原始层级结构以生成层级结构,并且相应地调整原始层级结构。这样,对于用户来说灵活地控制表理解并且便于正确的结构识别。
图8A示出了呈现针对电子表单表的表头区域所确定的原始层级结构的示例用户界面801。在原始层级结构中,节点820、822、824被确定为在根节点810的较低层级级别处的子节点,并且节点830和832被确定为节点820和824的相应子节点。用户可以通过特定用户输入,来指示节点822应当在节点820的较低层级作为其子节点。在接收到用户输入时,可以在用户界面801中相应地修改层级结构,如图8B所示。
在一个实现中,允许用户定义电子表单表如何被转换。例如,可以向用户呈现一个或多个表头区域的层级结构,并且允许用户在层级级别中灵活地选择他/她期望的电子表单表从中被下钻层级或一个或多个节点。在接收到用户选择时,表转换模块230可以确定用户选择的层级级别或节点,并且关于对应于使用选择的一个或多个列和/或行来转换电子表单表。
图8C示出了呈现用于用户选择的表头区域的层级结构的示例用户界面802。在该示例中,呈现了图4A的示例中的层级结构。允许用户选择整个层级级别或具体地选择层级级别处的一个或多个(但不是所有)节点,以指示他/她的表转换的意图。例如如图8C所示,用户在最后的层级级别选择三个节点(不是所有的四个节点)。因此,电子表单表172(即,图1和图3中所示的示例表)可以关于对应于三个所选节点的表头区域中的行进行转换。对应于电子表单表中的索引“Five or more(五个或者更多)”的数据项将不被包含在关系表中。
示例性过程
图9示出了根据本公开的一些实现的表转换过程900的流程图。过程900可以由计算设备100实现,例如由计算设备110中的表分析模块122实现。过程900还可由类似于计算设备100的任何其他设备或设备集群来实现。出于描述的目的,参考图1描述过程900。
在框910,计算设备100检测电子表单表的至少一个表头区域和数据区域,电子表单表包括在以行和列排列的单元中填充的数据项,至少一个表头区域包括填充有数据项的单元,用于索引或描述数据区域的单元中的数据项。在框920,计算设备100通过以下至少一项的检测来确定至少一个表头区域中的数据项的层级结构:至少一个表头区域中的单元合并、至少一个表头区域的单元的缩进级别、或数据区域中在一个单元中关于至少一个其他单元定义的函数关系。在框930,计算设备100基于所确定的层级结构,将电子表单表转换为至少一个关系表,至少一个关系表具有以统一结构排列的电子表单表的数据项。
在一些实现中,确定至少一个表头区域的层级结构还包括:基于表头区域中的数据项的语义分析,确定层级结构。
在一些实现中,检测电子表单表的至少一个表头区域包括:检测电子表单表中的以下特征中的至少一个:电子表单表的行或列中至少一个空白值的出现,电子表单表的行或列单元中的数据类型,电子表单表的行或列的相对位置,电子表单表的行或列中的数据转换,或者电子表单表的行或列中的数值分布;以及基于检测到的至少一个特征确定电子表单表中的至少一个表头区域。
在一些实现中,方法900还包括:确定至少一个表头区域中的数据项的相应语义类别,相应语义类别选自包括以下的群组:用于索引数据区域的行或列中的数据项的索引,索引集合名称,用于描述用于索引数据区域的行或列中的数据项的索引的集合,用于描述数据区域的行或列中的数据项的值名称,用于描述数据区域的行或列中的如下数据项的聚合名称,所述数据项是从数据区域的至少一个另外的行或列中的数据项计算得到;并且其中转换电子表单表包括:还基于数据项的所确定的语义类别来转换电子表单表。
在一些实现中,层级结构被表示为树结构,树结构包括以父子关系链接在一起的节点的至少一个集合,节点中的每个节点表示至少一个表头区域中的数据项;并且其中确定相应语义类别包括:对于节点的至少一个集合中的给定集合,确定树结构与多个预定语义模式之间的相应语义匹配级别,多个预定语义模式中的每个预定语义模式指示针对父子关系中的相应节点的语义类别的不同组合;响应于所确定的语义匹配级别中的一个语义匹配级别满足预定条件,确定由给定节点集合所表示的数据项的对应语义模式所指示的语义类别。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,响应于检测到表头区域中单元合并的出现,检测表头区域的行或列中的第一合并单元是否延伸越过表头区域的后续行或后续列中的多个第二单元;以及至少部分地基于检测到第一合并单元延伸越过多个第二单元,确定在层级结构中处于第一层级级别的第一节点以表示第一合并单元中的数据项,以及确定在层级结构中处于第二层级级别的多个第二节点以表示多个第二单元中的数据项,第二层级低于第一层级。
在一些实现中,确定层级结构包括:响应于确定至少一个表头区域中的一个表头区域是列朝向的表头区域,执行以下至少一项:至少部分地基于检测到表头区域中的第三单元的缩进级别低于表头区域中的第四单元的缩进级别,确定层级结构中处于第三层级级别的第三节点以表示第三单元中的数据项,以及确定层级结构中处于第四层级级别的第四节点以表示第四单元中的数据项;和/或,至少部分地基于检测到表头区域的列中的多个第五单元具有相同缩进级别,确定层级结构中处于第五层级级别的相应节点,以表示多个第五单元中的数据项。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,至少部分地基于检测到数据区域中在第一单元中关于至少一个第二单元定义的函数关系,确定层级结构中处于第六层级级别的第六节点,以表示表头区域中的第六单元中的数据项,以及确定层级结构中处于第七层级级别的至少一个第七节点,以表示表头区域中的第七单元中的数据项,第六层级级别和第七层级级别之间的差异是基于函数关系的类型,其中第六单元中的数据项索引或描述数据区域中的第一单元中的数据项,并且第七单元中的数据项索引或描述数据区域中的至少一个第二单元中的数据项。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,基于检测确定表头区域的原始层级结构;将原始层级结构呈现给用户;响应于从用户接收到对原始层级结构的修改,基于修改来修改原始层级结构以生成层级结构;以及响应于从用户接收到对原始层级结构的确认,将原始层级结构确定为层级结构。
在一些实现中,该方法包括:基于以下至少一项来确定电子表单表中的数据排列的朝向:检测到数据区域的行方向和/或列方向上的数据项的表示格式的一致性,检测到在数据区域的行方向和/或列方向上的数据类型的一致性,在至少一个表头区域的行方向和/或列方向上至少一个表头区域的空白单元的数目超过阈值数目,或确定数据区域的行方向或列方向上的数据的长度高于预定长度阈值,以及其中数据排列的朝向是以下之一:列优先朝向、行优先朝向、或行和列的交叉朝向,并且其中转换电子表单表还包括:还基于数据排列的朝向来转换电子表单表。
在一些实现中,还基于数据排列的朝向来转换电子表单表包括:响应于数据排列的朝向是行和列的交叉朝向并且至少一个表头区域包括行朝向的表头区域和列朝向的表头区域,从列朝向的表头区域的层级结构中选择第一层级级别,并且从行朝向的表头区域的层级结构中选择第二层级级别;以及使电子表单表关于第一层级级别和第二层级级别进行列转行,以获得关系表。
在一些实现中,转换电子表单表包括:响应于至少一个表头区域中的表头区域包括与如下聚合名称相对应的数据项,转换电子表单表以生成包括多个数据记录的关系表,聚合名称用于描述数据区域的行或列中的如下数据项,所述数据项从数据区域的至少一个另外的行或列中的数据项计算得到,多个数据记录中的每个数据记录包括以下数据项之一:数据区域的行或列中的数据项、以及用于索引数据区域中的数据项的表头区域中的至少一个数据项。
在一些实现中,转换电子表单表包括:向用户呈现层级结构;响应于接收到由用户对层级结构的层级级别的至少一个部分的选择,确定至少一个表头区域中与层级级别的至少一个部分相对应的至少一个列或行;以及关于所确定的至少一个列或行来转换电子表单表,以构造关系表。
在一些实现中,转换电子表单表包括:响应于至少一个表头区域包括与索引集合名称、值名称或者聚合名称中的至少一个相对应的数据项,构造关系表的表头记录,该关系表的表头记录包括指示索引集合名称、值名称或者聚合名称中的至少一个的数据字段,其中索引集合名称描述用于索引数据区域的行或列中的数据项的索引的集合,值名称用于描述数据区域的行或列中的数据项,并且聚合名称用于描述数据区域的行或列中的如下数据项,所述数据项从数据区域的至少一个另外的行或列中的数据项计算得到。
在一些实现中,多个数据记录包括第一数据字段和第二数据字段,第一数据字段包含从至少一个表头区域的对应行或列中的单元拷贝的数据项,第二数据字段包含如下的数据项,该数据项引用数据区域的单元中的数据项,第二数据字段中的数据项随着数据区域的单元中的数据项改变而改变。
示例性实现方式
下面列出了本公开的一些示例实现。
在第一方面,本公开提供了一种计算机实施的方法。该方法包括:检测电子表单表的至少一个表头区域和数据区域,电子表单表包括在以行和列排列的单元中填充的数据项,至少一个表头区域包括填充有数据项的单元,用于索引或描述数据区域的单元中的数据项;通过以下至少一项的检测来确定至少一个表头区域中的数据项的层级结构:至少一个表头区域中的单元合并、至少一个表头区域的单元的缩进级别、或数据区域中在一个单元中关于至少一个其他单元定义的函数关系;以及基于所确定的层级结构,将电子表单表转换为至少一个关系表,至少一个关系表具有以统一结构排列的电子表单表的数据项。
在一些实现中,确定至少一个表头区域的层级结构还包括:基于表头区域中的数据项的语义分析,确定层级结构。
在一些实现中,检测电子表单表的至少一个表头区域包括:检测电子表单表中的以下特征中的至少一个:电子表单表的行或列中至少一个空白值的出现,电子表单表的行或列单元中的数据类型,电子表单表的行或列的相对位置,电子表单表的行或列中的数据转换,或者电子表单表的行或列中的数值分布;以及基于检测到的至少一个特征确定电子表单表中的至少一个表头区域。
在一些实现中,该方法还包括:确定至少一个表头区域中的数据项的相应语义类别,相应语义类别选自包括以下各项的群组:用于索引数据区域的行或列中的数据项的索引,索引集合名称,用于描述用于索引数据区域的行或列中的数据项的索引的集合,用于描述数据区域的行或列中的数据项的值名称,用于描述数据区域的行或列中的如下数据项的聚合名称,所述数据项是从数据区域的至少一个另外的行或列中的数据项计算得到;并且其中转换电子表单表包括:还基于数据项的所确定的语义类别来转换电子表单表。
在一些实现中,层级结构被表示为树结构,树结构包括以父子关系链接在一起的节点的至少一个集合,节点中的每个节点表示至少一个表头区域中的数据项;并且确定相应语义类别包括:对于节点的至少一个集合的给定集合,确定树结构与多个预定语义模式之间的相应语义匹配级别,多个预定语义模式中的每个预定语义模式指示针对父子关系中的相应节点的语义类别的不同组合;响应于所确定的语义匹配级别中的一个语义匹配级别满足预定条件,确定由给定节点集合所表示的数据项的对应语义模式所指示的语义类别。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,响应于检测到表头区域中单元合并的出现,检测表头区域的行或列中的第一合并单元是否延伸越过表头区域的后续行或后续列中的多个第二单元;以及至少部分地基于检测到第一合并单元延伸越过多个第二单元,确定在层级结构中处于第一层级级别的第一节点以表示第一合并单元中的数据项,以及确定在层级结构中处于第二层级级别的多个第二节点以表示多个第二单元中的数据项,第二层级低于第一层级。
在一些实现中,确定层级结构包括:响应于确定至少一个表头区域中的一个表头区域是列朝向的表头区域,执行以下至少一项:至少部分地基于检测到表头区域中的第三单元的缩进级别低于表头区域中的第四单元的缩进级别,确定层级结构中处于第三层级级别的第三节点以表示第三单元中的数据项,以及确定层级结构中处于第四层级级别的第四节点以表示第四单元中的数据项;和/或,至少部分地基于检测到表头区域的列中的多个第五单元具有相同缩进级别,确定层级结构中处于第五层级级别的相应节点,以表示多个第五单元中的数据项。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,至少部分地基于检测到数据区域中在第一单元中关于至少一个第二单元定义的函数关系,确定层级结构中处于第六层级级别的第六节点,以表示表头区域中的第六单元中的数据项,以及确定层级结构中处于第七层级级别的至少一个第七节点,以表示表头区域中的第七单元中的数据项,第六层级级别和第七层级级别之间的差异是基于函数关系的类型,其中第六单元中的数据项索引或描述数据区域中的第一单元中的数据项,并且第七单元中的数据项索引或描述数据区域中的至少一个第二单元中的数据项。
在一些实现中,确定层级结构包括:对于至少一个表头区域中的每个表头区域,基于检测确定表头区域的原始层级结构;将原始层级结构呈现给用户;响应于从用户接收到对原始层级结构的修改,基于修改来修改原始层级结构以生成层级结构;以及响应于从用户接收到对原始层级结构的确认,将原始层级结构确定为层级结构。
在一些实现中,该方法还包括:基于以下至少一项来确定电子表单表中的数据排列的朝向:检测到数据区域的行方向和/或列方向上的数据项的表示格式的一致性,检测到在数据区域的行方向和/或列方向上的数据类型的一致性,在至少一个表头区域的行方向和/或列方向上至少一个表头区域的空白单元的数目超过阈值数目,或确定数据区域的行方向或列方向上的数据的长度高于预定长度阈值,以及其中数据排列的朝向是以下之一:列优先朝向、行优先朝向、或行和列的交叉朝向,并且其中转换电子表单表还包括:还基于数据排列的朝向来转换电子表单表。
在一些实现中,还基于数据排列的朝向来转换电子表单表包括:响应于数据排列的朝向是行和列的交叉朝向并且至少一个表头区域包括行朝向的表头区域和列朝向的表头区域,从列朝向的表头区域的层级结构中选择第一层级级别,并且从行朝向的表头区域的层级结构中选择第二层级级别;以及使电子表单表关于第一层级级别和第二层级级别进行列转行,以获得关系表。
在一些实现中,转换电子表单表包括:响应于至少一个表头区域中的表头区域包括与如下聚合名称相对应的数据项,转换电子表单表以生成包括多个数据记录的关系表,聚合名称用于描述数据区域的行或列中的如下数据项,所述数据项从数据区域的至少一个另外的行或列中的数据项计算得到,多个数据记录中的每个数据记录包括以下数据项之一:数据区域的行或列中的数据项、以及用于索引数据区域中的数据项的表头区域中的至少一个数据项。
在一些实现中,转换电子表单表包括:向用户呈现层级结构;响应于接收到由用户对层级结构的层级级别的至少一个部分的选择,确定至少一个表头区域中与层级级别的至少一个部分相对应的至少一个列或行;以及关于所确定的至少一个列或行来转换电子表单表,以构造关系表。
在一些实现中,转换电子表单表包括:响应于至少一个表头区域包括与索引集合名称、值名称或者聚合名称中的至少一个相对应的数据项,构造关系表的表头记录,该关系表的表头记录包括指示索引集合名称、值名称或者聚合名称中的至少一个的数据字段,其中索引集合名称描述用于索引数据区域的行或列中的数据项的索引的集合,值名称用于描述数据区域的行或列中的数据项,并且聚合名称用于描述数据区域的行或列中的如下数据项,所述数据项从数据区域的至少一个另外的行或列中的数据项计算得到。
在一些实现中,多个数据记录包括第一数据字段和第二数据字段,第一数据字段包含从至少一个表头区域的对应行或列中的单元拷贝的数据项,第二数据字段包含如下的数据项,该数据项引用数据区域的单元中的数据项,第二数据字段中的数据项随着数据区域的单元中的数据项改变而改变。
在第二方面,本公开提供了一种电子设备。该电子设备包括:处理单元;以及耦合到处理单元并具有存储在其上的指令的存储器,指令在由处理单元执行时使电子设备执行根据上述方法的步骤中的任一项。
在第三方面,本公开提供了一种计算机程序产品,有形地存储在计算机存储介质上,该计算机程序产品包括机器可执行指令,机器可执行指令在由设备执行时使该设备执行根据第一方面中的方法。计算机存储介质可以是非瞬态计算机存储介质。
在第四方面,本公开提供了一种其上存储有机器可执行指令的非瞬态计算机存储介质,机器可执行指令在由设备执行时使设备执行根据第一方面的方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于可使用的硬件逻辑组件的说明性类型,包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
可以用一种或多种编程语言的任意组合来编写用于执行本公开的方法的程序代码。程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器或控制器,使得程序代码在由处理器或控制器执行时,使得流程图和/或框图中指定的功能/操作被实现。程序代码可以全部或部分地在机器上执行,作为独立软件包部分地在机器上执行、部分地在远程机器上执行、或者全部地在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是任何有形介质,可包含或存储由指令执行系统、装置或设备使用或结合指令执行系统、装置或设备使用的程序。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置或设备、或前述的任何合适的组合。机器可读存储介质的更具体的示例将包括具有一条或多条导线的电连接,便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任何合适组合。
此外,虽然以特定顺序描述了各操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。同样地,虽然在以上讨论中包含了若干特定实现细节,但是这些细节不应当被解释为对本公开的范围的限制,而应当被解释为对可能特定于特定实现的特征的描述。在单独实现的上下文中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现中描述的各种特征也可以在多个实现中单独地或以任何合适的子组合来实现。
虽然已经用结构特征和/或方法动作专用的语言描述了本主题,但是应当理解,所附权利要求书中指定的主题不必限于上述具体特征或动作。相反,上述特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (15)
1.一种计算机实施的方法,包括:
检测电子表单表的至少一个表头区域和数据区域,所述电子表单表包括在以行和列排列的单元中填充的数据项,所述至少一个表头区域包括填充有数据项的单元,用于索引或描述所述数据区域的单元中的数据项;
通过对以下至少一项的检测来确定所述至少一个表头区域中的所述数据项的层级结构:所述至少一个表头区域中的单元合并、所述至少一个表头区域的所述单元的缩进级别、或所述数据区域中在一个单元中关于至少一个其他单元定义的函数关系;以及
基于所确定的所述层级结构,将所述电子表单表转换为至少一个关系表,所述至少一个关系表具有以统一结构排列的所述电子表单表的所述数据项。
2.根据权利要求1所述的方法,其中确定所述至少一个表头区域的所述层级结构还包括:
基于所述表头区域中的所述数据项的语义分析,确定所述层级结构。
3.根据权利要求1所述的方法,其中检测所述电子表单表的所述至少一个表头区域包括:
检测所述电子表单表中的以下特征中的至少一个:
所述电子表单表的行或列中至少一个空白值的出现,
所述电子表单表的行或列单元中的数据类型,
所述电子表单表的行或列的相对位置,
所述电子表单表的行或列中的数据转换,或者
所述电子表单表的行或列中的数值分布;以及
基于检测到的所述至少一个特征确定所述电子表单表中的所述至少一个表头区域。
4.根据权利要求1所述的方法,还包括:
确定所述至少一个表头区域中的所述数据项的相应语义类别,所述相应语义类别选自包括以下的群组:
用于索引所述数据区域的行或列中的数据项的索引,
索引集合名称,用于描述用于索引所述数据区域的行或列中的数据项的索引的集合,
用于描述所述数据区域的行或列中的数据项的值名称,
用于描述所述数据区域的行或列中的如下数据项的聚合名称,所述数据项是从所述数据区域的至少一个另外的行或列中的数据项计算得到;并且
其中转换所述电子表单表包括:还基于所述数据项的所确定的语义类别来转换所述电子表单表。
5.根据权利要求4所述的方法,其中所述层级结构被表示为树结构,所述树结构包括以父子关系链接在一起的节点的至少一个集合,所述节点中的每个节点表示所述至少一个表头区域中的数据项;并且
其中确定所述相应语义类别包括:对于所述节点的所述至少一个集合中的给定集合,
确定所述树结构与多个预定语义模式之间的相应语义匹配级别,所述多个预定语义模式中的每个预定语义模式指示针对所述父子关系中的相应节点的语义类别的不同组合;
响应于所确定的所述语义匹配级别中的一个语义匹配级别满足预定条件,确定由所述给定节点集合所表示的所述数据项的对应语义模式所指示的语义类别。
6.根据权利要求1所述的方法,其中确定所述层级结构包括:对于所述至少一个表头区域中的每个表头区域,
响应于检测到所述表头区域中单元合并的出现,检测所述表头区域的行或列中的第一合并单元是否延伸越过所述表头区域的后续行或后续列中的多个第二单元;以及
至少部分地基于检测到所述第一合并单元延伸越过所述多个第二单元,确定在所述层级结构中处于第一层级级别的第一节点以表示所述第一合并单元中的数据项,以及确定在所述层级结构中处于第二层级级别的多个第二节点以表示所述多个第二单元中的数据项,所述第二层级低于所述第一层级。
7.根据权利要求1所述的方法,其中确定所述层级结构包括:响应于确定所述至少一个表头区域中的一个表头区域是列朝向的表头区域,执行以下至少一项:
至少部分地基于检测到所述表头区域中的第三单元的缩进级别低于所述表头区域中的第四单元的缩进级别,确定所述层级结构中处于第三层级级别的第三节点以表示所述第三单元中的数据项,以及确定所述层级结构中处于第四层级级别的第四节点以表示所述第四单元中的数据项;和/或
至少部分地基于检测到所述表头区域的列中的多个第五单元具有相同缩进级别,确定所述层级结构中处于第五层级级别的相应节点,以表示所述多个第五单元中的数据项。
8.根据权利要求1所述的方法,其中确定所述层级结构包括:对于所述至少一个表头区域中的每个表头区域,
至少部分地基于检测到所述数据区域中在第一单元中关于至少一个第二单元定义的函数关系,确定所述层级结构中处于第六层级级别的第六节点,以表示所述表头区域中的第六单元中的数据项,以及确定所述层级结构中处于第七层级级别的至少一个第七节点,以表示所述表头区域中的第七单元中的数据项,所述第六层级级别和所述第七层级级别之间的差异是基于所述函数关系的类型,
其中所述第六单元中的所述数据项索引或描述所述数据区域中的所述第一单元中的数据项,并且所述第七单元中的所述数据项索引或描述所述数据区域中的所述至少一个第二单元中的数据项。
9.根据权利要求1所述的方法,其中确定所述层级结构包括:对于所述至少一个表头区域中的每个表头区域,
基于所述检测确定所述表头区域的原始层级结构;
将所述原始层级结构呈现给用户;
响应于从所述用户接收到对所述原始层级结构的修改,基于所述修改来修改所述原始层级结构以生成所述层级结构;以及
响应于从所述用户接收到对所述原始层级结构的确认,将所述原始层级结构确定为所述层级结构。
10.根据权利要求1的方法,还包括:
基于以下至少一项来确定所述电子表单表中的数据排列的朝向:
检测到所述数据区域的行方向和/或列方向上的数据项的表示格式的一致性,
检测到所述数据区域的行方向和/或列方向上的数据类型的一致性,
在所述至少一个表头区域的行方向和/或列方向上所述至少一个表头区域的空白单元的数目超过阈值数目,或
确定所述数据区域的行方向或列方向上的数据的长度高于预定长度阈值,并且
其中数据排列的所述朝向是以下之一:列优先朝向、行优先朝向、或行和列的交叉朝向,并且其中转换所述电子表单表还包括:还基于数据排列的所述朝向来转换所述电子表单表。
11.根据权利要求10所述的方法,其中还基于数据排列的所述朝向来转换所述电子表单表包括:
响应于数据排列的所述朝向是行和列的所述交叉朝向并且所述至少一个表头区域包括行朝向的表头区域和列朝向的表头区域,从所述列朝向的表头区域的层级结构中选择第一层级级别,并且从所述行朝向的表头区域的层级结构中选择第二层级级别;以及
使所述电子表单表关于所述第一层级级别和所述第二层级级别进行列转行,以获得关系表。
12.根据权利要求1所述的方法,其中转换所述电子表单表包括:
响应于所述至少一个表头区域中的表头区域包括与如下聚合名称相对应的数据项,转换所述电子表单表以生成包括多个数据记录的关系表,所述聚合名称用于描述所述数据区域的行或列中的如下数据项,所述数据项从所述数据区域的至少一个另外的行或列中的数据项计算得到,所述多个数据记录中的每个数据记录包括以下数据项之一:所述数据区域的所述行或列中的所述数据项、以及用于索引所述数据区域中的所述数据项的所述表头区域中的至少一个数据项。
13.根据权利要求1所述的方法,其中转换所述电子表单表包括:
向用户呈现所述层级结构;
响应于接收到由所述用户对所述层级结构的层级级别的至少一个部分的选择,确定所述至少一个表头区域中与所述层级级别的所述至少一个部分相对应的至少一个列或行;以及
关于所确定的所述至少一个列或行来转换所述电子表单表,以构造所述关系表。
14.一种电子设备,包括:
处理单元;以及
存储器,所述存储器耦合到所述处理单元并具有存储在其上的指令,所述指令在由所述处理单元执行时使所述电子设备执行根据权利要求1至13中任一项所述的方法。
15.一种计算机程序产品,被有形地存储在计算机存储介质上并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1至13中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/099796 WO2021022553A1 (en) | 2019-08-08 | 2019-08-08 | Spreadsheet table transformation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114207598A true CN114207598A (zh) | 2022-03-18 |
Family
ID=74503302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980099111.3A Pending CN114207598A (zh) | 2019-08-08 | 2019-08-08 | 电子表单表转换 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11836445B2 (zh) |
EP (1) | EP4010813A4 (zh) |
CN (1) | CN114207598A (zh) |
WO (1) | WO2021022553A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734522B2 (en) * | 2021-01-04 | 2023-08-22 | Sap Se | Machine learning enabled text analysis with support for unstructured data |
CN113220752A (zh) * | 2021-05-06 | 2021-08-06 | 北京字跳网络技术有限公司 | 展示方法、装置和电子设备 |
CN115408985B (zh) * | 2022-10-31 | 2023-04-07 | 天津联想协同科技有限公司 | 在线电子表格工作表名称显示方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793372A (zh) * | 2012-10-30 | 2014-05-14 | 国际商业机器公司 | 从电子文档中的表格结构提取语义关系 |
EP2887240A1 (en) * | 2013-12-23 | 2015-06-24 | Sap Se | Electronic product information display system |
US20150356137A1 (en) * | 2014-06-09 | 2015-12-10 | Dundas Data Visualization, Inc. | Systems and Methods for Optimizing Data Analysis |
US20170052988A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Normalizing values in data tables |
CN109582672A (zh) * | 2018-11-21 | 2019-04-05 | 金色熊猫有限公司 | 数据处理方法、装置及介质 |
CN110019224A (zh) * | 2017-12-21 | 2019-07-16 | 天津数观科技有限公司 | 一种基于树搜索的交叉表头生成方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7054871B2 (en) * | 2000-12-11 | 2006-05-30 | Lucent Technologies Inc. | Method for identifying and using table structures |
US7461077B1 (en) * | 2001-07-31 | 2008-12-02 | Nicholas Greenwood | Representation of data records |
US7107519B1 (en) * | 2001-08-16 | 2006-09-12 | Cognax Corporation | Spreadsheet-based user interface creation |
US7266763B2 (en) * | 2002-11-26 | 2007-09-04 | Microsoft Corporation | User defined spreadsheet functions |
US20150363478A1 (en) * | 2008-07-11 | 2015-12-17 | Michael N. Haynes | Systems, Devices, and/or Methods for Managing Data |
US8744821B2 (en) * | 2011-07-07 | 2014-06-03 | Xldyn, Llc | Spreadsheet-based templates for supporting the systems engineering process |
US20140075278A1 (en) * | 2012-09-12 | 2014-03-13 | International Business Machines Coporation | Spreadsheet schema extraction |
US20150095312A1 (en) | 2013-10-02 | 2015-04-02 | Microsoft Corporation | Extracting relational data from semi-structured spreadsheets |
CN103927373A (zh) * | 2014-04-24 | 2014-07-16 | 湖北航云端科技有限公司 | 基于增量式关联规则技术的动态大数据模型高效建立方法 |
US10372671B2 (en) * | 2014-10-03 | 2019-08-06 | Rockwell Automation Technologies, Inc. | Configuration management of industrial data |
US10853342B2 (en) * | 2015-06-25 | 2020-12-01 | Apple Inc. | Apparatus, system and method of presenting views of a user's data using summary tables |
US10089343B2 (en) * | 2015-11-18 | 2018-10-02 | Sap Se | Automated analysis of data reports to determine data structure and to perform automated data processing |
US10140279B2 (en) * | 2016-01-13 | 2018-11-27 | Dropbox, Inc. | Techniques for providing user interface enhancements for spreadsheets and tables |
US10430451B2 (en) * | 2016-02-22 | 2019-10-01 | Arie Rota | System and method for aggregating and sharing accumulated information |
US10120851B2 (en) * | 2016-06-30 | 2018-11-06 | Microsoft Technology Licensing, Llc | Automatic semantic data enrichment in a spreadsheet |
US10540153B2 (en) * | 2016-12-03 | 2020-01-21 | Thomas STACHURA | Spreadsheet-based software application development |
CN106844324B (zh) * | 2017-02-22 | 2020-01-10 | 浪潮通用软件有限公司 | 一种变动列数据导出为Excel格式的方法 |
US10599627B2 (en) * | 2017-02-27 | 2020-03-24 | Microsoft Technology Licensing, Llc | Automatically converting spreadsheet tables to relational tables |
US11650970B2 (en) * | 2018-03-09 | 2023-05-16 | International Business Machines Corporation | Extracting structure and semantics from tabular data |
US20230052634A1 (en) * | 2021-05-28 | 2023-02-16 | Wichita State University | Joint autonomous repair verification and inspection system |
US20230067944A1 (en) * | 2021-08-12 | 2023-03-02 | Choral Systems, Llc | Customized data analysis and visualization using structured data tables and nodal networks |
-
2019
- 2019-08-08 EP EP19940223.1A patent/EP4010813A4/en not_active Withdrawn
- 2019-08-08 WO PCT/CN2019/099796 patent/WO2021022553A1/en unknown
- 2019-08-08 CN CN201980099111.3A patent/CN114207598A/zh active Pending
- 2019-08-08 US US17/627,049 patent/US11836445B2/en active Active
-
2023
- 2023-10-23 US US18/382,901 patent/US20240054284A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793372A (zh) * | 2012-10-30 | 2014-05-14 | 国际商业机器公司 | 从电子文档中的表格结构提取语义关系 |
EP2887240A1 (en) * | 2013-12-23 | 2015-06-24 | Sap Se | Electronic product information display system |
US20150356137A1 (en) * | 2014-06-09 | 2015-12-10 | Dundas Data Visualization, Inc. | Systems and Methods for Optimizing Data Analysis |
US20170052988A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Normalizing values in data tables |
CN110019224A (zh) * | 2017-12-21 | 2019-07-16 | 天津数观科技有限公司 | 一种基于树搜索的交叉表头生成方法 |
CN109582672A (zh) * | 2018-11-21 | 2019-04-05 | 金色熊猫有限公司 | 数据处理方法、装置及介质 |
Non-Patent Citations (1)
Title |
---|
SHIGAROV 等: "Rule-based spreadsheet data transformation from arbitrary to relational tables", 《INFORMATION SYSTEMS》, vol. 71, 14 August 2017 (2017-08-14), pages 1 - 14 * |
Also Published As
Publication number | Publication date |
---|---|
EP4010813A1 (en) | 2022-06-15 |
US20220366129A1 (en) | 2022-11-17 |
EP4010813A4 (en) | 2023-03-08 |
WO2021022553A1 (en) | 2021-02-11 |
US20240054284A1 (en) | 2024-02-15 |
US11836445B2 (en) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022116537A1 (zh) | 一种资讯推荐方法、装置、电子设备和存储介质 | |
US20200042519A1 (en) | Systems and methods for grouping and enriching data items accessed from one or more databases for presentation in a user interface | |
CN102999561B (zh) | 数据集和数据服务的上下文趋向 | |
WO2018072071A1 (zh) | 知识图谱构建系统及方法 | |
EP2041672B1 (en) | Methods and apparatus for reusing data access and presentation elements | |
CN110738037A (zh) | 用于自动生成电子表格的方法、装置、设备及存储介质 | |
US20240054284A1 (en) | Spreadsheet table transformation | |
CN112749547A (zh) | 文本分类器训练数据的产生 | |
JP2008515061A (ja) | 概念的メタデータおよび文脈的メタデータの検索エンジンを用いたウェブ上におけるデータ要素の検索方法 | |
CN116468010A (zh) | 报表生成方法、装置、终端及存储介质 | |
CN115827862A (zh) | 一种多元费用凭证数据关联采集方法 | |
CN112668316A (zh) | word文档关键信息抽取方法 | |
US11977722B2 (en) | Interactive patent visualization systems and methods | |
US7873902B2 (en) | Transformation of versions of reports | |
CN110704635B (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
EP3465470A1 (en) | Method and device for generating an electronic document specification based on a n-dimensional data source | |
US9208224B2 (en) | Business content hierarchy | |
CN115129890A (zh) | 回馈数据图谱生成方法、生成设备、问答设备及冰箱 | |
CN115878564A (zh) | 一种文档检索方法及装置 | |
CN113076396A (zh) | 一种面向人机协同的实体关系处理方法及系统 | |
Ashkpour et al. | The aggregate Dutch historical censuses | |
CN112487160B (zh) | 技术文档溯源方法及装置、计算机设备、计算机存储介质 | |
WO2024130741A1 (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
Zamyatina | Text mining of companies annual reports in PDF format | |
CN117744615A (zh) | 表单数据处理方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |