首页> 中国专利> 逻辑结构分析装置、方法和计算机产品

逻辑结构分析装置、方法和计算机产品

摘要

本发明提供了逻辑结构分析装置、方法和计算机产品。一种逻辑结构分析装置包括:提取部件,其从表单提取单词候选;第一生成部件,其将每个单词候选分类成标题候选的群组和数据候选的群组,以基于单词候选在表单上的位置,生成第一候选集合,每个第一候选集合包括一个标题候选和可由该标题候选标识的一个数据候选;第二生成部件,其组合第一候选集合,以生成第二候选集合,使得每一个包括多个不同的标题候选和一个数据候选;去除部件,其基于每个第二候选集合中的标题候选和数据单词候选的位置,从第二候选集合中去除包括一数据项和标识该数据项的标题的已确定集合;以及输出部件,其输出已确定集合。

著录项

  • 公开/公告号CN101425131A

    专利类型发明专利

  • 公开/公告日2009-05-06

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN200810145884.4

  • 申请日2008-08-18

  • 分类号G06K9/00(20060101);G06K9/72(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人赵淑萍;南霆

  • 地址 日本神奈川县

  • 入库时间 2023-12-17 21:53:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-02

    未缴年费专利权终止 IPC(主分类):G06K9/00 授权公告日:20130501 终止日期:20180818 申请日:20080818

    专利权的终止

  • 2013-05-01

    授权

    授权

  • 2009-07-01

    实质审查的生效

    实质审查的生效

  • 2009-05-06

    公开

    公开

说明书

技术领域

本发明涉及包括纸质表单(form)和电子表单在内的表单上的字符串之间的逻辑结构(关系)分析。

背景技术

传统上,为了从纸质表单中提取数据,使用了结构化表单,即具有固定布局(layout))的表单。在从结构化表单中提取数据时,具有某种含义的字符(character)或字符串(character string)存在于某些区域中,并且定义这种字符、字符串和位置的用于布局的字段定义被生成。通过分析写在有关区域中的这些字符和/或字符串来提取数据。但是,如果针对仅为几个拷贝处理的表单进行创建的话,那么创建对布局的字段定义的成本变得巨大;因此为这种表单手工输入数据,这转而需要巨大的数据输入成本。

近来,即使在表格(table)中改变了标题(heading)的顺序,也可以识别数据位置,并且针对在表格被创建时同一列中的标题被颠倒的情况,在日本专利申请早期公布No.2005-275830中公开了一种数据提取方法。

但是,传统上,对于非结构化布局的逻辑结构分析或者是在标题之间的关系是分级的(例如主标题和副标题之间的关系或者基于构成层级的副标题之间的等同关系)时提取数据的模式,或者是可应用到具有定义标题群组内的非唯一顺序的某些规则的线条和单元(cell)的表单的逻辑结构分析模式。

因此,传统的处理不能应用到下述表单是成问题的:(1)通过多个标题从中获得数据的表单,但是不能判定该数据是否形成表格,(2)多次使用同一标题的表单,每个标题分别对应于一段数据,或者(3)具有这样的结构的表单:标题和相应数据不相邻,例如(标题1)-(标题2)-(与标题1相对应的数据)-(与标题2相对应的数据)。

例如,日本专利申请早期公布No.2005-275830中公开的技术没有解决上述问题(1)和(3),因为是在使用表格的前提下使用单元关系的。另外,如果不解决问题(2),那么当多个数据项(item)对应于同一标题字符串时,关系仍然是含糊的,从而导致逻辑结构分析的准确度降低。

发明内容

本发明的一个目的是至少解决传统技术中的上述问题。

根据本发明的一个方面的一种计算机可读记录介质中存储有逻辑结构分析计算机程序,该逻辑结构分析计算机程序使得计算机执行:从包括一个或多个标题和一个或多个数据项的表单上的字符串中提取单位单词候选;将每个所述单词候选分类成针对所述标题的标题候选的群组和针对所述数据项的数据候选的群组,以基于所述单词候选在所述表单上的位置,生成第一候选集合,每个所述第一候选集合包括所述标题候选中的一个标题候选和所述数据候选中可由所包括的标题候选所标识的一个数据候选;组合所述第一候选集合,以生成第二候选集合,使得每一个包括多个不同的标题候选和所述数据候选中的一个数据候选;从所述第二候选集合中,针对每个所述数据项,去除包括所述数据项中的一数据项和标识该数据项的标题的已确定集合,该去除是基于每个所述第二候选集合中包括的标题候选和数据单词候选在所述表单上的位置的;以及输出所述已确定集合。

根据本发明的另一方面的一种逻辑结构分析装置包括:提取部件,该提取部件从包括一个或多个标题和一个或多个数据项的表单上的字符串中提取单词候选;第一生成部件,该第一生成部件将每个所述单词候选分类成针对所述标题的标题候选的群组和针对所述数据项的数据候选的群组,以基于所述单词候选在所述表单上的位置,生成第一候选集合,每个所述第一候选集合包括所述标题候选中的一个标题候选和所述数据候选中可由所包括的标题候选所标识的一个数据候选;第二生成部件,该第二生成部件组合所述第一候选集合,以生成第二候选集合,使得每一个包括多个不同的标题候选和所述数据候选中的一个数据候选;去除部件,该去除部件针对每个所述数据项,基于每个所述第二候选集合中包括的标题候选和数据单词候选在所述表单上的位置,从所述第二候选集合中去除包括所述数据项中的一数据项和标识该数据项的标题的已确定集合;以及输出部件,该输出部件输出所述已确定集合。

根据本发明的另一个方面的一种逻辑结构分析方法包括:从包括一个或多个标题和一个或多个数据项的表单上的字符串中提取单位单词候选;将每个所述单词候选分类成针对所述标题的标题候选的群组和针对所述数据项的数据候选的群组,以基于所述单词候选在所述表单上的位置,生成第一候选集合,每个所述第一候选集合包括所述标题候选中的一个标题候选和所述数据候选中可由所包括的标题候选所标识的一个数据候选;组合所述第一候选集合,以生成第二候选集合,使得每一个包括多个不同的标题候选和所述数据候选中的一个数据候选;从所述第二候选集合中,针对每个所述数据项,去除包括所述数据项中的一数据项和标识该数据项的标题的已确定集合,该去除是基于每个所述第二候选集合中包括的标题候选和数据单词候选在所述表单上的位置的;以及输出所述已确定集合。

当结合附图理解时,将在以下对本发明的详细描述中具体阐述或者可以从以下对本发明的详细描述中清楚看到本发明的其他目的、特征和优点。

附图说明

图1A和1B是关于经历逻辑结构分析的表单的示例的示意图。

图2是表单的字符信息的示意图;

图3A至3D是共通逻辑结构DB的存储内容的示意图;

图4A至4C是从表单的单词候选提取结果的示意图;

图5是逻辑结构分析装置的功能配置的框图;

图6是逻辑结构分析处理的流程图;

图7A至7D是详细示出两片段集合候选的生成的示意图;

图8是详细示出一标题/一数据片段集合候选生成处理(步骤S604)的流程图;

图9A至9D是详细示出(N+1)片段集合候选的生成的示意图;

图10是详细示出多标题/一数据片段集合候选生成处理(步骤S605)的流程图;

图11和12是详细示出(N+1)片段集合候选生成处理的流程图;

图13A至14C是详细示出对(N+1)片段集合候选的已确定集合的去除的示意图;

图15是详细示出已确定集合去除处理(步骤S606)的流程图;

图16是详细示出图13A至13D所示的前向处理的流程图;

图17是详细示出(N+1)片段集合候选去除处理(步骤S1502或S1504)的流程图;

图18是详细示出图14A至14C所示的后向处理的流程图;

图19是详细示出图18所示的标题逻辑元素比较处理(步骤S1806)的流程图;

图20A和20B是表单的其他示例的示意图;

图21是从图20A所示的表单获得的两片段集合候选的示意图;

图22A至22C是从图20A所示的表单获得的(N+1)片段集合候选的示意图;

图23A和23B是从图20B所示的表单获得的两片段集合候选的示意图;

图24是在同一标题单词候选多次存在时的标题单词候选评估技术的示意图;

图25是标题单词候选评估处理(步骤S607)的详细流程图;

图26是在同一标题单词候选多次存在时标题单词候选的另一种评估技术的示意图;

图27是详细示出标题单词候选评估处理(步骤S607)的另一过程的流程图;

图28是表单的另一示例的示意图;

图29A和29B是三片段集合候选的组合的评估示例的示意图;

图30是详细示出数据单词候选评估处理(步骤S608)的流程图;

图31是详细示出同时实现可能性检查处理(步骤S3007)的流程图;

图32A是详细示出距离方差计算处理(步骤S3013)的流程图;

图32B是详细示出目标元素提取处理(步骤S3203)的流程图;

图33是详细示出最小方差选择处理(步骤S3016)的流程图;

图34A和34B是三片段集合候选的组合的另一评估示例的示意图;

图35是详细示出数据单词候选评估处理(步骤S608)的另一过程的流程图;

图36是详细示出图35所示的矩形方差计算处理(步骤S3515)的流程图;以及

图37是逻辑结构分析装置的硬件配置的示意图。

具体实施方式

