从可移植电子文档中提取表格的方法和装置的制作方法

文档序号:6577083阅读:136来源:国知局
专利名称:从可移植电子文档中提取表格的方法和装置的制作方法
技术领域
本发明一般地涉及文档处理和文档理解,具体地涉及提取可移植电子文档中的表 格。
背景技术
可移植的电子文档,如PDF,PS等,具有在各种系统平台中显示格式、属性不变的 特性,即具有可移植性,并在日常办公室工作中被广泛应用。但是从可移植电子文档中提取 部件还是一件难的工作。比如,在PDF文档的格式说明书中,并没有表格的概念和相应的部 件,表格是由线段和文字组成,这使得从PDF中提取表格非常困难。可以预期的是,从电子 文档中提取表格将在文档重用以及文档检索等领域有广泛应用。美国专利6801673 B2提取PDF文档中的词。该专利通过查找文字片断中的词分 隔字符(空格)来提取词或者是判断相邻文字片断之间的距离,如果该距离大于一定门限 值,相邻的文字片断就被分为两个词。该专利的输入是 一个PDF文档,输出是该文档所包含 的词的集合。美国专利5832530提出了一个从PDF文档中提取内容片断的工具。首先,用户在 PDF浏览界面拖拽一个矩形,该工具提取该矩形内包含的PDF文档内容片断,并将提取的内 容片断存储为一个新的PDF文档。该工具提取和粘贴低级的PDF命令,高级文档内容,如图 片,表格信息并没有提取。在文档理解、文档重用、文档检索等领域,存在对于从可移植电子文档中自动提取 表格的需要。

发明内容
本发明的一个目的是提供一种能够自动从可移植电子文档提取表格的装置和方法。根据本发明的一个方面,提出了一种从可移植电子文档中提取表格的装置,可以 包括命令获取单元,用于解析可移植电子文档的内容以获取和表格相关的命令;线条提 取单元,用于通过处理这些命令来提取线条和线条位置;表格提取单元,用于分析线条的位 置关系来提取表格。根据本发明的另一个方面,提出了一种从可移植电子文档中提取表格的方法,可 以包括解析可移植电子文档的内容以获取和表格相关的命令;通过处理这些命令来提取 线条和线条位置;分析线条的位置关系来提取表格。利用本发明的装置和方法,可以自动地从可移植电子文档中提取表格。对于文档 重用、文档检索等应用具有重要意义。


