本发明涉及数据处理技术领域,具体而言,涉及一种表格处理方法和装置。
背景技术:
目前,很多文档中的表格为了美观,将表格线删去,这会在一定程度上会让人困惑,并对进一步的处理造成一定麻烦,特别是需要利用程序自动化处理的时候。因为无线表格本身格式的复杂多样性,目前市面上没有一款全自动且准确的无线表格划线工具。
技术实现要素:
为解决上述问题,本发明实施例的目的在于提供一种表格处理方法和装置。
第一方面,本发明实施例提供了一种表格处理方法,包括:
识别文档中的表格区域,并确定所述表格区域内的文字和所述文字的文字位置信息;
根据所述文字位置信息,将所述表格区域中位于一个单元格内的文字进行合并;
基于合并文字后的单元格,对所述表格区域进行划线操作。
第二方面,本发明实施例还提供了一种表格处理装置,包括:
第一处理模块,用于识别文档中的表格区域,并确定所述表格区域内的文字和所述文字的文字位置信息;
第二处理模块,用于根据所述文字位置信息,将所述表格区域中位于一个单元格内的文字进行合并;
第三处理模块,用于基于合并文字后的单元格,对所述表格区域进行划线操作。
本发明实施例上述第一方面至第二方面提供的方案中,通过确定文档中的文字的位置信息,并根据文字位置信息将表格区域中位于一个单元格内的文字进行合并,最后基于合并文字后的单元格,对所述表格区域进行划线操作,与相关技术中无法对文档中的文字进行划线操作相比,可以合并文字得到单元格,并根据得到的单元格对表格区域进行划线操作,从而可以自动对文档进行划线操作,且划线准确率高。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例1所提供的一种表格处理方法的流程图;
图2示出了本发明实施例2所提供的一种表格处理装置的结构示意图。
具体实施方式
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
目前,很多文档中的表格为了美观,将表格线删去,这会在一定程度上会让人困惑,并对进一步的处理造成一定麻烦,特别是需要利用程序自动化处理的时候。因为无线表格本身格式的复杂多样性,目前市面上没有一款全自动且准确的无线表格划线工具。基于此,本申请实施例提出一种表格处理方法和装置,可以合并文档中的文字得到单元格,并根据得到的单元格对表格区域进行划线操作,从而可以自动对文档进行划线操作。
本申请方案通过确定文档中的文字的位置信息,并根据文字位置信息将表格区域中位于一个单元格内的文字进行合并,最后基于合并文字后的单元格,对所述表格区域进行划线操作,从而可以自动对文档进行划线操作,且划线准确率高。
在以下各实施例中,设定基本文字区域和单元格的形状为矩形。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
实施例1
本实施例提出一种表格处理方法,执行主体是服务器。
所述服务器,可以采用现有技术中任何可以对文档进行划线操作的计算设备,这里不再一一赘述。
参见图1所示的表格处理方法的流程图,本实施例提出的表格处理方法,可以包括以下具体步骤:
步骤100、识别文档中的表格区域,并确定所述表格区域内的文字和所述文字的文字位置信息。
在上述步骤100中,可以使用现有的任何文字识别技术对文档中表格区域内的文字和文字位置进行识别,这里不再赘述。
所述文档,可以是但不限于:pdf文档、word文档、以及其他可以编辑文字的文档。
所述文字位置信息,包括但不限于:文字的中心点在文档中的横坐标和纵坐标。
除了上述文字位置信息之外,服务器还可以得到文字的尺寸。
步骤102、根据所述文字位置信息,将所述表格区域中位于一个单元格内的文字进行合并。
为了将所述表格区域中位于一个单元格内的文字进行合并,上述步骤102可以执行以下步骤(1)至步骤(3):
(1)根据所述文字位置信息,将所述表格区域中相邻的文字组合起来,形成多个基本文字区域;
(2)分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域属于一个单元格的概率;
(3)将计算得到的概率大于概率阈值的至少两个基本文字区域中的文字进行合并。
在上述步骤(1)中,服务器可以将所述表格区域中横坐标或者纵坐标相同的相邻文字组合起来,形成多个基本文字区域。
具体地,服务器可以将纵坐标相同且横坐标差距为单位文字尺寸倍数的两个文字确定为一个基本文字区域的文字(即位于同一行的文字);也可以将横坐标相同且纵坐标差距为单位文字尺寸倍数的两个文字确定为一个基本文字区域的文字(即位于同一列的文字)。
在得到表格区域中的多个基本文字区域后,由于基本文字区域通常为矩形,那么服务器就可以确定多个基本文字区域中各基本文字区域的端点坐标。
在上述步骤(2)中,为了计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域属于一个单元格的概率,上述步骤(2)可以执行以下具体步骤(21)至步骤(24):
(21)分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的欧氏距离的倒数;
(22)确定多个基本文字区域中各所述基本文字区域之间的顺序;
(23)基于各所述基本文字区域之间的顺序,分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的语义关系;
(24)根据计算得到的多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的欧氏距离倒数和语义关系,分别计算得到每个基本文字区域与其他基本文字区域属于一个单元格的概率。
在上述步骤(21)中,多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域,就是多个基本文字区域中任意两个基本文字区域。
为了计算两个基本文字区域之间的欧氏距离,可以先根据这两个基本文字区域的端点坐标,分别计算这两个基本文字区域的两条对角线,然后将该两个基本文字区域中两条对角线的交点分别确定为该两个基本文字区域的中点,最后,根据这两个基本文字区域的中点计算得到这两个基本文字区域的欧氏距离,再取计算得到的欧氏距离的倒数,就得到了这两个基本文字区域之间的欧氏距离的倒数。通过以上过程,就可以得到多个基本文字区域中任意两个基本文字区域之间的欧氏距离的倒数。
这里,上述根据这两个基本文字区域的端点坐标,分别计算这两个基本文字区域的两条对角线的过程、以及上述根据这两个基本文字区域的中点计算得到这两个基本文字区域的欧氏距离的过程是现有技术,这里不再赘述。
在上述步骤(22)中,为了确定多个基本文字区域中各所述基本文字区域之间的顺序,可以根据各基本文字区域的端点坐标,依据端点横坐标越小且端点纵坐标越大的原则,对各基本文字区域进行排序。当有至少两个基本文字区域的纵坐标一致时,按照所述至少两个基本文字区域中各基本文字区域横坐标由小到大的顺序对所述至少两个基本文字区域中的各基本文字区域进行排序;当有至少两个基本文字区域的横坐标一致时,按照所述至少两个基本文字区域中各基本文字区域纵坐标由大到小的顺序对所述至少两个基本文字区域中的各基本文字区域进行排序。
为了确定多个基本文字区域中任意两个基本文字区域的语义关系,上述步骤(23)可以执行以下步骤(231)至步骤(237):
(231)获取语料总体字符数量;
(232)基于各所述基本文字区域之间的顺序,确定出多个基本文字区域中需要确定语义关系的两个基本文字区域的先后顺序;
(233)统计两个基本文字区域中顺序靠前的基本文字区域中最后一个文字在所述语料中出现的第一次数;
(234)根据语料总体字符数量和第一次数,计算顺序靠前的基本文字区域中最后一个文字在所述语料中出现的第一概率值;
(235)统计两个基本文字区域中顺序靠前的基本文字区域中最后一个文字和顺序靠后的基本文字区域中第一个文字组成的词语在所述语料中出现的第二次数;
(236)根据计算得到的第一次数和第二次数,计算所述词语出现的第二概率值;
(237)基于计算得到的第一概率值和第二概率值,计算多个基本文字区域中所述两个基本文字区域的语义关系,从而得到多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的语义关系。
在上述步骤(231)中,服务器可以存储有语料和语料的属性信息。所述语料中有所有文字、以及所有文字组成的词语和短语。所述语料的属性信息,包括但不限于:语料总体字符数量和语料最近更新时间。
所述语料总体字符数量,是语料中有所有文字、以及所有文字组成的词语和短语的数量总和。
所以,服务器可以从服务器自身获取到语料总体字符数量。
在上述步骤(233)中,首选确定两个基本文字区域中顺序靠前的基本文字区域中最后一个文字是什么文字,然后以该文字作为检索条件,在语料中进行检索,从而确定出语料具有该文字的词语和短语,并统计确定出的词语和短语的数量,并将统计得到的数量作为两个基本文字区域中顺序靠前的基本文字区域中最后一个文字在所述语料中出现的第一次数。
在上述步骤(234)中,可以通过以下公式计算顺序靠前的基本文字区域中最后一个文字在所述语料中出现的第一概率值:
第一概率值=第一次数/语料总体字符数量。
在上述步骤(235)中,首选确定两个基本文字区域中顺序靠后的基本文字区域中第一个文字是什么文字,就可以和顺序靠前的基本文字区域中最后一个文字组成词语,然后以该词语作为检索条件,在语料中进行检索,从而确定出语料具有该词语的词语和短语,并统计确定出的词语和短语的数量,并将统计得到的数量作为两个基本文字区域中顺序靠前的基本文字区域中最后一个文字和顺序靠后的基本文字区域中第一个文字组成的词语在所述语料中出现的第二次数。
在上述步骤(236)中,可以通过以下公式计算所述词语出现的第二概率值:
第二概率值=第二次数/第一次数。
在上述步骤(237)中,可以通过以下公式计算多个基本文字区域中两个基本文字区域的语义关系:
p语义=第一概率值×第二概率值。
其中,p语义表示多个基本文字区域中两个基本文字区域的语义关系。
在通过上述步骤(23)计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的语义关系后,可以继续执行步骤(24),计算得到每个基本文字区域与其他基本文字区域属于一个单元格的概率。
为了计算得到每个基本文字区域与其他基本文字区域属于一个单元格的概率,上述步骤(24)可以通过以下公式对每个基本文字区域与其他基本文字区域属于一个单元格的概率进行计算:
p=a*p距离+b*p语义
其中,p表示每个基本文字区域与其他基本文字区域属于一个单元格的概率;p距离表示多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的欧氏距离的倒数;a和b表示权重值。
通过以上步骤(1)至步骤(3)描述的内容可以看出,通过确定基本文字区域之间的欧氏距离和基本文字区域之间的语义关系来对每个基本文字区域与其他基本文字区域是否属于一个单元格进行判断,能够准确的判断出属于同一单元格的基本文字区域,从而提高后续表格区域划线操作的准确性。
在通过上述步骤102将所述表格区域中位于一个单元格内的文字进行合并后,可以继续执行以下步骤104,对表格区域进行划线操作。
步骤104、基于合并文字后的单元格,对所述表格区域进行划线操作。
为了对所述表格区域进行划线操作,上述步骤104可以执行以下步骤(1)至步骤(9):
(1)获取合并文字后的单元格的边界位置信息;
(2)基于单元格在出,确定出位于同一行的单元格;
(3)将同一行的单元格中,与其他行的至少两个单元格重叠的跨列单元格去掉;
(4)基于单元格在水平方向的边界位置信息,从去掉跨行单元格的所述同一行的剩余的单元格中确定出单元格之间的空白区域;
(5)在所述空白区域进行表格区域列线的划线操作;
(6)基于单元格在垂直方向的边界位置信息,确定出位于同一列的单元格;
(7)将同一列的单元格中,与其他列的至少两个单元格重叠的跨行单元格去掉;
(8)基于单元格在垂直方向的边界位置信息,从去掉跨列单元格的所述同一列的剩余的单元格中确定出单元格之间的空白区域;
(9)在所述空白区域进行表格区域行线的划线操作。
在上述步骤(1)中,在得到合并后的单元格后,服务器就可以得到各单元格的端点坐标,根据各单元格的端点坐标,就可以计算得到各单元格的边界位置信息。
所述边界位置信息,用于描述一个单元格所有边的边界坐标范围。
所述边界位置信息,包括:水平方向的边界位置信息和垂直方向的边界位置信息。
所述水平方向的边界位置信息,用于描述一个单元格水平方向的两个边的边界坐标范围;所述垂直方向的边界位置信息,用于描述一个单元格垂直方向的两个边的边界坐标范围。
例如:一个单元格水平方向的边界坐标范围,可以通过坐标表示:(0,0;5,0)和(0,3;5,3),其中,(0,0;5,0)表示水平方向上一条边的起始坐标(0,0)和终止坐标(5,0);(0,3;5,3)表示水平方向上另一条边的起始坐标(0,3)和终止坐标(5,3)。
一个单元格水平方向的边界坐标范围,可以通过坐标表示:(0,0;0,3)和(5,0;5,3),其中,(0,0;5,0)表示垂直方向上一条边的起始坐标(0,0)和终止坐标(0,3);(5,0;5,3)表示垂直方向上另一条边的起始坐标(5,0)和终止坐标(5,3)。
在上述步骤(2)中,若有单元格的水平方向的边界位置信息中的纵坐标相同,那么就可以将水平方向的边界位置信息中的纵坐标相同的单元格确定为位于同一行的单元格。
在上述步骤(3)中,为了减少划线出现错误,需要将同一行的单元格中的跨列单元格去掉,可以执行以下步骤(31)至步骤(33):
(31)基于同一行中各单元格在垂直方向的边界位置信息,确定各单元格在垂直方向的边界坐标范围;
(32)将所述同一行的各单元格中,垂直方向的边界坐标范围与其它行的至少两个单元格在垂直方向的边界坐标范围有重叠部分的单元格确定为跨列单元格;
(33)将确定的跨列单元格去掉。
在上述步骤(32)中,将所述同一行的各单元格在垂直方向的边界坐标范围,分别与其它行的单元格在垂直方向的边界坐标范围进行对比,并将垂直方向的边界坐标范围与其它行的至少两个单元格在垂直方向的边界坐标范围有重叠部分的单元格确定为跨列单元格。
通过上述步骤(31)至步骤(33)的描述,通过将同一行的各单元格中,垂直方向的边界坐标范围与其它行的至少两个单元格在垂直方向的边界坐标范围有重叠部分的单元格确定为跨列单元格,就可以将同一行的单元格中的跨列单元格去掉,从而减少划线出现错误。
在将同一行的单元格中的跨列单元格去掉后,为了在表格区域中进行划线,可以继续从所述同一行的剩余的单元格中确定出单元格之间的空白区域,为此,上述步骤(4)可以执行以下步骤(41)至步骤(42):
(41)基于单元格在水平方向的边界位置信息,确定未被所述同一行的剩余的单元格覆盖的水平方向的边界坐标范围;
(42)将所述水平方向的边界坐标范围所在的区域确定为空白区域。
在上述步骤(41)中,由于在水平方向的边界位置信息能够描述一个单元格水平方向的两个边的边界坐标范围,就可以使服务器能够根据水平方向的两个边的边界坐标范围的横坐标,确定同一行中未被所述同一行的剩余的单元格覆盖的水平方向的边界坐标范围。
例如:行的长度是15,如果同一行中有单元格1和单元格2,单元格1水平方向的边界坐标范围,可以通过坐标表示为:(0,0;5,0)和(0,3;5,3),那么水平方向的两个边的边界坐标范围的横坐标就是0和5;而单元格2水平方向的边界坐标范围,可以通过坐标表示为:(8,0;15,0)和(8,3;15,3),那么水平方向的两个边的边界坐标范围的横坐标就是8和15。
那么此时服务器就可以确定出横坐标在5和8之间,即边界坐标范围在(5,0;8,0)和(5,3;8,3)之间的边界坐标范围所在的区域未被所述同一行中的单元格覆盖。
在上述步骤(42)中,将上述步骤(41)确定出的边界坐标范围所在的区域确定为空白区域。那么上述边界坐标范围(5,0;8,0)和(5,3;8,3)就是空白区域在水平方向的边界坐标范围。
通过以上步骤(41)至(42)的描述,可以确定出表格区域中所有行的空白区域。
在确定表格区域中的所有行的空白区域后,可以继续执行以下步骤(5),对在所述空白区域进行表格区域列线的划线操作。划线操作可以采用现有技术中任何可以在文档中进行划线操作的技术实现,这里不再赘述。
当然,为了文档的美观,在进行表格区域列线划线时,上述步骤(5)可以执行以下步骤(51)至步骤(52):
(51)所有行中空白区域在水平方向的边界坐标范围,确定出空白区域的中点;
(52)在确定的中点上进行表格区列线的划线操作。
上述步骤(6)至步骤(9)给出的表格区行线的划线操作过程与上述步骤(2)至步骤(5)给出的表格区行线的划线操作过程类似,这里不再赘述。
通过以上操作,就完成了文档中表格区域的划线操作。需要对一些单元格的边界进行轻微调整,此处是基于对表格的先验知识利用规则进行处理。例如“(人民币百万元,另有指明者除外)”,这个单元格从位置来看只能判断它占据第三列到第五列,根据规则:跨多列且上下行均无占据列数一样的单元格,且当前行除第一列外有空白的单元格,则将当前跨多列的单元格与除第一列以外的单元格进行合并,经过规则的调整后,“(人民币百万元,另有指明者除外)”占据的列数变为第二列到第六列。
综上所述,本实施例提出的表格处理方法,通过确定文档中的文字的位置信息,并根据文字位置信息将表格区域中位于一个单元格内的文字进行合并,最后基于合并文字后的单元格,对所述表格区域进行划线操作,与相关技术中无法对文档中的文字进行划线操作相比,可以合并文字得到单元格,并根据得到的单元格对表格区域进行划线操作,从而可以自动对文档进行划线操作,且划线准确率高。
实施例2
本实施例提出一种表格处理装置,用于执行上述实施例1的表格处理方法。
参见图2所示的表格处理装置的结构示意图,本实施例提出的一种表格处理装置,包括:
第一处理模块200,用于识别文档中的表格区域,并确定所述表格区域内的文字和所述文字的文字位置信息;
第二处理模块202,用于根据所述文字位置信息,将所述表格区域中位于一个单元格内的文字进行合并;
第三处理模块204,用于基于合并文字后的单元格,对所述表格区域进行划线操作。
具体地,第二处理模块202,具体用于:
根据所述文字位置信息,将所述表格区域中相邻的文字组合起来,形成多个基本文字区域;
分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域属于一个单元格的概率;
将计算得到的概率大于概率阈值的至少两个基本文字区域中的文字进行合并。
具体地,上述第二处理模块202,用于分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域属于一个单元格的概率,包括:
分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的欧氏距离的倒数;
确定多个基本文字区域中各所述基本文字区域之间的顺序;
基于各所述基本文字区域之间的顺序,分别计算多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的语义关系;
根据计算得到的多个基本文字区域中每个基本文字区域与多个基本文字区域中其他基本文字区域之间的欧氏距离倒数和语义关系,分别计算得到每个基本文字区域与其他基本文字区域属于一个单元格的概率。
综上所述,本实施例提出的表格处理装置,通过确定文档中的文字的位置信息,并根据文字位置信息将表格区域中位于一个单元格内的文字进行合并,最后基于合并文字后的单元格,对所述表格区域进行划线操作,与相关技术中无法对文档中的文字进行划线操作相比,可以合并文字得到单元格,并根据得到的单元格对表格区域进行划线操作,从而可以自动对文档进行划线操作,且划线准确率高。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。