参考附图,下面详细说明根据本发明的示例性实施例。根据该实施例的逻辑结构分析是这样一种技术,该技术读取纸质介质或图像数据的表单、分析表单上的字符信息和布局信息(如果诸如表格之类的布局存在的话),并且分析字符信息的逻辑结构。这里所使用的逻辑结构是指示出表单中的标题和该标题所标识的数据之间的关联的逻辑结构。在本说明书中,如果简单地使用术语“数据”,则表明任意的数值(例如货币金额和数值量),即通配符。

图1A和1B是关于经历逻辑结构分析的表单的示例的示意图。如图1A所示,表单100具有矩阵状逻辑结构,其中字符串被写在单元中。作为标题的字符串包括项目(item),例如旅费(travel expense)、设备费(equipment expense)和消耗品费(consumables expense),以及年度(year),例如17年度(17th year)、18年度(18th yeaer)和19年度(18th year)。这些被统称为字符信息。写在给定项目和给定年度的交叉区域中的值被识别为该年度该项目的值。例如,第17年度的旅费的数据为100,000(日元)。

图1B是图1A所示的表单100的布局信息。布局信息是诸如排除了字符信息的框架和线条之类的信息。单元被分别指派以标识符(单元号码)C1至C16。因此,如果通过此实施例来分析逻辑结构,则可通过基于此布局信息创建电子数据表(spreadsheet)并将有关字符信息分别写入电子数据表的每个单元中,来将表单100转换为包括其字符信息的电子数据表。

图2是表单100的字符信息的示意图。读表单100,并且获得字符信息,字符信息包括字符号码、字符代码、坐标和单元号码。字符号码是从“1”开始按升序分别指派给每个字符代码的唯一号码。

字符代码是从表单100读取的字符。即使不止一次地读取了同一字符代码,每次也指派一个不同的字符号码。坐标标识字符代码在表单100上的位置。字符代码的位置是由围绕字符代码的矩形相对于表单上被定义为起始点的任意位置的左上坐标和右下坐标来标识的。其中写有字符代码的单元由单元号码来标识。

图3A至3D是共通逻辑结构DB的存储内容的示意图。图3A和3B是与标题项(heading item)相关的逻辑元素(以下称之为“标题逻辑元素”)的表格,图3C和3D是与数据相关的逻辑元素(以下称之为“数据逻辑元素”)的表格。

图3A示出了“逻辑元素群组G1:项目”的逻辑元素表格。标题逻辑元素表格301包括元素号码、代表性单词和单词。元素号码是指派给代表性单词的唯一号码。具有元素号码Eij的逻辑元素在下面将被称为逻辑元素Eij。代表性单词是指示项目的典型单词。单词是指示与代表性单词相等同或是代表性单词的同义词的单词的字符串。

以逻辑元素E11为例,代表性单词是辞语“旅费”,其单词是包括“旅费”、“出差费(business trip expense)”和“出差旅费(businesstravel expense)”在内的辞语。由于以这种方式提供了等同的单词和同义词,因此可以以多种形式来标识类似的标题。

图3B示出了“逻辑元素群组G2:年度”的逻辑元素表格。与标题逻辑元素表格301的情况一样,该标题逻辑元素表格302也包括元素号码、代表性单词和单词。以逻辑元素E21为例,代表性单词是辞语“17年度”,其单词是包括“17年度”、“17年(year17)”、“2005年度(2005th year)”和“2005年(year 2005)”在内的辞语。

图3C示出了“逻辑元素群组G3:数据”的逻辑元素表格。该数据逻辑元素表格303除了存储有图3A和3B所示的元素号码、代表性单词和单词之外,还存储了与其他群组G1和G2的关系。由于数据是由两个标题(项目和年度)标识的值,因此代表性单词是链接“逻辑元素群组G1:项目”的代表性单词和“逻辑元素群组G2:年度”的代表性单词的字符串。以元素号码E31为例,代表性单词是链接“旅费”和“17年度”的辞语“旅费17年度”。

由于任意的数值被写在表单100上,因此单词由*(通配符)表示。但是,即使在通配符的情况下,与该通配符相关的等同单词和同义词也被存储,例如单独一个数值;数值和(一个或多个)逗号;数值和货币符号(例如¥、日元、$、美元,等等);以及数值、(一个或多个)逗号和货币符号。

对于与其他群组G1和G2的关系,相应标题逻辑元素计数和相应标题逻辑元素的元素号码被存储。相应标题逻辑元素是与标识数据的标题项相关的逻辑元素,并且相应标题逻辑元素计数是其数目。以元素号码E31为例,可以知道,与代表性单词“17年度”相关的数据是由两个相应标题逻辑元素E11(代表性单词“旅费”)和E21(代表性单词“17年度”)来标识的。由于项目的逻辑元素计数为三个(E11至E13),并且年度的逻辑元素计数也是三个(E21至E23),因此数据的逻辑元素计数是三乘以三,即九个(E31至E39)。

图3D示出了与图3C所示的数据相关的逻辑元素表格303的另一示例。在图3D所示的逻辑元素表格304中,逻辑元素(元素号码、代表性单词和单词)与逻辑元素表格303相同。另一方面,在逻辑元素表格304中,与其他群组的关系是基于相应逻辑元素群组来表示的,而不是像逻辑元素表格303中那样基于相应标题逻辑元素来表示的。

在图3D的情况下,图3C所示的逻辑元素表格303是参考图3A和3B的逻辑元素表格生成的。以元素号码E31为例,由于相应的逻辑元素群组是G1和G2,并且代表性单词是链接“旅费”和“17年度”的“旅费17年度”,因此可以从相应的逻辑元素群组G1的逻辑元素表格301中识别出具有代表性单词“旅费”的元素号码E11,并且可以从相应的逻辑元素群组G2的逻辑元素表格302中识别出具有代表性单词“17年度”的元素号码E21。

图4A至4C是从图1A所示的表单100的单词候选(word candidate)提取结果的示意图。图4A是与“逻辑元素群组G1:项目”相关的单词候选提取结果401。图4B是与“逻辑元素群组G2:年度”相关的单词候选提取结果402。图4C是与“逻辑元素群组G3:数据”相关的单词候选提取结果403。

如图4A至4C所示,对于每个元素号码及其代表性单词,单词候选提取结果401至403包括单词候选、字符计数和字符号码。单词候选是逻辑元素表格301到304中包括的具有与图2所示的字符代码相匹配的字符代码的单词。字符计数分别指示出单词候选中的字符的数目,并且字符号码是与形成单词候选的字符代码相对应的字符号码。在图4A至4C中,逻辑元素Eij的单词候选将被描述为Weij-k。在此情况下,k表示单词候选的号码。

从由元素号码标识的单词中,匹配单词被选择为单词候选。以图4A所示的与“逻辑元素群组G1:项目”相关的单词提取结果为例,在元素号码E11的单词中,“旅费”与图1A所示的项目中的“旅费”相匹配。由于图1A所示的项目中的“旅费”被写在布局信息中的单元C5中,因此单元C5被用作从图2所示的字符信息中获得字符计数(=2)和字符号码(15和16)的线索。标题逻辑元素的单词候选被称为标题单词候选,数据逻辑元素的单词候选被称为数据单词候选。

图5是逻辑结构分析装置500的功能配置的框图。如图5所示,逻辑结构分析装置500包括提取部件(unit)501、检测部件502、第一生成部件503、第二生成部件504、去除部件505、标题单词候选评估部件506、数据单词候选评估部件507和输出部件508。

部件501至508的功能可由执行与之相关并被存储在逻辑结构分析装置500的存储部件(HD或存储器)中的程序的CPU来实现。这些功能可通过输入/输出I/F来实现。

从部件501至508输出的数据被存储在存储部件中。假定图5的箭头所指示的连接目的地的功能是通过从存储部件读取从连接源部件输出的数据并通过由CPU执行有关程序,从而来实现的。共通逻辑结构DB被包括在逻辑结构分析装置500中或者能够与逻辑结构分析装置500通信的外部服务器中,并且其中存储了图3A至3C(或图3D)所示的逻辑元素表格301至303。

提取部件501从写在表单100上的字符信息中提取有关单词来作为单词候选。具体而言,图4A至4C所示的单词候选提取结果是通过参考图2所示的读出结果和通用逻辑结构DB 510(逻辑元素表格301至304)来输出的。

检测部件502检测标题逻辑元素群组计数,这是构成表单100的标题项的类型的数目。具体而言,例如,由于“逻辑元素群组G1:项目”和“逻辑元素群组G2:年度”被用作用于提取图1A所示的表单100上的单词候选的标题逻辑元素,因此标题逻辑元素群组计数Nmax=2被检测到。

第一生成部件503生成候选,该候选是从表单100选择出来的一个标题项和由该标题项标识的一段数据(one piece of data)的组合(一标题/一数据片段集合(one-heading/one-data-piece set),以下简称为“两片段集合”(two-piece set))。第二生成部件504具有生成下述候选的功能:该候选是从表单100选择出来的N个标题项(其中N为2≤N≤Nmax)和由这些标题项标识的一段数据的组合(多标题/一数据片段集合(multi-heading/one-data-piece set),以下简称为“(N+1)片段集合”((N+1)-piece set))。

如果只有一段数据被确定为对应于标题单词候选的相同组合,则去除部件505从(N+1)片段集合候选中确定并输出作为与数据相对应的标题的标题单词候选。如果只存在具有数据逻辑元素的一个数据单词候选的一个(N+1)片段集合候选,则去除部件505确定并输出标题单词候选。去除部件505还递归地执行去除这些候选并检查是否存在可确定的(N+1)片段集合候选的处理。