通过结合附图对本发明各个实施例的详细描述,本领域的技术人员可以更好地理解本发明的上述和其它方面、特点和优点,其中在所有附图中使用相同或相似的附图标记 来表示相同或者相似的部件,在附图中图1示出了根据本发明一个实施例的从可移植电子文档中提取表格的装置的构 成框图;图2示出了根据本发明一个实施例的图1所示装置中的线条提取单元的构成框 图;图3是示出了根据本发明一个实施例的从可移植电子文档提取表格的方法流程 图;图4示出了根据本发明一个实施例的从可移植电子文档中提取表格相关命令的 流程图;图5示出了根据本发明一个实施例的线条提取流程图;图6示出了根据本发明一个实施例的提取表格的流程图;图7示出了根据本发明一个实施例的PDF文档树状结构;图8示出了根据本发明一个实施例的所提取的表格示例;以及图9示出了用于实现本发明一个实施例的示例性计算机系统。
具体实施例方式下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关现有技术 的详细描述可能会混淆本发明的要点,则不会在这里提供其详细描述。图1示出了根据本发明一个实施例的从可移植电子文档中提取表格的装置100的 构成框图。如图1所示,提取表格的装置100可以包括命令获取单元110,用于解析可移 植电子文档的内容以获取和表格相关的命令;线条提取单元120,用于通过处理这些命令 来提取线条和线条位置;表格提取单元130,用于分析线条的位置关系来提取表格。图2示出了根据本发明一个实施例的图1所示装置中的线条提取单元120的构成 框图。如图2所示,线条提取单元130可以包括用于删除重复线条的重复线条删除单元121 以及用于合并相连的线条的相连线条合并单元122。需要指出的是,重复线条删除单元121 以及相连线条合并单元122对于线条提取单元120并非总是必需的。例如,在不存在相重 复的线条的情况下,则不需要重复线条删除单元121,而在不存在断续线条的情况下,则不 需要相连线条合并单元122。下面参照图3到图6来详细说明本发明示例性实施例的提取表格的方法。图3是示出了根据本发明一个实施例的从可移植电子文档提取表格的方法流程 图。如图3所示,根据该实施例的提取表格的方法可以包含以下步骤步骤310,解析 可移植电子文档的内容以获取和表格相关的命令;步骤320,通过处理这些命令来提取线 条和线条位置;步骤330,分析线条的位置关系来提取表格。图8示出了一个所提取的表格 的示例。下面将参照图4到图6对于提取表格的方法的各个步骤进行示例性详细说明。在 下面的描述中,将以PDF文件作为可移植电子文档的示例来加以说明。不过,本发明并不局 限于此,可移植电子文档可以包括任何具有与系统平台无关的特性的电子文档,例如,PS。
图4示出了根据本发明一个实施例的从可移植电子文档中提取表格相关命令的 流程图。如图4所示,在步骤311,载入PDF文件。在步骤312,解析并建立该PDF文档对应 的树状结构,通过该文档结构,对PDF文档每页的内容流和资源的访问变得更加容易。图7 示出了 PDF文档树状结构的示例。当然,作为一个替代性实施例,可以不建立文档树状结 构,而直接提取需要的内容流和资源。
在步骤313,载入PDF文档当前页的内容流和资源,根据内容流的编码方式对内容 流解码。根据PDF文档说明书,PDF文档可以支持多种内容流编码方式,比如FlateDecode 和LZWDecode等。在步骤313中实现对PDF支持的多种编码方式解码,由此得到了解码后 的内容流。解码后的PDF内容流包括PDF命令集合。在步骤314,逐条解析解码后PDF内容流中的命令,提取那些和表格线绘制相关的 命令。在本实施例中,和表格线相关的PDF命令包括但不限于“re”,“m”,“1”,“h”。例如, 命令“re χ y width height”根据参数“χ y width height”绘制一个长方形,命令“m χ y”将当前绘制起点移动到点(x,y),命令” Ix y”从当前绘制起始点划线到点(x,y)并把当 前绘制起始点设为(x,y),命令”h”从当前绘制点划线到子路径起始点,并关闭子路径。PDF 文档格式定义中并没有表格的概念,表格是通过绘制一组独立的线条来实现的。在步骤315,判断PDF文档是否还存在下一页,如果存在下一页,则继续对下一页 执行步骤313-314。如果不存在下一页,则在步骤316返回所提取的表格相关命令,并结束 处理。在本实施例中,对于整个PDF文档提取所有表格。当然,本发明不局限于此,而是可 以对于某些页,某一页,或者某一页中的某具体部分来提取表格。图5示出了根据本发明一个实施例的线条提取流程图。如图5所示,步骤321首先逐条载入步骤310中提取的PDF命令。步骤322解析 这些命令,根据它们的参数来计算线条的位置信息,包括起始点,终点等,并删除那些比门 限值Tl短,或者比门限值T2宽的线条,即删除过短或多粗的线条。门限值Tl和T2可以例 如依经验确定,或者通过统计结果确定。在步骤323,分析所得的线条分别添加到水平线条 集合和垂直线条集合。当然,可以不区分水平线条和垂直线条,而将所有线条添加到一个线 条集合中。另外,为了便于描述,本实施例中示出了仅包含水平线条和垂直线条的情况,但 是这并不构成对本发明的限制,本领域技术人员容易想见,本发明可以适用于倾斜表格的 情况,此时线条不是水平或者垂直的。然后返回到步骤321,判断是否存在下一个命令,如果存在,则继续步骤322-323 的处理;如果不存在,则前进到步骤324。在步骤324,处理水平线条集合和垂直线条集合以去除重复的表格线条。这里所 指的重复的线条,既包括等同的两条线条,也包括一个线条为另一个线条所覆盖的线条,本 发明将这两种情况统称为一个线条落入另一个线条的区间内。该步骤两两比较水平线条集 中的线条,如果存在两个水平线条,其中在水平方向上线条1落入线条2的区间内,并且在 垂直方向上,这两天线条之间的距离小于预定门限T3,则删除线条1。例如,如果线条1起 点和终点坐标分别为(2,2)和(3,2),而线条2的起点和终点分别为(1,2)和(4,2),那么 线条1完全落入线条2的区间内,则删除线条1 ;再例如,如果线条1起点和终点坐标分别 为(1,2.01)和(3,2. 01),线条2的起点和终点坐标分别为(1,2)和(3,2),则线条1和线条2在水平方向上重合,而在垂直方向上相距0. 01,如果垂直门限为0. 03,那么认为此两条 线条重复,则删除其中一条线条。相同的操作也被应用于垂直线条集合。在步骤325,合并相连的短线条为长线条。该步骤两两比较水平线条集中的线条, 如果存在两个水平线条,第一个水平线条的起点和第二个水平线条的终点之间的距离小于 给定门限T4,则根据第二个线条的起点和第一个线条的终点生成一个新的水平线条,删除 第一个和第二个水平线条,同时添加新产生的水平线条到水平线条集合。相同的操作也被 应用于垂直线条集合。如上述的,在某些情况下,重复线条删除步骤324以及相连线条合并步骤325对于 线条提取步骤320并非是必需的。例如,在不存在相重复的线条的情况下,则不需要重复线 条删除步骤324,而在不存在断续线条的情况下,则不需要相连线条合并步骤325。图6示出了根据本发明一个实施例的提取表格的流程图。如图6所示,在步骤331,进行候选表格检测,用于比较水平线条集合和垂直线条 集合中的线条,生成可能的候选表格。本实施例提取文档中的两种类型的表格由水平线条和垂直线条组成的表格,我 们称它为普通表格,以及只由水平线条构成的表格,我们称它为水平表格。步骤331的操作包括候选普通表格检测和候选水平表格检测。根据一个实施例,候选普通表格检测包括两两比较水平线条集和垂直线条集中 的线条。如果存在一个水平线条Hl和一个垂直线条VI,使得它们的终点之间的距离小于给 定门限,则根据该水平线条和垂直线条生成一个候选表格,该候选表格是包含Hl和Vl的最 小长方形。之后添加新生成的普通候选表格到普通表格集合。根据一个实施例,候选水平表格检测包括两两比较水平线条集合中的线条,如果 存在一组水平线条,他们的起始点的X坐标相近并终点的X坐标也相近,并且该组中水平线 条的数目大于等于3,那么就根据该组水平线条生成一个候选水平表格,该候选水平表格是 包含该组水平线条的最小长方形。添加该候选水平表格到水平表格集合。候选普通表格或候选水平表格的生成不局限于上述示例。例如,作为生成候选普通表格的方法,替代地,可以分析线条集中的线条,找到两 条水平线条Hl和H2,以及两条垂直线条Vl和V2,其中该四个水平线条的位置关系构成一 个长方形,则可以直接以此长方形作为候选表格。例如,作为生成候选水平表格的方法,替代地,可以只要判断两条水平线条的起始 点和终点的水平坐标分别相近,则根据包含该两条水平线条的最小矩形创建一个候选水平 表格。在该替代性实施例中,生成的候选水平表格数目多于前述实施例中对于水平线条数 目大于3的一组水平线条生成候选水平表格的数目,不过这可以在后续假表格删除处理中 进行删减。在步骤332,分析所有候选表格,并删除假表格。下面对于普通表格和水平表格这 两种情况,关于如何删除假表格,分别给出示例性说明。关于普通表格,需要首先分析该普通表格所包含的合法表格线,然后根据所获得 的合法表格线的情况,检测一个候选普通表格是否是假表格,并删除所检测到的假表格。具体地,首先对于普通表格集合中的一个候选表格,检测该表格包含的合法水平 线条和合法垂直线条。根据本发明一个实施例,如下判断一个线条是否是合法表格线如果一个线条和该候选表格的边界相交,并且该线条长度大于给定门限,该线条被定义为合法 表格线。上述判断合法表格线的标准仅为一个示例,本发明不局限于此,而是可以根据需要 确定合法表格线的标准,例如,替代地,可以确定如果一个水平线条和候选表格的垂直边界 之间距离小于给定门限,且该线条长度大于给定门限,则该水平线条为合法表格线。在本实 施例中,优选地,合法水平线条门限T5被设为0. 4*表格宽度,合法垂直线条门限T6被设为 0. 4*表格高度。当然,本发明不限于于此,而是可以根据需要任意设定合法水平线条门限或 合法垂直线条门限。接下来,判断一个候选普通表格是否是假表格。根据本发明的一个实施例,如果该 候选普通表格包含的水平合法表格线条数目小于3或者该候选表格包含的垂直合法表格 线条数目小于3,或者相邻水平合法表格线条之间的平均距离小于给定门限T7,或者相邻 垂直合法表格线条之间的平均距离小于给定门限T8,则可以判断该候选表格为假表格,并 从候选普通表格集合中删除。这里,作为示例,可以根据PDF文档本身的一些性质来确定门 限T7和T8,例如T7可以确定为PDF文档中最小行间距的50%,T8可以确定为PDF中最小 字体宽度的70%。关于假候选水平表格的删除处理,首先对于水平表格集合中的一个候选表格,检 测该表格包含的水平线条和垂直线条,如果相邻水平线条之间的平均距离小于给定门限 T9,或者存在垂直线条,则判断该表格为假表格,并从水平表格集合中删除。这里T9的取值 可以和上述门限T7的设置相同,当然也可以根据需要独立设置。最后,比较普通表格集合和水平表格集合中的所有表格,如果一个表格包含于另 一个表格中,则删除较小的表格。
经表格删除处理后,普通表格集合和水平表格集合中的剩余表格为最终提取的表 格。图8所示为该实施例提取的一个水平表格示例。上述描述了本发明的优选实施例,但并不构成对本发明实施方式的限制。本领域 技术人员可以想见一些替代。例如,在本发明的实施例中,采用了首先得到所有线条,然后删除重复的线条和合 并相连的线条。本发明不限于此,而是替代地,可以在提取线条操作中,每提取一条线条,即 判断该线条是否和以前提取的线条重复,以及该线条是否和先前提取的线条相连。而且,在本发明的实施例中,在提取表格时,首先获得所有的候选表格,然后删除 包含于大表格中的小表格。本发明不限于此,而是可以在每获得一个候选表格时,即判断该 候选表格是否被先前得到的候选表格包含,或者是否包含先前得到的候选表格,并根据判 断结果进行相应的表格删除处理,由此可减少后续的处理量。此外,在本发明的实施例中,提取表格时,是生成所有候选表格,然后删除假表格。 但是可以想见,可能存在要把一个大表格拆分成两个小表格的情况。比如,对于水平表格, 如果两条合法表格线之间的距离过大,那么可以认定这是两个表格,而可以将该一个大表 格拆成两个小表格。而且,本发明实施例中,以水平线条和垂直线条作为所提取线条的例子。不过,本 发明并不局限于此,如果一个表格是倾斜的,那么当然也可以提取倾斜的线条。另外,在本发明的实施例中,优选地将线条划分到水平线条集和垂直线条集,当然 可以不进行该划分而直接进行重复线条删除、线条合并、表格检测等操作。
此外,本发明图4在解析文档提取文字相关命令和字体时,示出了逐页处理文档。 但是,本发明不限于此,当然,也可以仅仅处理文档的某一页,或者某页中的某部分。而且,说明书实施例中涉及到一些门限Tl到T9,并给出了一些优选取值,不过这 仅仅是示例性说明。本领域技术人员可以根据需要,凭经验或者根据统计为这些门限参数 设定任意的门限值。还需要说明的是,本发明的实施例可以通过硬件、软件、固件或它们的结合的方式 来实现,其实现方式不对本发明的范围构成限制。图9示出了用于实现本发明一个实施例的示例性计算机系统。如图9所示,一个从PDF文档中提取表格的计算机系统10包括计算机主机11,键 盘16,监视器17,打印机18,软盘驱动器19,网络接入器20以及硬盘驱动器21。计算机主 机11包括数据总线12,随机存储器(RAM) 13,只读存储器(ROM) 14,中心处理器15以及外设 总线22。根据从随机存储器13中接到的指令,中心处理器15控制输入数据的接收和处理, 以及输出到监视器17或者其他外设。在本实施例中,中心处理器15的一个功能就是处理 输入的PDF文档,提取文档中包含的表格。提取的表格信息可以被中心处理器15中的其他 应用程序使用。中心处理器15通过数据总线12来访问随机存储器13和只读存储器14。随机存 储器13被中心处理器15用作一块可读写的内存,用来作为各个进程的工作区以及可变数 据存储区。只读存储器14存储PDF文件,表格提取程序以及其他的应用提取的表格的程序。外设总线22用于访问和计算机主机11相连的输入,输出以及存储等外围设备。在 本实施例中,这些外围设备包括监视器17,打印机18,软盘驱动器19,网络接入器20以及 硬盘驱动器21。监视器17通过外设总线22来显示中心处理器15输出的数据和图像。它 可以是栅格式显示设备如CRT或者是IXD显示器。打印机18把中心处理器输入的数据和 图像打印到纸张或者是和纸张相似的媒介。为了在如监视器17或打印机18等输出设备上 显示PDF文档,计算机系统10需要实现某个过程来进行从PDF文档到其对应图像表示的转 换。在其他的实施例中,如打印机18等输出设备上也可以包括中心处理器或相似的处理器 以实现类似的PDF文档到图像转换步骤。软盘驱动器19以及硬盘驱动器21用来存储PDF 文档。通过软盘驱动器19,PDF文档可以在不同计算机系统之间传递。硬盘驱动器21存储 空间更大,而且访问速度更快。其他的存储设备,比如闪存,也可以用来存储PDF文件供计 算机系统10访问。计算机系统10通过网络接入器20在网络上发送数据和接收来自其他 计算机系统的数据。用户通过键盘16输入指令给计算机系统10。虽然上面已经结合附图示出并描述了本发明的一些实施例,但是本领域的技术人员应当理解,在不偏离本发明的原则和精神的情况下,可以对这些实施例做出变化和改变, 所做的变化和改变仍然落在本发明及其等价物的保护范围之内。
权利要求
一种从可移植电子文档中提取表格的装置,包括命令获取单元,用于解析可移植电子文档的内容以获取和表格相关的命令;线条提取单元,用于通过处理这些命令来提取线条和线条位置;表格提取单元,用于分析线条的位置关系来提取表格。
2.根据权利要求1的装置,所述命令获取单元执行以下步骤解析可移植电子文档格式,提取并解码每页的内容流;解析每页的内容流以提取和表格相关的命令。
3.根据权利要求2的装置,所述和表格相关的命令包括画线和长方形的命令。
4.根据权利要求1的装置,所述线条提取单元提取的线条不包含长度小于预定值的线 条和宽度大于预定值的线条。
5.根据权利要求1的装置,所述线条提取单元提取的线条只包含水平线条和垂直线条
6.根据权利要求5的装置,将所提取的水平线条和垂直线条分别保存到水平线条集和 垂直线条集。
7.根据权利要求1的装置,所述线条提取单元还包括用于删除重复线条的重复线条删 除单元以及用于合并相连的线条的相连线条合并单元。
8.根据权利要求7的装置,所述重复线条删除单元判断两条相互平行的线条是否在相 互平行的第一方向上第一线条落入第二线条的区间内并且在与第一方向垂直的第二方向 上该两条线条之间的距离小于预定阈值,如果是则删除第一线条。
9.根据权利要求7的装置,所述相连线条合并单元判断相互平行的两条线条中一条线 条的起点是否和另一线条的终点相近,如果是则合并这两条线条为一条线条。
10.根据权利要求1的装置,其中所述表格提取单元提取的表格包括所有表格线相互 连通的普通表格以及只包含水平表格线的水平表格。
11.根据权利要求10的装置,所述表格提取单元通过以下步骤提取普通表格如果一个水平线条的终点和一个垂直线条的终点相近,根据包含该水平线条和垂直线 条的最小矩形创建一个候选普通表格。
12.根据权利要求10的装置,所述表格提取单元通过以下步骤提取水平表格对于起始点和终点均分别相近的所有水平线条,根据包含该所有水平线条的最小矩形 创建一个候选水平表格。
13.根据权利要求11的装置,所述表格提取单元还检测该候选普通表格所包含的线 条,如果一个线条和该候选表格的边界相交,并且该线条长度大于给定门限,则确定该线条 为合法表格线。
14.根据权利要求13的装置,所述表格提取单元还执行下述操作如果一个候选普通 表格中所包含的合法水平表格线数目小于3,或者包含的合法垂直表格线数目小于3,或者 合法水平表格线平均之间的距离小于第一预定门限,或者合法垂直表格线之间的距离小于 第二预定门限,则删除该候选普通表格。
15.根据权利要求12的装置,所述表格提取单元还执行下述操作如果一个候选水平 表格所包含的水平线条之间的平均距离小于第三预定门限,或者存在垂直线条,则删除该 候选水平表格。
16.根据权利要求11或12的装置,所述表格提取单元判断一个候选表格是否被包含在 另一个候选表格之中,如果是则删除所述被包含的候选表格。
17.—种从可移植电子文档中提取表格的方法,包含以下步骤解析可移植电子文档的内容以获取和表格相关的命令;通过处理这些命令来提取线条和线条位置;分析线条的位置关系来提取表格。
18.根据权利要求17的方法,所述获取和表格相关的命令的步骤包含以下步骤解析可移植电子文档格式,提取并解码每页的内容流;解析每页的内容流以提取和表格相关的命令。
19.根据权利要求18的方法,所述和表格相关的命令包括画线和长方形的命令。
20.根据权利要求17的方法,在所述提取线条和线条位置的步骤中所提取的线条不包 含长度小于预定值的线条和宽度大于预定值的线条。
21.根据权利要求17的方法,在所述提取线条和线条位置的步骤中所提取的线条只包 含水平线条和垂直线条。
22.根据权利要求21的方法,将所提取的水平线条和垂直线条分别保存到水平线条集 和垂直线条集。
23.根据权利要求17的方法,所述提取线条以及线条位置的步骤包括删除重复线条以 及合并相连的线条。
24.根据权利要求23的方法,所述删除重复线条的操作包括判断两条相互平行的线条是否在相互平行的第一方向上第一线条落入另第二线条的 区间内并且在与第一方向垂直的第二方向上该两条线条之间的距离小于预定阈值,如果是 则删除第一线条。
25.根据权利要求23的方法,所述合并相连的线条的操作包括如果相互平行的两条线条中一条线条的起点和另一线条的终点相近则合并这两条线 条为一条线条。
26.根据权利要求17的方法,其中所提取的表格包括所有表格线相互连通的普通表格 以及只包含水平表格线的水平表格。
27.根据权利要求26的方法,通过以下步骤提取普通表格如果一个水平线条的终点和一个垂直线条的终点相近,根据包含该水平线条和垂直线 条的最小矩形创建一个候选普通表格。
28.根据权利要求26的方法,通过以下步骤提取水平表格对于起始点和终点均分别相近的所有水平线条,根据包含该所有水平线条的最小矩形 创建一个候选水平表格。
29.根据权利要求27的方法,还包括检测该候选普通表格所包含的线条,如果一个线 条和该候选表格的边界相交,并且该线条长度大于给定门限,则确定该线条为合法表格线。
30.根据权利要求29的方法,还包括如果一个候选普通表格中所包含的合法水平表 格线数目小于3,或者包含的合法垂直表格线数目小于3,或者相邻水平表格线之间的距离 的平均值大于第一预定门限,或者相邻垂直表格线之间的距离的平均值大于第二预定门 限,则删除该候选普通表格。
31.根据权利要求28的方法,如果一个候选水平表格所包含的水平线条之间的平均距 离小于第三预定门限,或者存在垂直线条,则删除该候选水平表格。
32.根据权利要求28或29的方法,还包括判断一个候选表格是否被包含在另一个候选 表格之中,如果是则删除所述被包含的候选表格。
全文摘要
提出了一种从可移植电子文档中提取表格的装置和方法。所述提取表格的装置包括命令获取单元,用于解析可移植电子文档的内容以获取和表格相关的命令;线条提取单元,用于通过处理这些命令来提取线条和线条位置;表格提取单元,用于分析线条的位置关系来提取表格。利用本发明的装置和方法,可以自动地从可移植电子文档中提取表格。
文档编号G06F17/24GK101833546SQ20091012666
公开日2010年9月15日 申请日期2009年3月10日 优先权日2009年3月10日
发明者井上浩一, 杜成, 长谷川史裕 申请人:株式会社理光
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1