表格信息的提取方法、装置、设备及存储介质
技术领域
本申请涉及计算机
技术领域
,特别涉及一种表格信息的提取方法、装置、设备及存储介质。背景技术
时下,对账单、送货单、财报等各种表格经常会携带在便携式文档格式(PortableDocument Format,PDF)文件或图片中,在网络中传播。然而,PDF文件或图像的存储结构中本身并不包括表格这种对象,因此,如何从PDF文件或图片中提取表格信息成为亟需解决的问题。
相关技术在提取表格的过程中,计算设备首先会解析PDF文件,从PDF文件的存储结构中得到每个表格线的坐标。之后,计算设备根据每个表格线的坐标,从PDF文件中定位到每个单元格,从而提取出表格信息。
采用上述方法时,要求待提取的表格具有完整的表格线,一旦表格本身没有表格线或者表格本身的表格线不完整,则无法采用上述方法提取出表格信息。
发明内容
本申请实施例提供了一种表格信息的提取方法、装置、设备及存储介质,能够从PDF文件中自动化提取无表格线的表格。所述技术方案如下:
第一方面,提供了一种表格信息的提取方法,在该方法中,获取图像和文本;根据所述图像在水平方向上的灰度分布,在所述图像中确定垂直分割线,所述垂直分割线在所述图像中所处位置的所述灰度分布满足条件;根据所述文本中换行文本的开始行,在所述图像中确定水平分割线,所述水平分割线在所述图像中所处位置在所述开始行之上;根据所述垂直分割线和所述水平分割线,对所述图像进行分割,得到至少一个单元格区域;根据所述至少一个单元格区域包括的信息,获取表格信息。
通过该方法,利用图像处理技术,在图像中定位到垂直分割线,使得设备能够自动化地找到垂直分割线的位置。并且,利用NLP技术,在图像中定位到水平分割线,使得设备能够自动化地找到水平分割线的位置。利用垂直分割线和水平分割线对图像进行分割,从而准确地分割出单元格区域,进而根据单元格区域提取图像包含的表格信息。通过该方法,即使PDF文件或图片等源文件包含的表格是不规范的表格,例如表格无表格线、表格线不完整或单元格出现换行文本,也能通过该方法准确提取出表格信息,并且无需用户人工操作,做到全程自动化,因此极大地提高了表格信息的提取效率。
可选地,所述根据所述图像在水平方向上的灰度分布,在所述图像中确定垂直分割线,包括:对所述图像中每个像素点的灰度值进行统计,得到统计结果,所述统计结果用于指示所述图像在水平方向上的灰度分布;根据所述统计结果,在所述图像中确定文本边界,所述文本边界在所述图像中所处位置的所述灰度分布的变化率大于第一阈值;根据所述文本边界,在所述图像中确定垂直分割线,所述垂直分割线在所述图像中位于相邻的文本边界之间。
通过这种可选方式,一方面,即使表格的列与列之间没有边框线,由于统计出了水平方向上的灰度分布,根据灰度分布的变化率,检测出了列的文本边界,从而更精确地定位到垂直分割线,利用垂直分割线分割后,能够将表格的每一列准确提取出来。另一方面,无需用户执行输入列边界位置的繁琐操作,而是自动化确定垂直分割线的位置,因此极大提高了表格信息提取的效率。
可选地,所述对所述图像中每个像素点的灰度值进行统计,得到统计结果,包括:对所述图像中每个像素点的灰度值进行二值化,得到灰度数据,所述灰度数据包括所述图像中每个像素点的二值化灰度值;
对所述灰度数据中的二值化灰度值按列求和,得到所述统计结果。
可选地,所述根据所述统计结果,在所述图像中确定文本边界,包括:
根据所述统计结果,获取差值数据,所述差值数据用于指示所述图像在水平方向上相邻位置之间的灰度值差距;
根据所述差值数据,在所述图像中确定文本边界,所述文本边界在所述图像中所处位置与相邻位置之间的灰度值差距大于所述第一阈值。
可选地,所述文本包括至少一个行文本,所述根据所述文本中换行文本的开始行,在所述图像中确定水平分割线之前,所述方法还包括:
分别获取所述至少一个行文本与首行文本之间的语义相似度,所述首行文本为表头文本之下的第一个行文本;
根据每个行文本对应的语义相似度,在所述至少一个行文本中确定所述换行文本的开始行,所述开始行与所述首行文本之间的语义相似度大于第二阈值。
通过这种可选方式,一方面,即使表格的行与行之间没有边框线,另外每个单元格中出现换行的文本,由于根据换行文本的开始行与首行文本之间的语义相似度,精确地识别出了换行文本的开始行,根据换行文本的开始行,更精确地定位到水平分割线,利用水平分割线分割后,能够将表格的每一行准确提取出来。另一方面,无需用户执行输入分割打点位置的繁琐操作,而是自动化确定水平分割线的位置,因此极大提高了表格信息提取的效率。
可选地,所述分别获取所述至少一个行文本与首行文本之间的语义相似度,包括:
分别对所述至少一个行文本进行实体识别,得到每个行文本的实体信息,所述实体信息包括一个行文本中每个词对应的实体标签;
分别对所述至少一个行文本的实体信息进行特征提取,得到每个行文本的特征向量;
根据每个行文本与所述首行文本之间的特征向量相似度,获取每个行文本与所述首行文本之间的语义相似度。
可选地,所述分别对所述至少一个行文本的实体信息进行特征提取,得到每个行文本的特征向量,包括:
根据每个行文本的实体信息,在所述至少一个行文本的实体信息中确定高频行,所述高频行是一个行文本的实体信息,所述高频行在所述至少一个行文本的实体信息中出现的次数最多;
分别对所述至少一个行文本的实体信息与所述高频行进行比较,得到每个行文本的特征向量的第一部分,所述第一部分用于指示对应行文本的实体信息与所述高频行之间的一致程度。
可选地,所述分别对所述至少一个行文本的实体信息进行特征提取,得到每个行文本的特征向量,包括:
根据每个行文本的实体信息,在所述至少一个行文本的实体信息中确定高频词,所述高频词为实体标签,所述高频词的词频在所述至少一个行文本的实体信息的实体标签中排在前预设位数;
分别对所述至少一个行文本的实体信息中的实体标签与所述高频词进行比较,得到每个行文本的特征向量的第二部分,所述第二部分用于指示对应行文本的实体信息中的每个实体标签是否为所述高频词。
可选地,所述根据所述垂直分割线和所述水平分割线,对所述图像进行分割之前,所述方法还包括:
识别所述文本中的表头文本;
识别所述文本中的表尾文本;
根据所述表头文本和所述表尾文本,在所述图像中确定表格区域;
所述根据所述垂直分割线和所述水平分割线,对所述图像进行分割,包括:
根据所述垂直分割线和所述水平分割线,对所述图像中的所述表格区域进行分割。
可选地,所述识别所述文本中的表头文本,包括:
按照从上到下的顺序,在所述文本中使用关键词检索;
将第一个与所述关键词匹配的行文本作为所述表头文本。
可选地,所述识别所述文本中的表尾文本,包括:
按照从下到上的顺序,在所述文本中使用正则表达式检索;
将第一个与所述正则表达式匹配的行文本作为所述表尾文本。
可选地,所述获取图像和文本,包括以下至少一项:
将便携式文档格式PDF文件的页面转换为所述图像,提取所述PDF文件的所述页中存储的文本;或,
获取图像,对所述图像进行文字识别,得到所述文本。
第二方面,提供了一种表格信息的提取装置,该表格信息的提取装置具有实现上述第一方面或第一方面任一种可选方式中提取表格信息的功能。该表格信息的提取装置包括至少一个模块,至少一个模块用于实现上述第一方面或第一方面任一种可选方式所提供的表格信息的提取方法。第二方面提供的表格信息的提取装置的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第三方面,提供了一种计算设备,该计算设备包括处理器,该处理器用于执行指令,使得该计算设备执行上述第一方面或第一方面任一种可选方式所提供的表格信息的提取方法。第三方面提供的计算设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器读取以使计算设备执行上述第一方面或第一方面任一种可选方式所提供的表格信息的提取方法。
第五方面,提供了一种计算机程序产品,当该计算机程序产品在计算设备上运行时,使得计算设备执行上述第一方面或第一方面任一种可选方式所提供的表格信息的提取方法。
第六方面,提供了一种芯片,当该芯片在计算设备上运行时,使得计算设备执行上述第一方面或第一方面任一种可选方式所提供的表格信息的提取方法。
附图说明
图1是本申请实施例提供的一种有完整表格线的表格的示意图;
图2是本申请实施例提供的一种无表格线的表格的示意图;
图3是本申请实施例提供的一种系统架构100的示意图;
图4是本申请实施例提供的一种系统架构200的示意图;
图5是本申请实施例提供的一种表格信息的提取方法300的流程图;
图6是本申请实施例提供的一种垂直分割线定位的示意图;
图7是本申请实施例提供的一种垂直分割线定位的示意图;
图8是本申请实施例提供的一种水平分割线定位的示意图;
图9是本申请实施例提供的一种水平分割线定位的示意图;
图10是本申请实施例提供的一种水平分割线定位和图像分割的示意图;
图11是本申请实施例提供的一种表格信息的提取方法400的流程图;
图12是本申请实施例提供的一种表格信息的提取装置500的结构示意图;
图13是本申请实施例提供的一种计算设备600的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一阈值可以被称为第二阈值,并且类似地,第二阈值可以被称为第一阈值。第一阈值和第二阈值都可以是阈值,并且在某些情况下,可以是单独且不同的阈值。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
以下示例性介绍本申请的应用场景。
本申请实施例提供的表格信息的提取方法能够应用在便携式文档格式(PortableDocument Format,PDF)文件中提取表格信息的场景。例如,本申请实施例的表格信息的提取方法应用在PDF文件中提取银行水单的场景中。下面对应用场景进行简单的介绍。
非结构化文本信息提取技术通过算法、规则等自动的对海量文本数据进行挖掘,抽取出有用信息进行结构化的存储,能极大的提升人们获取信息的效率。PDF格式是一种常见的电子文档格式,主要用于文档展示和打印。PDF文件的存储结构中包括图像、线、框、字符四种对象,这些对象根据存储的横纵坐标在文档的指定位置显示。
PDF表格提取技术主要针对具有完整表格线的表格。完整表格线的表格例如附图1所示。针对这种具有完整表格线的表格,可以通过解析PDF存储结构中的线条对象推测出表格,或者通过图像处理技术定位出表格线和表格区域。
但是,时下的方案对无表格线或者表格线不完整的表格提取准确率不够高,特别是表格中的单元格的内容有换行的场景,目前还是无法识别的。具体地,对于PDF文件中无表格线的表格而言,提取表格信息存在很大的技术难点。这是由于,PDF文件中的数据存储是非结构化的,对文本数据来说,PDF文件只存储字符和字符的位置,PDF文件并不存储词和句子,也没有表格的概念。人眼看起来的表格在其底层存储中只是一些字符加线条组合而已。由于没有表格线,计算机很难确定哪一块区域是表格内容,在哪里横向切分和竖向切分。并且,当没有表格线且内容换行时,换行的内容会对单元格内容提取造成干扰,容易遗漏信息。
有鉴于此,本申请提出了一种能够解决无表格线、表格内文本换行的表格信息提取方法,针对的表格例如附图2所示。通过应用本申请实施例提供的方法,能够实现PDF文件中无表格线表格的垂直分割线的自动化识别,实现PDF文件中无表格线表格的垂直分割线多行换行文本自动化识别,即水平分割线识别,实现PDF中无表格线表格的全程自动化提取。特别地,对于对账单、送货单、财报等以表格结构为主的数据源,通过应用本申请提供的方法,能够有效的提升信息获取效率。
在下面的各个实施例中,将主要围绕这几点展开:
(一)如何实现PDF文件中无表格线表格的全程自动化提取。例如,基于图像处理技术和自然语言处理(Natural Language Processing,NLP)技术,实现全流程自动化的表格提取。
(二)如何实现PDF文件中无表格线表格的垂直分割线的自动化识别。例如,基于图像的灰度分布,提出了一种垂直分割线的定位方法。
(三)如何实现PDF文件中无表格线表格的水平分割线的自动化识别。例如,利用文本相似度算法,提出了一种表格中多行换行文本的识别方法,从而解决表格水平分割线的自动化定位。
为了便于理解,下面先对本申请实施例涉及的一些术语相关概念进行介绍。
实体识别:是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。
正则表达式:是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
灰度:用黑白来表示图像,不同亮度有不同灰度值,灰度值范围一般从0到255,白色为255,黑色为0,彩色图像的红绿蓝(Red Green Blue,RGB)三维数据可以通过公式转换成二维灰度数据。
下面介绍本申请实施例提供的系统架构。
参见附图3,本申请实施例提供了一种系统架构100。系统架构100是对下述方法300的硬件环境的举例说明。系统架构100包括:终端101和信息提取平台110。终端101通过无线网络或有线网络与信息提取平台110相连。
终端101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端101安装和运行有支持提取表格信息的应用程序。该应用程序可以是客户端应用,也可以是浏览器应用。例如,该应用程序可以是文字处理应用、社交应用、PDF应用等。示例性的,终端101是用户使用的终端,终端101中运行的应用程序内登录有用户账号。
信息提取平台110可以是一台计算设备、多台计算设备、云计算平台和虚拟化中心中的至少一种。信息提取平台110用于为支持表格信息的提取功能的应用程序提供后台服务。可选地,在表格信息的提取的过程中,信息提取平台110和终端101可以协同工作。比如说,终端101用于提供源文件(如PDF文件或图像),信息提取平台110用于从源文件提取表格信息,终端101用于显示表格信息。
可选地,信息提取平台110包括:计算设备1101和数据库1102。计算设备1101用于提供表格信息的提取有关的后台服务,例如接收终端101发送的源文件,将提取的表格信息发送给终端101。数据库1102可以用于缓存大量的表格信息或提取表格信息所需的配置,当需要时,数据库1102可以将存储的数据提供给计算设备1101。
终端101可以泛指多个终端中的一个,或者多个终端组成的集合;计算设备1101可以泛指多个计算设备中的一个,或者多个计算设备组成的集合;数据库1102可以泛指多个数据库中的一个,或者多个数据库组成的集合。应理解,如果终端101、计算设备1101或者数据库1102是多台设备的集合,虽然图3未示出,此时上述系统100还包括其他终端、其他计算设备或其他数据库。本实施例对系统100中每种设备的数量和设备类型不做限定。
参见附图4,本实施例提供了另一种系统架构200。系统架构200是对下述方法300的软件架构的举例说明。系统架构200包括多个功能模块,每个功能模块是软件模块。可选地,每个功能模块使用Python语言实现。系统架构200包括:PDF文件201,图像提取模块202,文本提取模块203,垂直分割线定位模块204,表格区域定位模块205,水平分割线定位模块206,表格提取模块207。各模块的功能如下:
PDF文件201:含有无表格线表格的PDF格式的文件。
图像提取模块202,用于将PDF文件的页面转化成图像。
文本提取模块203,用于提取PDF文件中存储结构中的文本,主要是字符对象数据。
垂直分割线定位模块204,用于根据图像在水平方向上的灰度分布,判断表格的垂直分割线位置。
表格区域定位模块205,用于利用信息检索技术找出表格的首行文本和尾行文本,定位出表格区域。
水平分割线定位模块206,用于利用文本相似度算法,识别表格区域内的多行换行文本,然后找到水平分割线位置。
表格提取模块207,用于利用垂直分割线和水平分割线切分后,得到完整的表格结构数据,提取出各单元格内的文本数据。
以上介绍了系统架构100和系统架构200,以下通过实施例一,示例性介绍基于上文提供的系统架构提取表格信息的方法流程。
实施例一
参见图5,图5是本申请实施例提供的一种表格信息的提取方法300的流程图。方法300包括S301至S308。
S301、计算设备获取源文件。
源文件的格式包括多种情况。可选地,源文件是PDF文件,例如,源文件是PDF格式的表格。比如说,源文件是PDF格式的银行对账单。可选地,源文件是图像。比如说,源文件是表格截图。源文件包括待提取的表格。其中,源文件包含的表格可以是不规范的表格。不规范的表格包括无表格线的表格、表格线不完整的表格、表格内文本换行的表格中的至少一种。例如,参见图2,图2示出了PDF文件的页面,该PDF文件包括无表格线、表格内文本换行的不规范的表格,在本实施例中,会介绍如何从PDF文件中提取这种不规范的表格的表格信息。
S302、计算设备根据源文件,获取图像和文本。
计算设备从源文件中提取出图像和文本,以便利用图像和文本来提取表格信息。
针对不同类型的源文件,提取图像和文本的实现方式可能存在差异,以下通过情况一和情况二举例说明。
情况一、源文件为PDF文件。
如何从PDF文件中提取图像包括多种实现方式。例如,计算设备将PDF文件的页面转换为图像,从而实现图像的提取。可选地,计算设备将PDF文件的每一个页面转换为一个图像。比如说,如果PDF文件包括N个页面,可以将N个页面转换为N个图像。或者,计算设备确定表格所在的页面,将表格所在的页面转换为图像。可选地,转换出的图像的尺寸和PDF文件页面的尺寸是相同的。例如,对于PDF文件的每一个页面,计算设备将其转化成同等尺寸的一张图像。或者,转换出的图像的尺寸小于PDF文件页面的尺寸。其中,N为正整数。
如何从PDF文件中提取文本包括多种实现方式。例如,计算设备提取PDF文件的页中存储的文本。具体地,计算设备读取PDF文件,解析PDF文件底层的存储结构,从存储结构中获取字符对象数据C。其中,字符对象数据C中包含字符和该字符在PDF页面中的坐标。
情况二、源文件为图像。
计算设备在获取图像后,计算设备对图像进行文字识别,得到文本。其中,文字识别例如是OCR(Optical Character Recognition,光学字符识别)的方式。
S303、计算设备根据图像在水平方向上的灰度分布,在图像中确定垂直分割线。
不规范的表格中经常出现列没有边框线或列缺失部分边框线的情况,例如请参考图2,图2所示的表格就没有用于隔开列与列之间的边框线。而在S303中,即使表格缺失了列的边框线,通过利用图像处理技术,能够自动定位垂直分割线,从而利用垂直分割线有效提取出这种缺失列边框线的表格的表格信息。
如何利用图像处理技术定位垂直分割线包括多种实现方式。例如,计算设备确定图像中在水平方向上的每个位置的灰度分布,找到灰度分布满足条件的位置,作为垂直分割线在图像中所处位置,从而自动搜索出垂直分割线。以下通过S3031至S3034进行具体地举例说明。
S3031、计算设备读取图像中每个像素点的灰度值。
图像中像素点的灰度值可称为灰度图像数据。可选地,图像中每个像素点的灰度值通过灰度矩阵的形式在计算设备中存储。灰度矩阵的每个元素为一个像素点的灰度值。在下面的一些例子中,将灰度矩阵记为灰度矩阵G。
S3032、计算设备对图像中每个像素点的灰度值进行统计,得到统计结果。
其中,统计结果用于指示图像在水平方向上的灰度分布。例如,统计结果包括多个数值,每个数值对应于图像中的一个垂直线,不同数值的变化规律反映了图像在水平方向上灰度值的分布情况。其中,统计结果中的数值的大小表示该垂直线上各个像素点整体的灰度分布,统计结果中的数值越小,表示这条垂直线上的空白越多,统计结果中的数值越大,表示这条垂直线上的文本字符或线条越多。例如,请参考图6,图6是本申请实施例提供的一种指示水平方向上的灰度分布的统计结果的示意图,图6以曲线的形式展示了统计结果,该曲线的波动情况反映了图像在水平方向上灰度值的分布情况。对比图6上方的图像和图6下方的曲线可见,曲线中的波峰对应于表格中出现文本的位置,曲线中波谷对应于表格中的不同列文本之间的空白间隔,曲线中曲线的变化率很大的位置,即从波峰突变到波谷的位置或从波谷突变到波峰的位置刚好是列边界。
如何利用灰度值统计灰度分布包括多种实现方式,以下通过步骤a至步骤b举例说明。
步骤a、计算设备对图像中每个像素点的灰度值进行二值化,得到灰度数据。
其中,二值化是指将灰度值从0到255的取值范围映射为两种取值。灰度数据包括图像中每个像素点的二值化灰度值,二值化灰度值例如是0或1。
如何进行二值化包括多种实现方式。可选地,计算设备以反转的方式进行二值化,使得图像中空白位置的灰度值转换为0,而图像中出现文本的位置的灰度值为1。具体地,对于图像中的一个像素点而言,计算设备判断该像素点的灰度值是否大于灰度值阈值,如果像素点的灰度值大于灰度值阈值,则将0作为该像素点的二值化灰度值,如果像素点的灰度值小于或等于灰度值阈值,则将1作为该像素点的二值化灰度值。通过这种方式,灰度数据是灰度值经过反转的方式二值化得到的。以灰度值阈值为254为例,计算设备读取灰度矩阵G,将灰度矩阵G中大于254的灰度值转换为0,将灰度矩阵G中小于或等于254的灰度值转换为1,得到反转的0-1二值化灰度数据。在下面的一些例子中,将反转的0-1二值化灰度数据记为灰度数据G’。
步骤b、计算设备对灰度数据中的二值化灰度值按列求和,得到统计结果。
例如,计算设备将图像中每条垂直线上的二值化灰度值相加,使得图像中同一垂直线上各个像素点的二值化灰度值映射为一个和值,将多条垂直线对应的和值组成统计结果,从而实现水平方向上灰度分布的统计。换句话说,计算设备用灰度矩阵的列之和作为水平方向的灰度分布统计。例如,计算设备对灰度数据G’中每一列的二值化灰度值相加,得到统计结果G’x。
S3033、计算设备根据统计结果,在图像中确定文本边界。
由于统计结果指明了图像在水平方向的灰度分布,计算设备可以利用水平方向上的灰度分布,统计图像中每个位置的灰度分布的变化率。计算设备可以对图像中每个位置的灰度分布的变化率与第一阈值进行比较,在图像中确定变化率大于第一阈值的位置,作为图像中文本边界在图像中所处位置。其中,文本边界例如是列的文本边界,即一个列文本的左右边界。
如何利用灰度分布的变化率检测文本边界包括多种实现方式。以下通过步骤a至步骤b举例说明。
步骤a、计算设备根据统计结果,获取差值数据,差值数据用于指示图像在水平方向上相邻位置之间的灰度值差距。
可选地,计算设备通过相邻位置之间的灰度值差距,计算灰度分布的变化率。其中,该灰度值差距例如是不同灰度值之间的差值的绝对值。例如,计算设备对水平方向上相邻位置的灰度值两两相减,并取差值的绝对值,得到差值数据。例如,计算设备统计水平方向上的灰度分布,得到灰度数据G’x后,计算设备可以将灰度数据G’x中相邻值相减,并取差值的绝对值,得到差值数据D。
步骤b、计算设备根据差值数据,在图像中确定文本边界。
可选地,计算设备利用阈值筛选出文本边界的位置。例如,计算设备根据差值数据,判断图像中每个位置与相邻位置之间的灰度值差距是否大于第一阈值,若图像中的位置与相邻位置之间的灰度值差距大于第一阈值,将该位置作为文本边界的位置。以第一阈值记为阈值d’为例,计算设备从差值数据D中筛选出大于阈值d’的值,将值所在的横坐标作为文本边界的位置。其中,阈值d’可以是根据不同文件需要设置的参数。
应理解,上述是以确定一个文本边界的流程为例进行说明,表格可以包括多列文本,图像中会包括多个文本边界,同理地,计算设备可以根据差值数据,在图像中确定多个文本边界中的每个文本边界。例如,可以从差值数据D中筛选出多个值,将这些值所在的横坐标X’=x1,x2,…,xi,…中的每一个作为一个文本边界的位置。其中,xi表示一个文本边界的位置。
S3034、计算设备根据文本边界,在图像中确定垂直分割线,垂直分割线在图像中位于相邻的文本边界之间。
计算设备可以从相邻的文本边界之间取某个位置作为垂直分割线的位置。可选地,计算设备确定相邻的文本边界的中间位置,作为垂直分割线的位置,换句话说,计算设备用一对文本边界的中间值作为垂直分割线的位置。例如,计算设备得到多个文本边界的位置X’=x1,x2,…,xi,…后,可以取作为最终的垂直分割线的位置。在下面的一些例子中,将垂直分割线的位置记为位置X。
示例性地,参见图6,图6示出了是垂直分割线的定位示意图,图6上半图中的垂直虚线即是给出的垂直分割线位置,下半图是PDF图像的水平方向灰度分布的统计结果,下半图中的垂直虚线即是阈值筛选后的列文本边界。每个垂直分割线位于两条列文本边界中间。
综合S303涉及的各个步骤,请参考图7,图7示出了垂直分割线定位模块的架构图,垂直分割线定位模块的输入参数包括图像,垂直分割线定位子模块用于执行灰度分布统计、相邻灰度差值计算、阈值筛选、计算垂直分割线位置等步骤。垂直分割线定位子模块的输出参数包括垂直分割线的位置。其中,灰度分布统计的步骤具体包括读取图像的灰度值、灰度二值化并反转、水平方向的灰度分布等步骤。
计算设备通过执行S303,一方面,即使表格的列与列之间没有边框线,由于统计出了水平方向上的灰度分布,根据灰度分布的变化率,检测出了列的文本边界,从而更精确地定位到垂直分割线,利用垂直分割线分割后,能够将表格的每一列准确提取出来。另一方面,无需用户执行输入列边界位置的繁琐操作,而是自动化确定垂直分割线的位置,因此极大提高了表格信息提取的效率。
S304、计算设备在图像中确定表格区域。
计算设备可以自动的定位表格区域,以下通过步骤I至步骤III对如何定位表格区域举例说明。
步骤I、计算设备根据文本以及垂直分割线,从文本中提取至少一个行文本
以PDF文件为例,计算设备根据垂直分割线,对PDF文件的页面按列分割,以每行为单位,对PDF文件的页面按行分割,从而切分整个页面。例如,计算设备将字符对象数据C按照垂直分割线的位置X进行列切分,得到切分后的行文本S’,行文本S’中的每个行文本si’,si’是用预设符号填充在垂直切分线位置的一行文本。其中,预设符号用于标识垂直分割线所在位置,预设符号例如是分隔符。
步骤II、计算设备识别至少一个行文本中的表头文本和表尾文本。
表头文本例如是表格的第一个行文本。表尾文本例如是表格的最后一个行文本,表尾文本也称尾行文本。
如何识别表头文本包括多种实现方式。例如,计算设备利用信息检索技术,在至少一个行文本中识别表头文本。在一种可能的实现中,计算设备按照从上到下的顺序,在文本中使用关键词检索;计算设备将第一个与关键词匹配的行文本作为表头文本。例如,计算设备得到行文本S’后,利用关键词从上往下对S’中每个行文本进行检索,将第一个匹配到的行文本作为待提取表格的表头文本。
其中,关键词可以是表头关键词。比如说,关键词包括实体标签。例如,关键词包括日期(date),值(Value),交易记录详情(Transaction detail),金额(Amount)等。如何获取关键词包括多种实现方式。可选地,计算设备预先获取样本表格的表头,对样本表格的表头进行统计,得到统计结果。计算设备根据统计结果确定关键词。例如,提取样本表格的表头中的每个词,将每个词转换为对应的实体标签,对得到的实体标签进行聚类,根据聚类结果获取关键词,通过这种方式,利用聚类算法自动化地确定关键词,从而免去人工输入关键词的繁琐操作,提高了定位表格区域的效率。可选地,关键词是预先配置的,计算设备可以从配置信息中获取关键词。可选地,可以为不同的文件设置不同的关键词。
如何识别表尾文本包括多种实现方式。例如,计算设备利用信息检索技术和正则表达式,在至少一个行文本中识别表尾文本。在一种可能的实现中,计算设备按照从下到上的顺序,在文本中使用正则表达式检索;将第一个与正则表达式匹配的行文本作为表尾文本。例如,计算设备得到行文本S’后,利用正则表达式从下往上对S’中每行文本进行检索,将第一个匹配到的行文本作为待提取表格的表尾文本。
其中,正则表达式例如是尾行正则表达式。可选地,计算设备预先获取样本表格的表头,对样本表格的表头进行统计,得到统计结果。计算设备根据统计结果确定正则表达式。例如,提取样本表格的表头中的每个词,将每个词转换为对应的实体标签,对得到的实体标签进行聚类,根据聚类结果获取正则表达式,通过这种方式,利用聚类算法自动化地确定正则表达式,从而免去人工输入正则表达式的繁琐操作,提高了定位表格区域的效率。可选地,正则表达式是预先配置的,计算设备可以从配置信息中获取正则表达式。可选地,可以为不同的文件设置不同的正则表达式。
步骤III、计算设备根据表头文本和表尾文本,在图像中确定表格区域;
计算设备可以筛选出表头文本和表尾文本中间的所有行文本,得到表格区域中的行文本S。例如,请参考图8,黑框内的两行分别是匹配到的表头文本和表尾文本,从而得到上下两条水平虚线,定位出表格区域。
计算设备通过执行S303,能够自动化地定位出表格区域,免去人工输入表格区域位置的步骤,从而提高效率。
S305、计算设备识别文本中换行文本的开始行。
不规范的表格中经常出现行没有边框线或行缺失部分边框线的情况,例如请参考图2,图2所示的表格就没有用于隔开行与行之间的边框线。而在S305中,即使表格缺失了行的边框线,通过利用NLP技术,能够自动的识别出换行文本的开始行,从而利用开始行的位置自动定位水平分割线,从而利用水平分割线有效提取出这种缺失行边框线的表格的表格信息。
其中,换行文本包括至少一个行文本,例如,换行文本为多行换行文本,多行换行文本包括多个行文本。换行文本例如是语义相似而被切分至不同行的文本。换行文本例如是句子。如何利用NLP识别换行文本的开始行包括多种实现方式,例如,计算设备可以利用行文本相似度计算,识别出多行换行文本的开始行,以下通过S3051至S3053对如何识别出换行文本的开始行举例说明。
S3051、计算设备获取至少一个行文本。
例如,计算设备根据垂直分割线的位置、表头文本的位置和表尾文本的位置,确定表格区域包括的至少一个行文本。
S3052、计算设备分别获取至少一个行文本与首行文本之间的语义相似度。
首行文本为表头文本之下的第一个行文本。例如,计算设备得到表格区域行文本S后,将行文本S中的第一行表头暂时去除,去除表头后的下一行作为首行文本,以便利用首行文本执行后续操作。
如何计算行文本与首行文本之间的语义相似度包括多种实现方式,以下通过步骤A至步骤C举例说明。
步骤A、计算设备分别对至少一个行文本进行实体识别,得到每个行文本的实体信息。
其中,实体信息包括一个行文本中每个词对应的实体标签。实体标签用于标识实体的类型,例如,实体标签包括日期、金额、人名、地名、组织机构中的至少一项。
在一种可能的实现中,对于至少一个行文本中的任一个行文本,计算设备识别该行文本包含的词对应的实体,使用实体标签替换该行文本包含的词,得到实体信息。例如,对于表格区域的行文本S中的一个行文本si,计算设备识别行文本si中的实体,用实体标签替换行文本si中的原始词或词组,得到实体信息ti。
步骤B、计算设备分别对至少一个行文本的实体信息进行特征提取,得到每个行文本的特征向量。
计算设备可以通过进行特征提取,将实体信息转换为特征向量。例如,计算设备得到表格区域中的所有行文本T后,将T中的每个行文本ti转换为特征向量vi。
如何计算行向量包括多种实现方式。在一种可能的实现中,计算设备基于高频行和高频词计算特征向量。例如,特征向量包括两个部分,这两个部分的取值分别基于与高频行和高频词的比较结果确定。为了区分特征向量的不同部分,将基于与高频行的比较结果确定的部分称为第一部分,将基于与高频词的比较结果确定的部分称为第二部分。应理解,第一部分和第二部分仅用来区分不同的部分,并不代表顺序的先后。例如,第一部分是特征向量的第一个部分,第二部分是特征向量的第二个部分。例如,特征向量vi的长度为2N,特征向量vi由两部分组成,特征向量vi的前1~N位为这里所说的第一部分,前1~N位由行文本ti与高频行t’比较结果决定,特征向量vi的N+1位至2N位为这里所说的第二部分,N+1位至2N位由行文本ti中的每个词与高频词比较结果决定。又如,第一部分是特征向量的第二个部分,第二部分是特征向量的第一个部分。可选地,特征向量的两个部分是等长的,也就是说,第一部分的长度和第二部分的长度相等。可选地,特征向量的总长度可以由高频词个数确定。例如,特征向量的总长度为高频词个数的2倍,比如说,如果高频词的个数为N,则特征向量的长度设置为2N。
如何确定高频行包括多种实现方式。可选地,计算设备利用被实体标签替换后的行文本(即上文的实体信息),统计出高频行。具体地,计算设备根据每个行文本的实体信息,在至少一个行文本的实体信息中确定高频行。例如,计算设备统计所有行T=t1,t2,...,ti,...中相同行出现的次数,找到一个最高频行t’。
其中,高频行是一个行文本的实体信息,高频行在至少一个行文本的实体信息中出现的次数最多;例如,高频行t’是T=t1,t2,...,ti,...中出现次数最多的一个。
如何利用高频行计算特征向量包括多种实现方式。可选地,计算设备分别对至少一个行文本的实体信息与高频行进行比较,得到每个行文本的特征向量的第一部分.
第一部分用于指示对应行文本的实体信息与高频行之间的一致程度。例如,如果行文本的实体信息与高频行一致,则第一部分中的每位的取值为第一取值。如果行文本的实体信息与高频行不一致,则第一部分中的每位的取值为第二取值。或者,如果行文本的实体信息与高频行越一致(如向量相似度越大),则第一部分中的每位的取值越大。可选地,第一取值为1,第二取值为0。例如,计算设备得到行文本ti后,将行文本ti与高频行t’比较,如果行文本ti与高频行t’一致,将特征向量vi的第1位至N位均设为1。反之,如果行文本ti与高频行t’不一致,将特征向量vi的第1位至N位均设为0。在这种方式下,行文本的实体信息与高频行相比较得到的特征在特征向量中用N位相同的1或0表示。
如何确定高频词包括多种实现方式。可选地,计算设备利用被实体标签替换后的行文本(即上文的实体信息),统计出高频词。具体地,计算设备根据每个行文本的实体信息,在至少一个行文本的实体信息中确定高频词。其中,高频词为实体标签,高频词的词频在至少一个行文本的实体信息的实体标签中排在前预设位数。例如,计算设备统计T中所有词的词频,输出词频排在前N位的高频词W’=w1,w2,w3,...,wn。其中,N是对高频词数量(预设位数)的举例,N可以是根据不同文件需要设置的参数,例如N为4。
如何利用高频词计算特征向量包括多种实现方式。可选地,计算设备分别对至少一个行文本的实体信息中的实体标签与高频词进行比较,得到每个行文本的特征向量的第二部分。
第二部分用于指示对应行文本的实体信息中的每个实体标签是否为高频词。例如,对于行文本的实体信息中的一个实体标签而言,如果该实体标签时一个高频词,则第二部分中该实体标签对应的位的取值为第一取值,如果该实体标签不是高频词,则第二部分中该实体标签对应的位的取值为第二取值。例如,在计算特征向量N+1至2N位的过程中,计算设备判断所有高频词W’中每个高频词wi是否属于行文本ti中的所有词Wi中,如果高频词wi属于行文本ti中的词,则特征向量的一个位设置为1,如果高频词wi不属于行文本ti中的词,则特征向量的一个位设置为0。
步骤C、计算设备根据每个行文本与首行文本之间的特征向量相似度,获取每个行文本与首行文本之间的语义相似度。
计算设备得到行文本的特征向量和首行文本的特征向量后,可以通过计算两个特征向量之间的特征向量相似度,得到两个行文本之间的相似度。可选地,特征向量相似度为余弦相似度。可选地,计算设备将行文本与首行文本之间的特征向量相似度作为行文本与首行文本之间的语义相似度。例如,计算设备计算首行文本的特征向量v1与所有行的特征向量V=v1,v2,...,vi,...的余弦相似度S=s11,s12,...,s1i,...,将余弦相似度S=s11,s12,...,s1i,...作为首行文本与所有行文本之间的语义相似度。
S3053、计算设备根据每个行文本对应的语义相似度,在至少一个行文本中确定换行文本的开始行,开始行与首行文本之间的语义相似度大于第二阈值。
计算设备得到至少一个行文本中每个行文本的语义相似度后,可以判断每个行文本的语义相似度是否大于第二阈值,若任一行文本的语义相似度大于第二阈值,则将该行文本判别为换行文本的开始行,其中,第二阈值可以预先设置,第二阈值例如是根据不同文件需要设置的参数。例如,计算设备得到余弦相似度S=s11,s12,...,s1i,...后,从余弦相似度S中筛选出大于阈值s’的行,作为表格中多行换行文本的开始行。其中,阈值s’是对第二阈值的举例说明。
S306、计算设备根据文本中换行文本的开始行,在图像中确定水平分割线。
计算设备识别到换行文本的开始行后,可以将识别换行文本的开始行作为边界,得到水平分割线的位置。其中,水平分割线在图像中所处位置在换行文本的开始行之上,例如,水平分割线在图像中所处位置为换行文本的开始行的上边界。在下面的一些例子中,将水平分割线的位置记为位置Y。
综合上述S305和S306涉及的各个步骤,请参考图9,图9示出了水平分割线定位模块的架构图,水平分割线定位模块的输入参数包括表格区域中的文本,水平分割线定位模块包括行文本相似度计算模块、阈值筛选子模块、水平分割线位置分割子模块、换行单元格内容合并子模块等。
例如,参见图10,图10是水平分割线定位示意图,图10左半图中的垂直虚线是垂直分割线定位的结果,水平虚线是水平分割线定位的结果,通过箭头标注的行是阈值筛选出的多行换行文本开始行。
通过执行S305和S306,一方面,即使表格的行与行之间没有边框线,另外每个单元格中出现换行的文本,由于根据换行文本的开始行与首行文本之间的语义相似度,精确地识别出了换行文本的开始行,根据换行文本的开始行,更精确地定位到水平分割线,利用水平分割线分割后,能够将表格的每一行准确提取出来。另一方面,无需用户执行输入分割打点位置的繁琐操作,而是自动化确定水平分割线的位置,因此极大提高了表格信息提取的效率。
S307、计算设备根据垂直分割线和水平分割线,对图像进行分割,得到表格的至少一个单元格区域。
计算设备根据垂直分割线,对图像进行竖直切分,并根据水平分割线,对图像进行水平切分,从而将图像切分为至少一个单元格区域。其中,计算设备可以利用S304得到的表格区域,对表格区域进行分割。
例如,计算设备利用S303中得到的垂直分割线的位置X、上述S306中得到的水平分割线的位置Y分割出完整表格,合并每个单元格内的多行换行文本。参见图10,图10是水平分割线定位示意图,图10中的右半图是经过水平分割线分割和单元格内容合并后得到的最终完整表格结构。
S308、计算设备根据至少一个单元格区域包括的信息,获取表格信息。
计算设备可以将每个单元格区域包括的信息作为表格中一个单元格的内容。其中,单元格区域包括的信息例如是图像在单元格区域中的文本。此外,如果单元格区域中的信息为多行换行文本,计算设备对多行换行文本进行合并,将合并后的内容作为单元格的内容。如此,计算设备通过利用分割线分割和换行文本合并,得到了规范表格。可选地,计算设备将规范表格输出到电子表格软件(如Excel)中保存。例如,请参考下表1,表1是对表格信息的举例说明。通过执行本实施例,可以从图2中提取出表1所示的表格信息。
表1
综合上述的各个步骤,参考图11,图11是本申请实施例提供的一种从PDF文件中提取表格信息的方法400的流程图,方法400例如包括以下S401至S413。
S401、读取PDF文件的页面中每个像素点的灰度值。
S402、将灰度值二值化并反转,得到0-1的二值化数据。
S403、对图像在水平方向上的灰度进行统计。
S404、计算相邻灰度差值。
S404、通过阈值筛选灰度差值,得到列的文本边界。
S405、计算相邻两个列文本边界的中间值,得到垂直分割线的位置。
S406、利用信息检索和正则表达式,搜索表格首尾行,定位出表格文本区域。
S407、对每行文本进行实体识别,并用实体标签替换文本中的词。
S408、统计行频率,得到1个高频行。
S409、高频词统计,得到N个高频词。
S410、将每行文本转换为特征向量。
S411、计算首行文本的向量与每一行文本的向量的余弦相似度。
S412、通过阈值筛选余弦相似度,得到表格多行换行文本的开始行。
S413、根据水平分割线和垂直分割线进行分割,并合并单元格内换行文本,得到最终完整表格。
应理解,本实施例仅是以单台计算设备执行上述S301至S308为例进行说明,在一些实施例中,上述S301至S308可以由多台设备协作执行。可选地,方法300由如系统架构100中的信息提取平台110执行,方法300中的源文件可以是如数据库1102中存储的PDF文件,可选的,方法300的S301和S302可以在计算设备1101中执行,也可以在计算设备1101之前由其他功能模块预先执行,即先对从数据库1102中接收或者获取到的源文件进行预处理,如S302的图像提取过程和文本提取过程,得到图像和文本,作为计算设备1101的输入,并由计算设备1101执行S302至S308。可选地,方法300由终端101和信息提取平台110协同执行。在一些实施例中,信息提取平台110可以承担主要处理工作,终端101承担次要处理工作;在另一些实施例中,信息提取平台110承担次要处理工作,终端101承担主要处理工作;或者,信息提取平台110或终端101分别可以单独承担处理工作。
本实施例提供了一种能自动化地提取无表格线的表格信息的方法,利用图像处理技术,在图像中定位到垂直分割线,使得设备能够自动化地找到垂直分割线的位置。并且,利用NLP技术,在图像中定位到水平分割线,使得设备能够自动化地找到水平分割线的位置。利用垂直分割线和水平分割线对图像进行分割,从而准确地分割出单元格区域,进而根据单元格区域提取图像包含的表格信息。通过该方法,即使PDF文件或图片等源文件包含的表格是不规范的表格,例如表格无表格线、表格线不完整或单元格出现换行文本,也能通过该方法准确提取出表格信息,并且无需用户人工操作,做到全程自动化,因此极大地提高了表格信息的提取效率。
以上介绍了本申请实施例的表格信息的提取方法,以下介绍本申请实施例的表格信息的提取装置,应理解,该表格信息的提取装置其具有上述方法中计算设备的任意功能。
图12是本申请实施例提供的一种表格信息的提取装置500的结构示意图,如图12所示,该装置500包括:获取模块501,用于执行S301、S302;确定模块502,用于执行S303、S304、S305或S306;分割模块503,用于执行S307;获取模块501,还用于执行S308。
应理解,装置500对应于上述方法实施例中的计算设备,装置500中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的计算设备所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
应理解,装置500在提取表格信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置500的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述装置500与上述方法300或方法400属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
与本申请提供的方法实施例以及虚拟装置实施例相对应,本申请实施例还提供了一种计算设备600,下面对计算设备600的硬件结构进行介绍。
计算设备600对应于上述方法实施例中的计算设备,计算设备600中的各硬件、模块和上述其他操作和/或功能分别为了实现方法实施例中的计算设备所实施的各种步骤和方法,关于计算设备600如何提取表格信息的详细流程,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。其中,上文方法300或方法400的各步骤通过计算设备600处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
计算设备600对应于上述虚拟装置实施例中的装置500,装置500中的每个功能模块采用计算设备600的软件实现。换句话说,装置500包括的功能模块为计算设备600的处理器读取存储器中存储的程序代码后生成的。
参见图13,图13示出了本申请一个示例性实施例提供的计算设备600的结构示意图,例如,该计算设备600可以是主机、服务器或个人计算机等。该计算设备600可以由一般性的总线体系结构来实现。
计算设备600可以是方法实施例全部或部分描述的内容中涉及的任一设备。计算设备600包括至少一个处理器601、通信总线602、存储器603以及至少一个通信接口604。
处理器601可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线602用于在上述组件之间传送信息。通信总线602可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器603可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器603可以是独立存在,并通过通信总线602与处理器601相连接。存储器603也可以和处理器601集成在一起。
通信接口604使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口604包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,如图13中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算设备600可以包括多个处理器,如图13中所示的处理器601和处理器605。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算设备600还可以包括输出设备606和输入设备607。输出设备606和处理器601通信,可以以多种方式来显示信息。例如,输出设备606可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备607和处理器601通信,可以以多种方式接收用户的输入。例如,输入设备607可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器603用于存储执行本申请方案的程序代码610,处理器601可以执行存储器603中存储的程序代码610。也即是,计算设备600可以通过处理器601以及存储器603中的程序代码610,来实现方法实施例提供的表格信息的提取方法。
本申请实施例的计算设备600可对应于上述各个方法实施例中的计算设备,并且,该计算设备600中的处理器601、通信接口604等可以实现上述各个方法实施例中的计算设备所具有的功能和/或所实施的各种步骤和方法。为了简洁,在此不再赘述。
应理解,装置500中的获取模块501相当于计算设备600中的通信接口604;装置500中的中的确定模块502和分割模块503可以相当于计算设备600中的处理器601。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。