至于标题单词候选评估部件506的功能,如果因为对于一数据逻辑元素存在多个数据单词候选而去除部件505无法识别仅一个(N+1)片段集合,则仅从具有带相同数据单词候选的数据逻辑元素的(N+1)片段集合候选中选择给出不同位置处的标题单词候选的标题逻辑元素,并且基于标题单词候选和数据单词候选之间的位置关系来评估(N+1)片段的组合。

至于数据单词候选评估部件507的功能,如果在对于一数据逻辑元素存在多个数据单词候选而去除部件505无法识别仅一个(N+1)片段集合,则基于其位置关系,针对具有由相同标题单词候选和不同数据单词候选构成的组合的(N+1)片段集合候选以及均具有相同数据单词候选的不同逻辑元素的标题单词候选的组合,来评估(N+1)片段的组合。

输出部件508输出逻辑结构分析的结果。输出格式可被显示在显示器上,通过打印机打印输出,发送到外部计算机以及存储到内部存储部件中。在服务器/客户端配置的情况下,逻辑结构分析装置500是服务器,因此向客户端发送逻辑结构分析结果,并且逻辑结构分析结果被显示在接收方客户端的显示器上。

图6是逻辑结构分析过程的流程图。如图6所示,表单100被读取(步骤S601),并且被解构为字符信息(见图2)和布局信息101,并且提取部件501获取如图4A至4C所示的单词候选提取结果(步骤S602)。检测部件502随后检测表单100的标题逻辑元素计数Nmax(步骤S603)。

第一生成部件503执行一标题/一数据片段集合候选生成处理(步骤S604);第二生成部件504执行多标题/一数据片段集合候选生成处理(处理S605);去除部件505执行已确定集合去除处理(步骤S606);标题单词候选评估部件506执行标题单词候选评估处理(步骤S607);并且数据单词候选评估部件507执行数据单词候选评估处理(步骤S608)。标题单词候选评估处理(步骤S607)和数据单词候选评估处理(步骤S608)是根据需要被执行的。

最后,输出部件508输出步骤S606至S608的处理结果(步骤S609)。以下针对第一生成部件503、第二生成部件504、去除部件505、标题单词候选评估部件506和数据单词候选评估部件507来描述细节。

图7A至7D是详细示出两片段集合候选的生成的示意图。两片段集合候选是给定标题项和能够由该标题项标识的数据的组合。表单100的标题项与位于下侧、右侧和右下侧的数据相关。在本说明书中,标题项的下侧、右侧或右下侧的位置被称为指定区域。因此,对于每个标题项,指定区域是不同的。标题项和位于其指定区域中的数据构成两片段集合候选。

在图7A至7D中,粗线椭圆指示所选择的标题项,细线椭圆指示能够由所选择的标题项标识的数据。链接粗线椭圆和细线椭圆的线段指示所形成的组合。粗线椭圆和细线椭圆的组合是两片段集合候选。

图7A示出了当“逻辑元素群组G1:项目”的元素号码E11的标题单词候选“旅费”被选择时的两片段集合候选。由于“旅费”和逻辑元素群组G3的数据单词候选的位置关系,获取了九个两片段集合候选。虽然单词候选“17年度”至“19年度”被包括在不同的群组G2中,但是这些候选是标题项,而没有资格用于两片段集合候选。

图7B示出了当“逻辑元素群组G1:项目”的元素号码E13的标题单词候选“消耗品费”被选择时的两片段集合候选。由于“消耗品费”和逻辑元素群组G3的数据单词候选的位置关系,获取了三个两片段集合候选。其他数据位于相对于“杂费”的位置的右上侧,而没有资格形成两片段集合候选。

图7C示出了当“逻辑元素群组G2:年度”的元素号码E21的标题单词候选“17年度”被选择时的两片段集合候选。由于“17年度”和逻辑元素群组G3的数据单词候选的位置关系,获取了九个两片段集合候选。

图7D示出了当“逻辑元素群组G2:年度”的元素号码E23的标题单词候选“19年度”被选择时的两片段集合候选。由于“19年度”和逻辑元素群组G3的数据单词候选的位置关系,获取了三个两片段集合候选。

图8是详细示出一标题/一数据片段集合候选生成处理(步骤S604)的流程图。首先,两片段集合候选计数n被设置为n=1(步骤S801);逻辑元素群组Gi的号码i被设置为i=1(步骤S802);并且逻辑元素Eij的号码j被设置为j=1(步骤S803)。

然后判定逻辑元素Eij是否是数据的逻辑元素(步骤S804)。如果元素不是数据的逻辑元素(步骤S804:否),则j被递增(步骤S805),并且过程返回到步骤S804。另一方面,如果元素是数据的逻辑元素(步骤S805:是),则逻辑元素群组Gi的号码ii(由G(ii)表示,区别于Gi)被设置为ii=1(步骤S806),并且标题逻辑元素群组G(ii)被读取(步骤S807)。例如,在ii=1的情况下,在图4A至4C所示的单词候选提取结果中,标题逻辑元素群组G1(图4A所示的逻辑元素群组G1)被读取。

标题逻辑元素Eij(由E(ii,j)表示,区别于Eij)随后被读取(步骤S808)。例如,图4A所示的逻辑元素群组G1被读取作为标题逻辑元素群组G(ii),并且由于ii=1且j=1,因此E(ii,j)被限定,并且标题逻辑元素E11被从逻辑元素群组1中读取,以作为E(ii,j)。

在步骤S804识别的数据逻辑元素Eij的单词候选号码k随后被设置为k=1(步骤S809),并且在步骤S808读取的标题逻辑元素E(i,j)的单词候选号码k(由kk表示,区别于步骤S809的k)随后被设置为kk=1(步骤S810)。

判定在关于标题单词候选We(ii,j-kk)的指定区域中是否存在数据单词候选Weij-k(步骤S811)。在指定区域中是否存在候选可由图2所示的单元号码和坐标来标识。

如果在指定区域中存在候选(步骤S811:是),则标题单词候选We(ii,j-kk)和数据单词候选Weij-k的组合被存储以作为第n个两片段集合(步骤S812)。在递增n之后(步骤S811),过程去到步骤S814。另一方面,如果在指定区域中不存在候选(步骤S811:否),则过程去到步骤S814。

在步骤S814,标题逻辑元素E(ii,j)的单词候选号码kk被递增。然后判定是否满足kk≤KK(步骤S815)。在此情况下,KK表示标题逻辑元素E(ii,j)的单词候选的总数。如果满足kk≤KK(步骤S815:是),则过程去到步骤S811,以判定在关于递增后的标题单词候选We(ii,j-kk)的指定区域中是否存在数据单词候选Weij-k。

另一方面,如果不满足kk≤KK(步骤S815:否),则递增数据逻辑元素Eij的单词候选号码k(步骤S816),并且判定是否满足k≤K(步骤S817)。在此情况下,K表示数据逻辑元素Eij的单词候选的总数。如果满足k≤K(步骤S817:是),则过程去到步骤S810,以判定在关于标题单词候选We(ii,j-kk)的指定区域中是否存在递增后的数据单词候选Weij-k(步骤S810和S811)。

另一方面,如果不满足k≤K(步骤S817:否),则递增标题逻辑元素群组G(ii)的号码ii(步骤S818),并且判定是否满足ii≤II(步骤S819)。在此情况下,II表示标题逻辑元素群组G(ii)的总数。如果满足ii<II(步骤S819:是),则过程去到步骤S807,以读取递增后的标题逻辑元素群组G(ii)。

如果不满足ii≤II(步骤S819:否),则递增其他标题逻辑元素的元素号码j(步骤S820),并且判定是否满足j≤J(步骤S821)。在此情况下,J表示其他逻辑元素的总数。如果满足j≤J(步骤S821:是),则过程去到步骤S804,以判定递增后的逻辑元素Eij是否是数据逻辑元素。

另一方面,如果不满足j≤J(步骤S821:否),则递增逻辑元素群组号码i(步骤S822),并且判定是否满足i≤I(步骤S823)。在此情况下,I表示逻辑元素群组Gi的总数。如果满足i≤I(步骤S823:是),则过程去到步骤S823以判定属于递增后的逻辑元素群组Gi的逻辑元素Eij是否是数据逻辑元素(步骤S804)。

如果不满足i≤I(步骤S823:否),则第一生成部件503的处理序列被终止,并且过程去到步骤S605。结果,图7A至7D所示的两片段集合候选被自动生成。

图9A至9D是详细示出(N+1)片段集合候选的生成的示意图。(N+1)片段集合候选是各种标题项和能够由这些标题项标识的一段数据的组合。表单100的标题项与位于下侧、右侧和右下侧的数据相关。在本说明书中,各种标题项的下侧、右侧或右下侧的交叠位置被称为指定区域。

因此,对于各种标题项的每个组合,指定区域是不同的。各种标题项的组合和位于其指定区域中的数据构成(N+1)片段集合候选。参考图7A至7D,描述了通过使用N=2,即通过对标题项使用两个项(项目和年度),而获取的三片段集合候选。

在图9A至9D中,粗线椭圆指示所选择的标题项,细线椭圆指示能够由所选择的两个标题项标识的数据。链接粗线椭圆和细线椭圆的线段指示所形成的组合。两个粗线椭圆和一个细线椭圆的组合是三片段集合候选。

图9A示出了当“逻辑元素群组G1:项目”的元素号码E13的标题单词候选“消耗品费”被选择时的两片段集合候选。由于“消耗品费”和逻辑元素群组G3的数据单词候选的位置关系,获取了三个两片段集合候选。其他数据位于相对于“消耗品费”的位置的右上侧,而没有资格形成两片段集合候选。

图9B示出了当“逻辑元素群组G2:年度”的元素号码E23的标题单词候选“19年度”被选择时的两片段集合候选。由于“19年度”和逻辑元素群组G3的数据单词候选的位置关系,获取了三个两片段集合候选。

图9C示出了当“逻辑元素群组G1:项目”的元素号码E13的标题单词候选“消耗品费”和“逻辑元素群组G2:年度”的元素号码E23的标题单词候选“19年度”被选择时的三片段集合候选。也就是说,只有图9A和9B共同的数据(8,000)被包括在三片段集合候选中。

图9D示出了当“逻辑元素群组G1:项目”的元素号码E11的标题单词候选“旅费”和“逻辑元素群组G2:年度”的元素号码E21的标题单词候选“17年度”被选择时的三片段集合候选。也就是说,图7A和7B共同的九片段数据被包括在三片段集合候选中。

图10是详细示出多标题/一数据片段集合候选生成处理(步骤S605)的流程图。如图10所示,首先,标题逻辑元素群组计数N被设置为N=2(步骤S100),并且(N+1)片段集合候选生成处理被执行(步骤S1002)。随后递增N(步骤S1003),并且判定是否满足N<Nmax(步骤S1004)。如果不满足N<Nmax(步骤S1004:否),则过程返回到步骤S1002。另一方面,如果满足N<Nmax(步骤S1004:是),则第二生成部件504的处理序列终止。结果,图9C和9D所示的(N+1)片段集合候选被自动生成。

现描述图10所示的(N+1)片段集合候选生成处理的详细处理过程。图11和12是详细示出(N+1)片段集合候选生成处理的流程图。(N+1)片段集合候选是基于N片段集合候选来创建的,并且可由任意数目的标题项来指示。如图11所示,(N+1)片段集合候选计数d被设置为d=1(步骤S1101),并且N片段集合候选的号码n被设置为n=1(步骤S1102)。

与N片段集合候选相关的信息被读取(步骤S1103)。要读取的信息如下。

·HN(n,*):第n个N片段集合候选的第*个标题单词候选

·DN(n):第n个N片段集合候选的数据单词候选

·GHN(n,*):HN(n,*)的第*个逻辑元素群组号码

·EHN(n,*):HN(n,*)的第*个逻辑元素号码

·GDN(n):DN(n)的逻辑元素群组号码

·EDN(n):DN(n)的逻辑元素号码

两片段集合候选的号码m被设置为m=1(步骤S1104),并且与第m个两片段集合候选的信息被读取(步骤S1105)。要读取的信息如下。

·H2(m):第m个两片段集合候选的标题逻辑元素的单词候选

·D2(m):第m个两片段集合候选的数据逻辑元素的单词候选

·GH2(m):H2(m)的逻辑元素群组号码

·EH2(m):H2(m)的逻辑元素号码

·GD2(m):D2(m)的逻辑元素群组号码

·ED2(m):D2(m)的逻辑元素号码

判定DN(n)和D2(m)是否由相同字符号码串构成(步骤S1106)。如果DN(n)和D2(m)不是由相同字符号码串构成的(步骤S1106:否),则过程去到图12的步骤S1204。另一方面,如果DN(n)和D2(m)是由相同字符号码串构成的(步骤S1106:是),则判定DN(n)和D2(m)是否相同(步骤S1107)。

如果DN(n)和D2(m)不相同(步骤S1107:否),则过程去到图12的步骤S1204。如果DN(n)和D2(m)相同(步骤S1107:是),则判定GDN(n)和GD2(m)是否相同(步骤S1108)。如果GDN(n)和GD2(m)不相同(步骤S1108:否),则过程去到图12的步骤S1204。另一方面,如果GDN(n)和GD2(m)相同(步骤S1108:是),标志f被设置为f=0(步骤S1109)。

将N片段集合候选的父号码i设置为i=1(步骤S1110),并且判定GHN(n,*)和GH2(m)是否不同(步骤S1111)。如果GHN(n,*)和GH2(m)相同(步骤S1111:否),则标志f被设置为f=1(步骤S1112),并且过程去到步骤S1113。如果GHN(n,*)和GH2(m)不同(步骤S1111:是),则父号码i被递增(步骤S1113)。

然后判定是否满足i<N(步骤S1114),并且如果满足i<N(步骤S1114:是),则过程返回到步骤S1111。如果不满足i<N(步骤S1114:否),即,在i=N的情况下,过程去到图12的步骤S1201。

如图12所示,判定是否满足标志f=0(步骤S1201)。如果不满足f=0(步骤S1201:否),则过程去到步骤S1204。如果满足f=0(步骤S1201:是),则候选被存储以作为(N+1)片段集合候选(步骤S1202),并且(N+1)片段集合候选计数d被递增(步骤S1203)。

在步骤S1204,递增两片段集合候选的号码m(步骤S1204),并且判定是否满足m≤mmax(步骤S1205)。在此情况下,mmax表示两片段集合候选的总数。如果满足m≤mmax(步骤S1205:是),则过程去到图11所示的步骤S1105。

另一方面,如果不满足m≤mmax(步骤S1205:否),则递增N片段集合候选的号码n(步骤S1206),并且判定是否满足n≤nmax(步骤S1207)。在此情况下,nmax表示N片段集合候选的总数。如果满足n≤nmax(步骤S1207:是),则过程去到图11所示的步骤S1103。如果不满足n≤nmax(步骤S1207:否),则过程去到图10所示的步骤S1003以终止(N+1)片段集合候选生成处理。

图13A至14C是详细示出对(N+1)片段集合候选的已确定集合的去除的示意图。由(N+1)片段集合候选生成部件生成的(N+1)片段集合候选群组包括具有已确定候选的那些和不具有已确定候选的那些。通过确定具有可确定候选的那些,并且通过从(N+1)片段集合候选群组中去除已确定的(N+1)片段集合候选,来递归地确定与多个标题相对应的数据。

参考图13A至13D和14A至14C,描述了通过使用N=2,即通过对标题项使用两个项(项目和年度),而获取的三片段集合候选。粗线椭圆指示所选择的标题项,细线椭圆指示能够由所选择的标题项标识的数据。链接粗线椭圆和细线椭圆的线段指示所形成的组合。粗线椭圆和细线椭圆的组合是三片段集合候选。

图13A至13D示出了前向处理。图13A示出了当逻辑元素群组G1的标题单词候选“旅费”和逻辑元素群组G2的标题单词候选“17年度”被选择时的三片段集合候选。也就是说,图7A和7C共同的九段数据构成了三片段集合候选。在此阶段,存在包括标题单词候选“旅费”和“17年度”的九个三片段集合候选。

如图13B所示,从来自图13A所示的状态的具有标题单词候选“旅费”和“17年度”的三片段集合候选中包括的九个数据单词候选“100,000”至“8,000”中确定/去除数据单词候选“100,000”。未确定的数据单词候选由多重细线椭圆指示。虽然存在九个数据单词候选,但由于数据单词候选“100,000”仅由标题单词候选“旅费”和“17年度”标识,并且未被包括为标题单词候选的其他组合的候选,因此数据单词候选“100,000”被自动确定为(N+1)片段集合并且被从(N+1)片段集合候选群组中去除。也就是说,确定17年度的旅费为100,000。

图13C示出了从剩余的八个未确定的数据单词候选中确定/去除具有标题单词候选“旅费”和“18年度”的三片段集合候选中包括的数据单词候选“110,000”和具有标题单词候选“设备费”和“17年度”的三片段集合候选中包括的数据单词候选“400,000”的状态。这两个三片段集合候选都不具有被包括为除“旅费”和“17年度”外的标题单词候选的其他组合的候选,因此被自动确定为(N+1)片段集合并被从(N+1)片段集合候选群组中去除。也就是说,确定17年度的设备费为400,000,并且18年度的旅费为110,000。

图13D示出了前向处理。如图13D所示的从左上侧到最右下侧处理数据被称为前向处理,并且数据单词候选被逐一减少。因此,标识数据单词候选的逻辑元素群组G1和G2的标题单词候选可被唯一地识别。虽然在第二至第四轮中存在多个数据单词候选,但是在同一轮中可以首先确定任何数据单词候选。

图14A至14C示出了后向处理。图14A示出了由逻辑元素群组G1的标题单词候选“消耗品费”,逻辑元素群组G2的标题单词候选“19年度”以及由这两个标题单词候选标识的数据单词候选“8,000”构成的(N+1)片段集合候选。由于只存在一个数据单词候选,因此该候选被自动确定为(N+1)片段集合,并被从(N+1)片段集合候选群组中去除。也就是说,确定19年度的消耗品费为8,000。

图14B示出了由逻辑元素群组G1的标题单词候选“消耗品费”,逻辑元素群组G2的标题单词候选“18年度”以及由这两个标题单词候选标识的数据单词候选“5,000”构成的(N+1)片段集合候选。虽然存在两个数据单词候选,但由于数据单词候选“8,000”已在图14A中被确定,因此候选缩窄到数据单词候选“5,000”。因此,该候选被自动确定为(N+1)片段集合,并被从(N+1)片段集合候选群组中去除。也就是说,确定18年度的消耗品费为5,000。

图14C示出了后向处理。如图14C所示的从最右下侧数据到左上侧的处理被称为后向处理,并且数据单词候选被逐一减少。因此,标识数据单词候选的逻辑元素群组G1和G2的标题单词候选可被唯一地识别。虽然在第二至第四轮中存在多个数据单词候选,但是在同一轮中可以首先确定任何数据单词候选。

图15是详细示出已确定集合去除处理(步骤S606)的流程图。如图15所示,首先,执行图13A至13D所示的前向处理(步骤S1501),并且执行(N+1)片段集合候选去除处理(步骤S1502)。然后执行图14A至14C所示的后向处理(步骤S1503)并且执行(N+1)片段集合候选去除处理(步骤S1504)。结果,已确定集合被保留,并且过程去到步骤S607。

在已确定集合去除处理(步骤S606)中,可以只执行前向处理(步骤S1501)及其(N+1)片段集合候选去除处理(步骤S1502),或者可以只执行后向处理(步骤S1503)及其(N+1)片段集合候选去除处理(步骤S1504)。但是,通过在后向处理(步骤S1503)之前执行前向处理(步骤S1501)及其(N+1)片段集合候选去除处理(步骤S1502),可以减少发送到后向处理(步骤S1503)的输出(N+1)片段集合候选的数目,从而可在后向处理(步骤S1503)中高效地去除已确定集合。

图16是详细示出图13A至13D所示的前向处理的流程图。如图16所示,首先,已去除候选计数i被设置为i=0(步骤S1601),并且输入(N+1)片段集合候选号码n被设置为n=1(步骤S1602)。检测标志f被设置为f=0(步骤S1603),并且输出(N+1)片段集合候选号码m被设置为m=1(步骤S1604)。然后判定是否满足m≠n(步骤S1605)。

如果不满足mn(步骤S1605:否),则过程去到步骤S1608。另一方面,如果满足m≠n(步骤S1605:是),则判定第m个数据单词候选的字符号码是否包括在第n个数据单词候选的字符号码中(步骤S1606);如果包括(步骤S1606:是),则检测标志f被设置为f=1(步骤S1607),并且过程去到步骤S1608。另一方面,如果第m个数据单词候选的字符号码不被包括(步骤S1606:否),则检测标志f保持f=0并且过程去到步骤S1608。

在步骤S1608,递增输出(N+1)片段集合候选号码m(步骤S1608),并且判定是否满足m≤mmax(步骤S1609)。在此情况下,mmax表示(N+1)片段集合候选计数。如果满足m≤mmax(步骤S1609:是),则过程去到步骤S1605。另一方面,如果不满足m≤mmax(步骤S1609:否),则判定是否满足检测标志f=0(步骤S1610)。

如果不满足f=0(步骤S1610:否),则过程去到步骤S1613。如果满足f=0(步骤S1610:是),则第n个(N+1)片段集合候选被存储以作为已去除候选(步骤S1611)。已去除候选计数i随后被递增(步骤S1612),并且输入(N+1)片段集合候选号码n被递增(步骤S1613),以判定是否满足nmmax(步骤S1614)。

如果满足n≤mmax(步骤S1614:是),则过程返回到步骤S1603。如果不满足n≤mmax(步骤S1614:否),则前向处理终止并且过程去到步骤S1502。

图17是详细示出(N+1)片段集合候选去除处理(步骤S1502或S1504)的流程图。如图17所示,首先,输入(N+1)片段集合候选号码n被设置为n=1(步骤S1701);输出(N+1)片段集合候选号码m被设置为m=1(步骤S1702);并且去除序列号码p被设置为p=1(步骤S1703)。

输入(N+1)片段集合候选是前一阶段的输出结果。也就是说,如果(N+1)片段集合候选去除处理是步骤S1502,则输入(N+1)片段集合候选是从图16所示的前向处理(步骤S1501)输出的(N+1)片段集合候选,并且(N+1)片段集合候选由此(N+1)片段集合候选去除处理(步骤S1502)来确定。

另一方面,如果(N+1)片段集合候选去除处理是步骤S1504,则输入(N+1)片段集合候选是从图18所示的后向处理(步骤S1503)输出的(N+1)片段集合候选,并且(N+1)片段集合候选由此(N+1)片段集合候选去除处理(步骤S1504)来确定。

再次参考图17,在步骤S1703之后,判定是否满足e(p)=n(步骤S1704)。在此情况下,e(p)是具有去除序列号码p的输入(N+1)片段集合候选(在图16的步骤S1611存储的已去除候选)。

如果满足e(p)=n(步骤S1704:是),则过程去到步骤S1707。另一方面,如果不满足e(p)=n(步骤S1704:否),则第n个输入(N+1)片段集合候选被拷贝到输出(N+1)片段集合候选群组中(步骤S1705)。输出(N+1)片段集合候选号码m随后被递增(步骤S1706),并且去除序列号码p被递增(步骤S1707)。判定是否满足p≤pmax(步骤S1708)。在此情况下,pmax表示与已去除候选相对应的(N+1)片段集合候选计数。

如果满足p≤pmax(步骤S1708:是),则过程返回到步骤S1704。如果不满足p≤pmax(步骤S1708:否),则递增输入(N+1)片段集合候选号码n(步骤S1709)并且判定是否满足n≤nmax(步骤S1710)。在此情况下,nmax表示(N+1)片段集合候选计数。

如果满足n≤nmax(步骤S1710:是),则过程返回到步骤S1702。另一方面,如果不满足n≤nmax(步骤S1710:否),则在步骤S1705获取的输出(N+1)片段集合候选群组被输出(步骤S1711)。如果(N+1)片段集合候选去除处理是步骤S1502,则过程去到步骤S1503,而如果处理是步骤S1504,则过程去到步骤S607。

图18是详细示出图14A至14C所示的后向处理的流程图。如图18所示,首先,已去除候选计数i被设置为i=0(步骤S1801),并且输入(N+1)片段集合候选号码n被设置为n=1(步骤S1802)。检测标志f被设置为f=0(步骤S1803),并且输出(N+1)片段集合候选号码m被设置为m=1(步骤S1804)。然后判定是否满足m≠n(步骤S1805)。

如果不满足m≠n(步骤S1805:否),则过程去到步骤S1807。另一方面,如果满足m≠n(步骤S1805:是),则执行标题逻辑元素比较处理(步骤S1806)。标题逻辑元素比较处理(步骤S1806)在下文中描述。

在标题逻辑元素比较处理(步骤S1806)之后,递增(N+1)片段集合候选号码m(步骤S1807),并且判定是否满足m≤nmax(步骤S1808)。在此情况下,nmax表示(N+1)片段集合候选计数。如果满足m≤nmax(步骤S1808:是),则过程返回到步骤S1805。如果不满足m≤nmax(步骤S1808:否),则判定检测标志f是否为f=0(步骤S1809)。

如果不满足f=0(步骤S1809:否),则过程去到步骤S1812。另一方面,如果满足f=0(步骤S1809:是),则第n个(N+1)片段集合候选被保存以作为已去除候选(步骤S1810)。已去除候选计数i随后被递增(步骤S1811),并且(N+1)片段集合候选号码n被递增(步骤S1812),以判定是否满足n≤mmax(步骤S1813)。

如果满足n≤mmax(步骤S1813:是),则过程返回到步骤S1803。如果不满足n≤mmax(步骤S1813:否),则后向处理终止并且过程去到步骤S1504。

图19是详细示出图18所示的标题逻辑元素比较处理(步骤S1806)的流程图。如图19所示,(N+1)片段集合候选号码n的标题号码j被设置为j=1(步骤S1901);(N+1)片段集合候选号码m的标题号码k被设置为k=1(步骤S1902);并且标题同值标志ff被设置为ff=0(步骤S1903)。

然后判定标题号码j的标题单词候选的逻辑元素是否等同于标题号码k的标题单词候选的逻辑元素(步骤S1904)。如果逻辑元素不等同(步骤S1904:否),则标题同值标志ff被递增(步骤S1906),并且过程去到步骤S1909。另一方面,如果逻辑元素等同(步骤S1904:是),则判定标题号码j的标题单词候选的字符号码串是否等同于标题号码k的标题单词候选的字符号码串(步骤S1905)。

如果字符号码串等同(步骤S1905:是),则标题同值标志ff被递增(步骤S1906),并且过程去到步骤S1909。另一方面,如果字符号码串不等同(步骤S1905:否),则递增标题号码k(步骤S1907),并且判定是否满足k≤kmax(步骤S1908)。在此情况下,kmax表示标题计数。如果满足k≤kmax(步骤S1908:是),则过程回到步骤S1903并且标题同值标志被重置为ff=0。

另一方面,如果不满足k≤kmax(步骤S1908:否),则递增标题号码j(步骤S1909),并且判定是否满足j=jmax(步骤S1910)。如果不满足j=jmax(步骤S1910:否),则判定标题同值标志ff是否为ff=kmax(步骤S1911)。在此情况下,kmax表示标题计数。如果不满足ff=kmax(步骤S1911:否),则标题逻辑元素比较处理(步骤S1806)终止,并且过程去到步骤S1807。如果满足ff=kmax(步骤S1911:是),则检测标志f被设置为f=1(步骤S1912),以终止标题逻辑元素比较处理(步骤S1806),并且过程去到步骤S1807。

如上所述,根据以上实施例,可以从图1A所示的表单100分析逻辑结构。以上实施例可应用到独立于表格和标题的顺序和布局的表单100。

图20A和20B是表单的其他示例的示意图。图20A的表单2001是这样一个表单,其中17年度的旅费、设备费和消耗品费被写在一行中。图20B的表单2002是这一个表单,其中17年度的旅费、设备费和消耗品费和18年度的旅费、设备费和消耗品费分别被写在两行中。

图21是从图20A所示的表单2001获得的两片段集合候选的示意图。在图21中,粗线椭圆指示标题单词候选,细线椭圆指示数据单词候选。如果表单2001被表示为一行,则能够构成具有某一标题单词候选的两片段集合的数据单词候选位于该标题单词候选的右侧。两片段集合候选是利用此属性生成的。

如图21所示,由于两片段集合候选群组2101具有三个数据单词候选,因此生成了三个两片段集合候选({17年度,100,000}、{17年度,400,000}以及{17年度,3,000})。由于两片段集合候选群组2102也具有三个数据单词候选,因此生成了三个两片段集合候选({旅费,100,000}、{旅费,400,000}以及{旅费,3,000})。

由于两片段集合候选群组2103具有两个数据单词候选,因此生成了两个两片段集合候选({设备费,400,000}和{设备费,3,000})。由于两片段集合候选群组2104具有一个数据单词候选,因此候选被直接确定为两片段集合候选({消耗品费,3,000})。

图22A至22C是从图20A所示的表单2001获得的(N+1)片段集合候选的示意图。这里使用了两个标题逻辑元素(项目和年度),因此导致N=2。如图22A所示,由于三片段集合候选群组2201具有三个数据单词候选,因此生成三个三片段集合候选({17年度,旅费,100,000}、{17年度,旅费,400,000}和{17年度,旅费,3,000})。

在这三个三片段集合候选中,由于{17年度,旅费,100,000}的数据单词候选“100,000”未被用在其他的三片段集合候选群组2202和2203中,所以{17年度,旅费,100,000}被前向处理(步骤S1501)所确定/去除。

如图22B所示,由于三片段集合候选群组2202具有两个数据单词候选,因此生成了两个三片段集合候选({17年度,设备费,400,000}和{17年度,设备费,3,000})。如图22C所示,由于三片段集合候选群组2203具有一个数据单词候选,因此直接生成三片段集合({17年度,消耗品费,3,000})。由于三片段集合候选(群组)2203只具有数据单词候选“3,000”,因此该候选被后向处理(步骤S1503)确定/去除。

图23A和23B是从图20B所示的表单2002获得的两片段集合候选的示意图。在图23A和23B中,粗线椭圆指示标题单词候选,细线椭圆指示数据单词候选。如果表单2002被表示成多行(在此情况下是两行),则能够构成具有某一标题单词候选的两片段集合的数据单词候选位于该数据单词候选的右侧、下侧或右下侧。两片段集合候选是利用此属性生成的。

图23A和23B示出了为同一数据单词候选“5,000”选择“18年度”和“消耗品费”作为标题单词候选时的三片段集合候选。图23A示出了当17年度的行中的“消耗品费”被选择时的三片段集合候选2301,图23B示出了当18年度的行中的“消耗品费”被选择时的三片段集合候选2302。

如果同一标题单词候选多次存在,像上面的“消耗品费”那样,则三片段集合候选无法被唯一地识别。因此,从标题单词候选“消耗品费”中的每一个相对于两者共同的数据单词候选“5,000”的位置的位置来确定正确的标题单词候选。此处理由图5所示的标题单词候选评估部件506来执行。

图24是在同一标题单词候选“消耗品费”多次存在时的标题单词候选评估技术的示意图。虽然可由标题单词候选标识的数据单词候选在位于表单上标题单词候选的右侧、下侧或右下侧时能够被标识,但如果右侧和右下侧像图24所示那样彼此竞争,则右侧被优先采用。类似地,如果下侧和右下侧彼此竞争,则下侧被优先采用。也就是说,位于数据单词候选的水平或垂直方向(或者基本水平或垂直的方向)的标题单词候选被给予优先权。

更具体而言,通过获得链接标题单词候选的外接矩形2402和2403的中心q3和数据单词候选的外接矩形2401的中心Q1的线段L12和L13,并且相对于经过数据单词候选的中心Q1的水平线L评估线段L12和L13,即通过评估角度θ12和θ13,可选择适当的标题单词候选。

角度θ12是由水平线L和线段L12形成的角度,角度θ13是由水平线L和线段L13形成的角度。对于每个角度,获得sin2θ。角度θ12和θ13被代入θ。如果结果是sin2θ的值变为零,则确定标题单词候选相对于数据单词候选位于水平或垂直方向(或基本水平或垂直的方向),并且该标题单词候选被选择为适当的标题单词候选。

由于在图24所示的示例中θ13为180度,因此sin2θ的值变为零,并且外接矩形2403的标题单词候选被选择。也就是说,如图23A和23B所示,图23B的三片段集合候选是正确的。

图25是标题单词候选评估处理(步骤S607)的详细流程图。如图25所示,首先,评估目标候选计数i被设置为i=0(步骤S2501);(N+1)片段集合候选号码n被设置为n=1(步骤S2502);检测标志f被设置为f=0(步骤S2503);并且另一(N+1)片段集合候选号码m被设置为m=1(步骤S2504)。

判定号码n的(N+1)片段集合候选和号码m的(N+1)片段集合候选是否是相同逻辑元素群组的相同逻辑元素(步骤S2505)。如果这些候选不是相同逻辑元素群组的相同逻辑元素(步骤S2505:否),则过程去到步骤S2513。另一方面,如果这些候选是相同逻辑元素群组的相同逻辑元素(步骤S2505:是),则判定是否满足m≠n(步骤S2506)。

如果不满足m≠n(步骤S2506:否),则过程去到步骤S2513。如果满足m≠n(步骤S2506:是),则判定号码m的(N+1)片段集合候选的数据单词候选的字符号码是否被包括在号码n的(N+1)片段集合候选的数据单词候选的字符号码中(步骤S2507)。

如果字符号码未被包括(步骤S1507:否),则过程去到步骤S2513;如果包括(步骤S2507:是),则在号码m的(N+1)片段集合候选和号码n的(N+1)片段集合候选之间具有不相同的逻辑元素群组、逻辑元素和字符号码的标题单词候选的数目被计数(步骤S2508)。

然后判定标题单词候选计数的差别是否不大于1(步骤S2509)。如果差别大于1(步骤S2509:否),则过程去到步骤S2513。如果差别不大于1(步骤S2509:是),则标题单词候选和数据单词候选之间的角度被计算(步骤S2510)。然后判定号码n的(N+1)片段集合候选的标题单词候选的位置是否位于数据单词候选的位置的水平或垂直方向上(或基本水平或垂直的方向上)(步骤S2511)。

如果不位于水平或垂直方向上(或者不位于基本水平或垂直的方向上)(步骤S2511:否),则过程去到步骤S2513I;如果位于水平或垂直方向上(或者位于基本水平或垂直的方向上)(步骤S2512:否),则检测标志f被设置为f=1(步骤S2512),并且m被递增(步骤S2513)。

判定是否满足m≤mmax(步骤S2514)。在此情况下,mmax表示(N+1)片段集合候选计数。如果满足m≤max(步骤S2514:是),则过程回到步骤S2505。另一方面,如果不满足m≤mmax(步骤S2514:否),则判定检测标志f是否是f=1(步骤S2515)。

如果不满足f=1(步骤S2515:否),则过程去到步骤S2517,因为该候选不是候选去除的目标。另一方面,如果满足f=0(步骤S2515:是),则第n个(N+1)片段集合候选被存储以作为已去除候选e(p)(步骤S2516),并且号码n被递增(步骤S2517)。

然后判定是否满足n≤mmax(步骤S2518)。如果满足n≤mmax(步骤S2518:是),则过程回到步骤S2504。如果不满足n≤mmax(步骤S2518:否),则标题单词候选评估处理终止。在步骤S2516存储的已去除候选e(p)被输出,作为已确定的(N+1)片段集合。

图26是在同一标题单词候选“消耗品费”多次存在时标题单词候选的另一种评估技术的示意图。图26示出了根据包含一组标题单词候选的外接矩形和数据单词候选的外接矩形的新外接矩形的大小(面积)来采用适当的标题单词候选的示例。具有较小的外接矩形的标题单词候选被采用。

外接矩形2601是外接数据单词候选的外接矩形2401和标题单词候选的外接矩形2402的矩形,外接矩形2602是外接数据单词候选的外接矩形2401和标题单词候选的外接矩形2403的矩形。由于外接矩形2602与外接矩形2601相比较小,因此外接矩形2602中包括的外接矩形2403的标题单词候选被选择为适当的标题单词候选。

图27是详细示出标题单词候选评估处理(步骤S607)的另一过程的流程图。在图27的流程图中,图25的流程图的步骤S2510和S2511被步骤S2710和S2711所替换,其他步骤与图25的相同。

在步骤S2710,号码n和m的标题单词候选被检测并与共同的数据单词候选相组合,以生成包括号码n的标题单词候选的外接矩形和数据单词候选的外接矩形的号码n的外接矩形,和包括号码m的标题单词候选的外接矩形和数据单词候选的外接矩形的号码m的外接矩形,并且两个外接矩形的面积被计算。然后过程去到步骤S2711。

在步骤S2711,判定号码n的外接矩形的面积是否小于号码m的外接矩形的面积。如果面积不小于(步骤S2711:否),则过程去到步骤S2513。另一方面,如果面积小于(步骤S2711:是),则过程去到步骤S2512。后续的处理与图25的相同。

根据标题单词候选评估部件506,如果同一标题单词候选多次存在,则可识别适当的标题单词候选,并且在表单的逻辑结构分析中可实现更高的准确度。

现详细描述图5所示的数据单词候选评估部件507。图28是表单的另一示例的示意图。如图28的(A)部分所示,表单2800的标题项(“旅费”和“设备费”)和数据(“100,000”和“400,000”)在某些部分并行地写为两层。虽然人可以在直觉上知道旅费是100,000(日元)并且设备费是400,000(日元),但是此逻辑结构无法如上所述地被唯一识别。

在图28的示例中,虽然标题项2801只具有标题项候选“17年度”,但标题项2802具有两个标题项候选(“旅费”和“设备费”)。类似地,数据项(data item)2803具有两个数据项候选(“100,000”和“400,000”)。因此,如图28所示,存在四个样式的三片段集合候选28B至28E。在图28中,粗线椭圆指示标题单词候选,细线椭圆指示数据单词候选。

三片段集合候选28B由标题单词候选“17年度”、标题单词候选“旅费”和数据单词候选“100,000”构成。三片段集合候选28C由标题单词候选“17年度”、标题单词候选“设备费”和数据单词候选“400,000”构成。

三片段集合候选28D由标题单词候选“17年度”、标题单词候选“旅费”和数据单词候选“400,000”构成。三片段集合候选28E由标题单词候选“17年度”、标题单词候选“设备费”和数据单词候选“100,000”构成。

在识别出三片段集合候选28B至28E之后,计算从标题项2802选择的标题单词候选和从数据项选择的数据单词候选之间的距离,以识别三片段集合候选28B至28E之中具有相同的所计算距离的三片段集合候选。

图29A和29B是三片段集合候选的组合的评估示例的示意图。图29A示出了三片段集合候选28B和28C的组合的评估示例,图29B示出了三片段集合候选28D和28E的组合的评估示例。在三片段集合候选28B至28E中计算的距离分别是db、dc、dd和de。距离db和dc在图29A中是等同的,距离dd和de在图29B中是等同的。因此,三片段集合候选28B和28C被选择为适当的三片段集合候选。当实际选择适当的三片段集合候选时,获得标题单词候选和数据单词候选之间的距离,并且选择具有较小方差(variance)的三片段集合候选。

图30是详细示出数据单词候选评估处理(步骤S608)的流程图。如图30所示,(N+1)片段集合候选号码n被设置为n=1(步骤S3001),并且与候选号码n并发地实现的(N+1)片段集合候选的数目tbl_max被设置为tbl_max(n)=0(步骤S3002)。然后判定候选号码n是否被包括在候选号码表格tbl(i,j)中(其中i=1至n-1,并且j=1至tbl_max(i))(步骤S3003)。

如果候选号码n被包括(步骤S3003:是),则过程去到步骤S3014。如果候选号码n不被包括(步骤S3003:否),则候选号码表格tbl(i,j)被设置为tbl(n,l)=1(步骤S3004),并且tbl_max(n)=1被设置(步骤S3005)。

候选号码n的(N+1)片段集合候选的同时实现的候选的候选号码m被设置为m=1(步骤S3006)。同时实现可能性(concurrentrealizability)检查处理被执行(步骤S3007)。同时实现可能性检查处理(步骤S3007)在下文中描述。

定义同时实现可能性标志为f,并且判定同时实现可能性标志f是否为f=1(步骤S3008)。如果不满足f=1(步骤S3008:否),则过程去到步骤S3011。如果满足f=1(步骤S3008:是),则同时实现候选计数tbl_max(n)被设置为tbl_max(n)=tbl_max(n)+1(步骤S3009),并且候选号码表格tbl(i,j)被设置为tbl(n,tbl_max(n))=m(步骤S3010)。

同时实现候选号码m随后被实现(步骤S3011)。判定是否满足m≤nmax(步骤S3012)。在此情况下,nmax表示(N+1)片段集合候选计数。如果满足m≤nmax(步骤S3012:是),则过程去到步骤S3007。如果不满足m≤nmax(步骤S3012:否),则执行距离方差计算处理(步骤S3013)。距离方差计算处理(步骤S3013)在下文中描述。

然后递增候选号码n(步骤S3014),并且判定是否满足n≤nmax(步骤S3015)。如果满足n≤nmax(步骤S3015:是),则过程去到步骤S3002。如果不满足n≤nmax(步骤S3015:否),则执行最小方差选择处理(步骤S3016)。最小方差选择处理(步骤S3016)在下文中描述。

然后,在最小方差选择处理(步骤S3016)中选择的(N+1)片段集合候选号码tbl(min_n,*)的tbl_max(min_n)个候选被拷贝到已去除候选(步骤S3017)。过程去到步骤S609。

图31是详细示出同时实现可能性检查处理(步骤S3007)的流程图。如图31所示,首先,将同时实现可能性标志f设置为f=0(步骤S3101),并且判定候选号码n的(N+1)片段集合候选的数据单词候选的逻辑元素群组是否等同于候选号码m的(N+1)片段集合候选的数据单词候选的逻辑元素群组(步骤S3102)。如果群组不等同(步骤S3102:否),则同时实现可能性标志f被设置为f=0(步骤S3114),并且过程去到步骤S3008。

另一方面,如果群组等同(步骤S3102:是),则判定候选号码n的(N+1)片段集合候选的数据单词候选的逻辑元素是否等同于候选号码m的(N+1)片段集合候选的数据单词候选的逻辑元素(步骤S3103)。如果元素等同(步骤S3103:是),则同时实现可能性标志f被设置为f=0(步骤S3114),并且过程去到步骤S3008。

如果元素不等同(步骤S3103:否),则判定在候选号码n的(N+1)片段集合候选的数据单词候选的字符号码串和候选号码m的(N+1)片段集合候选的数据单词候选的字符号码串中是否存在相同字符号码(步骤S3104)。如果存在相同字符号码(步骤S3104:是),则同时实现可能性标志f被设置为f=0(步骤S3114),并且过程去到步骤S3008。

另一方面,如果不存在相同字符号码(步骤S3104:否),则候选号码n的标题号码p被设置为p=0(步骤S3105),并且候选号码m的标题号码q被设置为q=0(步骤S3106)。判定标题号码p的逻辑元素群组是否等同于标题号码q的逻辑元素群组(步骤S3107)。如果群组不等同(步骤S3107:否),则同时实现可能性标志被设置为f=0(步骤S3114),并且过程去到步骤S3008。

如果群组等同(步骤S3107:是),则判定标题号码p的逻辑元素是否等同于标题号码q的逻辑元素(步骤S3108)。如果元素等同(步骤S3108:是),则过程去到步骤S3111。

另一方面,如果元素不等同(步骤S3108:否),则同时实现可能性标志f被设置为f=1(步骤S3109),并且标题号码q被递增(步骤S3110)。然后判定是否满足q≤pmax(步骤S3111)。在此情况下,pmax表示标题单词候选计数。

如果满足q≤pmax(步骤S3111:是),则过程回到步骤S3107。如果不满足q≤pmax(步骤S3111:否),则递增标题号码p,并且判定是否满足p≤pmax(步骤S3112)。如果满足p≤pmax(步骤S3113:是),则过程回到步骤S3106。另一方面,如果不满足p≤pmax(步骤S3113:否),则过程去到步骤S3008。

图32A是详细示出距离方差计算处理(步骤S3013)的流程图。如图32A所示,表示平均值的变量“a”被设置为a=0(步骤S3201);表示方差的变量“b”被设置为b=0(步骤S3202);并且目标元素提取处理被执行(步骤S3203)。目标元素提取处理(步骤S3203)在下文中描述。

然后,定义j=0(步骤S2104),并且将同时实现的候选的候选号码k设置为k=tbl(n,j)(步骤S3205)。搜索不同于其他同时实现的候选的单词候选(步骤S3206)。然后,计算x=DGX(k)-DHX(k,1)(步骤S3207)。DGX(k)是候选号码k的同时实现候选的数据单词候选的中心的X坐标值,DHX(k,1)是候选号码k的同时实现候选的第一标题单词候选的中心的X坐标值。

类似地,计算y=DGy(k)-DHy(k,1)(步骤S3208)。DGY(k)是候选号码k的同时实现候选的数据单词候选的中心的Y坐标值,DHY(k,1)是候选号码k的同时实现候选的第一标题单词候选的中心的Y坐标值。计算出的x和y被用于计算候选号码k的同时实现候选的第一标题单词候选和数据单词候选之间的距离d(步骤S3209)。

计算出的距离d被添加到表示平均值的变量a以更新变量a(步骤S3210);距离d的平方被添加到表示方差的变量b以更新变量b(步骤S3211);并且j被递增(步骤S3212)。判定是否满足j≤tbl_max(n)(步骤S3213)。

如果满足j≤tbl_max(n)(步骤S3213:是),则过程去到步骤S3205。如果不满足j≤tbl_max(n)(步骤S3213:否),则变量a被存储以作为平均值mean(n)(步骤S3214),并且变量b被存储以作为方差var(n)(步骤S3215)。这导致距离方差计算处理的终止,并且过程去到步骤S3014。

图32B是详细示出目标元素提取处理(步骤S3203)的流程图。如图32B所示,目标元素号码1(*,*)被设置为1(*,*)=0(步骤S3221);候选号码表格tbl(n,l)的标题号码p被设置为p=1(步骤S3222);同时实现候选号码z被设置为z=2(步骤S3223);候选号码表格tbl(n,z)的标题号码q被设置为q=1(步骤S3224)。

判定标题号码p的逻辑元素群组是否等同于标题号码q的逻辑元素群组(步骤S3225),并且如果群组不等同(步骤S3225:否),则过程去到步骤S3230。如果群组等同(步骤S3225:是),则判定标题号码p的逻辑元素是否等同于标题号码q的逻辑元素(步骤S3226),并且如果元素不等同(步骤S3226:否),则l(p,z)=q被设置(步骤S3227);l(p,l)=p被设置(步骤S3228);ll=p被设置(步骤S3229);并且过程去到步骤S3232。

另一方面,如果在步骤S3226,标题号码p的逻辑元素等同于标题号码q的逻辑元素(步骤S3226:是),则递增标题号码q(步骤S3230),并且判定是否满足q≤pmax(步骤S3231),其中pmax是标题的数目。

如果满足q≤pmax(步骤S3231:是),则过程回到步骤S3225。如果不满足q≤pmax(步骤S3231:否),则递增标题号码p(步骤S3232)并且判定是否满足p≤pmax(步骤S3233)。如果满足p≤pmax(步骤S3233:是),则过程回到步骤S3224;如果不满足p≤pmax(步骤S3233:否),则目标元素提取处理终止。

图33是详细示出最小方差选择处理(步骤S3016)的流程图。如图33所示,最小方差值min被设置为min=0(步骤S3301);最小方差候选号码min_n=0被设置(步骤S330),并且(N+1)片段候选的候选号码n被设置为n=1(步骤S3303)。

判定同时实现候选计数tbl_max(n)是否是tbl_max(n)>0(步骤S3340)。如果不满足tbl_max(n)>0(步骤S3304:否),则过程去到步骤S3308。另一方面,如果满足tbl_max(n)>0(步骤S3304:是),则判定最小方差值min是否为min>var(n)(步骤S3305)。

如果不满足min>var(n)(步骤S3305:否),则过程去到步骤S3308。如果满足min>var(n)(步骤S3305:是),则最小方差值min被设置为min=var(n)(步骤S3306),并且最小方差候选号码min_n被设置为min_n=n(步骤S3307)。在递增n之后(步骤S3308),判定是否满足n≤nmax(步骤S3009),其中nmax是(N+1)片段集合候选计数。如果满足n≤nmax(步骤S3309:是),则过程回到步骤S3304。如果不满足n≤nmax(步骤S3309:否),则过程去到步骤S3017。

图34A和34B是三片段集合候选的组合的另一评估示例的示意图。虽然如图29所示,通过获得标题单词候选和数据单词候选的中心之间的距离来将具有较小方差的(N+1)片段集合候选选择为适当的(N+1)片段集合候选,但是图34所示的评估是通过比较包括标题单词候选的外接矩形和数据单词候选的外接矩形的外接矩形的形状而不是中心之间的距离,从而来执行的。

图34A示出了三片段集合候选28B和28C的组合的评估示例,图34B示出了三片段集合候选28D和28E的组合的评估示例。为三片段集合候选28B至28E获取的外接矩形分别是rb、rc、rd和re。如图34A所示,外接矩形rb和rc的面积是等同的(外接矩形之间的方差较小),而如图29B所示,外接矩形db和de的面积是不同的(外接矩形之间的方差较大)。因此,三片段集合候选28B和28C被选择为适当的三片段集合候选。当实际选择适当的三片段集合候选时,选择在外接矩形之间具有较小方差的三片段集合候选。

图35是详细示出数据单词候选评估处理(步骤S608)的另一过程的流程图。在图35的流程图中,图30的流程图的步骤S3013被步骤S3513所替换,其他步骤与图30的相同。在步骤S3513,执行矩形方差计算处理。

图36是详细示出图35所示的矩形方差计算处理(步骤S3515)的流程图。如图36所示,表示平均值的变量“a”被设置为a=0(步骤S3601);表示方差的变量“b”被设置为b=0(步骤S3602);并且同时实现候选的号码k被设置为k=1(步骤S3603)。搜索与其他同时实现候选不同的单词候选(步骤S3604)。

然后,计算包括第k个同时实现候选的标题单词候选和数据单词候选的外接矩形。具体而言,计算左上x坐标sx=MIN(hsx,dsx)(步骤S3605),其中hsx表示标题单词候选的左上x坐标值,dsx表示数据单词候选的左上x坐标值。

类似地,计算左上y坐标sy=MIN(hsy,dsy)(步骤S3606),其中hsy表示标题单词候选的左上y坐标值,dsy表示数据单词候选的左上y坐标值。计算右下x坐标ex=MIN(hex,dex)(步骤S3607),其中hex表示标题单词候选的右下x坐标值,dex表示数据单词候选的右下x坐标值。类似地,计算右下y坐标ey=MIN(hey,dey)(步骤S3608),其中hey表示标题单词候选的右下y坐标值,dey表示数据单词候选的右下y坐标值。

计算外接矩形的面积S(S=(ex-sx)×(ey-sy))(步骤S3609)。计算出的面积S被添加到表示平均值的变量a以更新变量a(步骤S3610);面积S的平方被添加到表示方差的变量b以更新变量b(步骤S3611);并且同时实现候选的号码k被递增(步骤S3612)。判定是否满足k≤j(步骤S3613)。

如果满足k≤j(步骤S3613:是),则过程回到步骤S3605。如果不满足k≤j(步骤S3613:否),则变量a被存储以作为平均值(步骤S3614),并且变量b被存储以作为方差(步骤S3615)。这导致矩形方差计算处理的终止,并且过程去到步骤S3014。

根据数据单词候选评估部件507,如果存在标题单词候选和数据单词候选的多个组合,则可以识别适当的组合,并且可以在表单的逻辑结构分析中实现更高的准确度。

图37是根据实施例的逻辑结构分析装置的硬件配置的示意图。如图37所示,逻辑结构分析装置500包括计算机3710、输入设备3720和输出设备3730,并且可通过路由器或调制解调器(未示出)连接到诸如LAN或WAN之类的网络3740。

计算机3710具有CPU、存储器和接口。CPU负责逻辑结构分析装置500的整体控制。存储器由ROM、RAM、HD、光盘3711和闪存构成。存储器用作CPU的工作区域。

存储器中存储有各种程序,这些程序根据来自CPU的指令被加载。对HD和光盘3711的数据读取/写入由盘驱动器来控制。光盘3711和闪存可被从计算机3710去除。接口控制来自输入设备3720的输入、到输出设备3730的输出以及通过网络3740的发送/接收。

输入设备3720包括键盘3721、鼠标3722、扫描仪3723,等等。键盘3721包括用于输入字符、数字字符、各种指令等等的键,用于数据的输入。可以使用触摸板。鼠标3722移动光标、选择区域,或者移动窗口或调整窗口大小,等等。扫描仪3723以光学方式读取图像。读取的图像被捕捉和存储在计算机3710的存储器中,作为图像数据。扫描仪3723可具有光学字符识别(OCR)功能。

输出设备3730包括显示器3731、扬声器3732、打印机3733,等等。打印机1513打印图像数据和文档数据。显示器3731显示光标、图标或工具框,以及诸如文档、图像和功能信息之类的数据。扬声器输出诸如声音效果和阅读语音之类的声音。打印机3733打印图像数据和文档数据。

在本实施例中说明的方法可由诸如个人计算机和工作站之类的执行预先准备的程序的计算机来实现。程序被记录在诸如硬盘、柔性盘、CD-ROM、MO和DVD之类的计算机可读记录介质上,并且通过被计算机从记录介质读出而被执行。程序可以是能够通过诸如因特网之类的网络分发的传输介质。

根据上述实施例,可以读取具有各种布局的表单,以唯一地标识多个标题和由标题标识的数据,并且可以自动分析表单的逻辑结构。

如果已确定集合候选包括含糊的标题群组,则可根据表单上的数据和含糊标题群组的相对位置来识别适当的标题,以唯一地识别标题和由标题标识的数据。

类似地,如果已确定集合候选包括含糊的标题群组和含糊的数据群组,则可以根据已确定集合候选中的含糊数据和含糊标题的相对位置来识别数据和标题的适当组合,以唯一地标识标题和由标题标识的数据。

虽然已经针对具体实施例描述了本发明以便进行完整和清楚的公开,但是所附权利要求并不受此限制,而是应当被解释为包含了本领域的技术人员可以想到的、完全落入这里阐述的基本教导之内的所有修改和替换。

本申请基于2007年10月31日提交的在先日本专利申请No.2007-283916并要求其优先权,该在先申请的全部内容能够引用被并入在此。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号