一种版面分析方法及系统
技术领域
本发明涉及信息处理与模式识别领域,具体地说是一种版式文档的版面分析方法。
背景技术
版式文档格式是版面呈现效果固定的电子文档格式,版式文档的呈现与设备无关,在各种设备上阅读、打印或印刷时,其版面的呈现结果都是一致的。版式文档主要应用于成文后文件的发布、传播和存档。版式文档的特点是版面固定、不跑版,即所见即所得(What you see is what you get,简称WYSIWYG),使电子文档在使用过程中,呈现效果不因软硬件环境、操作者的变化而变化,在版式、版面、字体、字号等方面与纸质文件保持完全一致。版式文档格式的特点使它成为电子文档发布、数字化信息传播和存档的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用版式文档,在国外,Adobe公司的PDF版式文档格式目前已成为数字化信息事实上的一个工业标准。
随着计算机技术的发展以及电子阅读设备的广泛使用,版式文件的数量也呈现出爆炸性增长。目前,电子阅读设备的终端种类日益真多,如电子书、PAD、智能手机等等,用户希望在多种设备上都能够方便的阅读文档。但是由于一般的版式文档的显示型式固定,不利于在多种不同大小的显示屏幕上完整显示,因此需要版式文档可以根据显示设备的大小对文档的内容进行重新排版。此外,由于版式文件用绝对数值精确指定每个文档显示的位置和尺寸,使得它不利于编辑,每次修改文档内容后都需要对布局重新计算,重写整个文档的布局信息,因此对版式文件内容的检索、结构话存储、修改、提取等编辑操作都会非常麻烦。
版式文档的图像内容可以分为文本、表格、图像、图形、分隔符等,由同一种内容构成的区域成为同质区域。版面分析就是将文档图像中的同质区域进行分割、标注的一种方法,是进行文档图像分析和文字识别的首要过程。将文档的图像内容进行版面分析后,再针对各个不同的同质区域进行分别处理,可以大大提高版式文档的修改、编辑的可操作性。现有的版式文档的版面分析方法在进行版面分析时,其主要使用的是通过版式文档引擎从版式文档中获得的基本图元如字符、图像、图形等数据信息。通过版式文档的版面分析,建立版式文档信息与流式文档信息的对应关系,使得版式文档的编辑、排版、修改、提取可以更好的实现。但是现有技术中只采用版式文档引擎获得的基本图元进行版面分析,采用的方式单一、且对于不能很好识别的部分内容,不能进一步改进。
发明内容
为此,本发明所要解决的技术问题在于现有技术中的版面分析方法单一,从而提出一种将逻辑结构信息结合到现有的版式分析方法中、有效改进版式文档分析结果的版面分析方法。
为解决上述技术问题,本发明的提供一种基于逻辑参考信息的版面分析方法。
一种版面分析方法,包括如下过程:
获取版式文档的逻辑段落信息,每个段落的逻辑参考信息包括按照逻辑顺序排列的字符对象、动态区域对象、静态区域对象,并获取当前页面基本图元数据作为待分析基本图元数据;
针对静态区域对象进行图元收集,针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集。
所述的版面分析方法,其特征在于所述静态区域对象包含该区域在版式文档中对应的绝对位置与宽高的参考信息,动态区域对象只包含该区域的宽高参考信息。
所述的版面分析方法,所述当前页面基本图元数据通过版式文档引擎获得,包括字符基本图元、图像基本图元、图形基本图元。
所述的版面分析方法,针对静态区域对象进行图元收集的过程,包括:进行静态区域对象图元收集,并将归属于静态区域对象的基本图元数据从待分析基本图元数据中移除。
所述的版面分析方法,所述针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集的过程,通过逻辑段落的分析完成。
所述的版面分析方法,在所述逻辑段落分析的过程中,首先确定每个逻辑段落的分析次序,然后对每个逻辑段落进行逻辑分析。
所述的版面分析方法,对每个逻辑段落进行逻辑分析的过程如下:首先进行字符分析并建立逻辑连接边,然后针对逻辑连接边进行成行分析和成段分析,通过匹配获得命中段落,并收集动态区域对象图元。
所述的版面分析方法,对每个逻辑段落进行逻辑分析的具体过程如下:
字符分析过程:过滤当前页面内的全部字符基本图元,只保留与当前逻辑段落中字符编码相同的字符基本图元作为备选字符基本图元;
逻辑连接边生成过程:根据当前逻辑段落中两两字符的逻辑次序关系,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接,生成逻辑连接边;
成行分析过程:对逻辑连接边进行过滤和聚类分析,获得逻辑段落内的最终行单元信息;
成段分析过程:对全部最终行单元按照版面物理位置关系以及行逻辑文本字符串与目标逻辑段落逻辑文本字符串的匹配程度进行聚类分析,对被聚集到同一个类中的最终行单元进行合并,并做行版面分析排序,生成一个段落单元;
段落结果筛选过程:将分析得到的全部备选段落单元与目标逻辑段落进行准确匹配与非准确匹配,获得命中段落单元;
动态区域对象图元收集过程:对段落中的每一个动态区域对象,从命中段落单元取出其前后的字符基本图元,并使用前后的字符基本图元包围矩形之间的空白范围内,按照正常版面规则及动态区域对象宽高信息推测出一个绝对位置的收集区域,并在该区域中收集动态区域对象的组成基本图元;
移除过程:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,按照逻辑段落的分析次序分析下一逻辑段落。
所述的版面分析方法,确定每个逻辑段落的分析次序时,判断的标准依次为:①段落内字符数量,字符数量多则分析次序靠前;②段落的跨页类型,正常段分析次序优先于跨页段;③段落的自然逻辑次序。
所述的版面分析方法,在所述逻辑连接边生成过程,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接时,逻辑连接边连接两个字符基本图元的包围矩形的中心。
所述的版面分析方法,所述逻辑连接边的信息包括连接边的水平夹角、规格化长度、被连接字符基本图元的字体大小比例。
所述的版面分析方法,在所述逻辑连接边生成过程中,当逻辑连接边两端的字符在逻辑段落中被动态区域对象或静态区域对象隔开时,这种逻辑连接边被标识为跨区域对象逻辑连接边。
所述的版面分析方法,在所述成行分析过程中,包括以下过程:
一级成行分析:
对全部的逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边;
对剩余的逻辑连接边进行二次过滤,根据逻辑连接边的水平夹角、规格化长度与阈值进行比较,保留满足阈值条件的逻辑连接边,其余删除;
对全部保留的逻辑连接边进行聚类,把全部存在首或尾字符基本图元相同的逻辑连接边聚为一类;
对被聚集到一个类中的逻辑连接边连接的全部字符基本图元做正常的行字符次序分析,确定其中全部字符基本图元的逻辑次序,得到一级行单元;
对未被任意一条逻辑连接边连接的每一个单个字符基本图元也生成一个一级行单元;
二级成行分析:
找出全部连接一级行单元的逻辑连接边,即该逻辑连接边连接了一个一级行单元的尾字符基本图元以及另一个一级行单元的首字符基本图元;
对得到的全部逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边,保留跨区域对象逻辑连接边;
对全部保留的逻辑连接边进行聚类;
对被聚类到一个类中的逻辑连接边连接的全部一级行单元进行合并,得到一个二级行单元;
对未被任意一条逻辑连接边连接的每一个一级行单元也生成一个二级行单元;
二级行合并:
对全部的二级行单元再进行聚类分析;
对被聚到一个类中的二级行单元进行合并,生成一个最终行单元;
未发生合并的每一个二级行单元也生成一个最终行单元;
无效行滤除:
检查每一个最终行单元包围矩形的前后或上下邻近位置是否存在中文字符,如是则滤除该行单元。
所述的版面分析方法,在所述一级成行分析过程的二次过滤过程中,对于跨区域对象逻辑连接边,其规格化长度与区域规格对象的宽度或高度接近时保留。
所述的版面分析方法,在所述二级成行分析过程中对全部保留的逻辑连接边进行聚类的判断标准为:
两个逻辑连接边是否连接了一个相同的一级行单元;
被连接的两个一级行单元包围矩形的垂直重叠程度或水平重叠程度是否大于经验阈值,以及使用柔性字符串匹配算法计算被连接的前后两个一级行单元合并字符串与逻辑段落字符串的匹配程度是否大于经验阈值。
所述的版面分析方法,在所述成行分析过程的二级行合并时,对全部的二级行单元再进行聚类分析的判断标准为:
两个二级行单元的包围矩形的垂直重叠程度或水平重叠程度是否大于阈值;
两个二级行单元的包围矩形的水平间隔或垂直间隔是否大于0;
两个二级行单元使用的字体以及字体大小差异是否满足要求;
使用柔性字符串匹配算法计算被连接的前后两个二级行单元合并字符串与逻辑段落字符串的匹配程度是否大于阈值。
所述的版面分析方法,在所述成段分析过程中进行所述聚类分析的判断标准为:
文本行距离是否处于一个阈值范围内,是否被图像基本图元分隔;
上下行或前后行的行宽差别是否满足常见版式的阈值要求;
对满足所述常见版式的阈值要求的文本行使用宽松的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求;
对不满足所述常见版式的阈值要求的文本行使用严格的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求;
所述的版面分析方法,在所述段落结果筛选过程中,包括以下过程:
按次序将全部段落单元与逻辑段落进行准确匹配与非准确匹配,并都返回第一个匹配结果,准确匹配与非准确匹配的过程如下:
准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串能够准确匹配;对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串能够准确匹配,且段落单元的包围矩形处于版面上起始或结束物理位置;
非准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度大于经验阈值;对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串通过柔性字符串匹配算法计算的匹配程度大于经验阈值,且段落单元的包围矩形处于版面上起始或结束物理位置;
使用准确匹配或非准确匹配返回的匹配段落单元作为命中段落单元,如果准确匹配与非准确匹配都返回匹配段落单元,则当非准确匹配返回的匹配段落单元的分析字符串长度大于准确匹配返回的匹配段落单元的分析字符串长度且超过一个经验阈值时,使用非准确匹配返回的匹配段落单元作为命中段落单元,否则使用准确匹配返回的匹配段落单元作为命中段落单元。
使用柔性字符串匹配算法将命中段落单元与逻辑段落进行字符匹配,并滤除命中段落单元中未匹配的字符基本图元。
所述的版面分析方法,静态区域对象图元收集包括图像收集、表格收集、图形收集、公式收集,采用的方法分别为图像收集策略、表格收集策略、图形收集策略、公式收集策略。
一种版面分析系统,包括如下过程:
获取单元:获取版式文档的逻辑段落信息,每个段落的逻辑参考信息包括按照逻辑顺序排列的字符对象、动态区域对象、静态区域对象,并获取当前页面基本图元数据作为待分析基本图元数据;
收集单元:针对静态区域对象进行图元收集,针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集。
所述静态区域对象包含该区域在版式文档中对应的绝对位置与宽高的参考信息,动态区域对象只包含该区域的宽高参考信息。
所述当前页面基本图元数据通过版式文档引擎获得,包括字符基本图元、图像基本图元、图形基本图元。
针对静态区域对象进行图元收集的过程,包括:进行静态区域对象图元收集,并将归属于静态区域对象的基本图元数据从待分析基本图元数据中移除。
针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集的过程,通过逻辑段落的分析完成。
在所述逻辑段落分析的过程中,首先确定每个逻辑段落的分析次序,然后对每个逻辑段落进行逻辑分析。
对每个逻辑段落进行逻辑分析的过程如下:首先进行字符分析并建立逻辑连接边,然后针对逻辑连接边进行成行分析和成段分析,通过匹配获得命中段落,并收集动态区域对象图元。
对每个逻辑段落进行逻辑分析的具体过程如下:
字符分析单元:过滤当前页面内的全部字符基本图元,只保留与当前逻辑段落中字符编码相同的字符基本图元作为备选字符基本图元;
逻辑连接边生成单元:根据当前逻辑段落中两两字符的逻辑次序关系,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接,生成逻辑连接边;
成行分析单元:对逻辑连接边进行过滤和聚类分析,获得逻辑段落内的最终行单元信息;
成段分析单元:对全部最终行单元按照版面物理位置关系以及行逻辑文本字符串与目标逻辑段落逻辑文本字符串的匹配程度进行聚类分析,对被聚集到同一个类中的最终行单元进行合并,并做行版面分析排序,生成一个段落单元;
段落结果筛选单元:将分析得到的全部备选段落单元与目标逻辑段落进行准确匹配与非准确匹配,获得命中段落单元;
动态区域对象图元收集单元:对段落中的每一个动态区域对象,从命中段落单元取出其前后的字符基本图元,并使用前后的字符基本图元包围矩形之间的空白范围内,按照正常版面规则及动态区域对象宽高信息推测出一个绝对位置的收集区域,并在该区域中收集动态区域对象的组成基本图元;
移除单元:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,按照逻辑段落的分析次序分析下一逻辑段落。
确定每个逻辑段落的分析次序时,判断的标准依次为:①段落内字符数量,字符数量多则分析次序靠前;②段落的跨页类型,正常段分析次序优先于跨页段;③段落的自然逻辑次序。
在所述逻辑连接边生成过程,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接时,逻辑连接边连接两个字符基本图元的包围矩形的中心。
所述逻辑连接边的信息包括连接边的水平夹角、规格化长度、被连接字符基本图元的字体大小比例。
在所述逻辑连接边生成过程中,当逻辑连接边两端的字符在逻辑段落中被动态区域对象或静态区域对象隔开时,这种逻辑连接边被标识为跨区域对象逻辑连接边。
在所述成行分析单元中,包括以下过程:
一级成行分析:
对全部的逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边;
对剩余的逻辑连接边进行二次过滤,根据逻辑连接边的水平夹角、规格化长度与阈值进行比较,保留满足阈值条件的逻辑连接边,其余删除;
对全部保留的逻辑连接边进行聚类,把全部存在首或尾字符基本图元相同的逻辑连接边聚为一类;
对被聚集到一个类中的逻辑连接边连接的全部字符基本图元做正常的行字符次序分析,确定其中全部字符基本图元的逻辑次序,得到一级行单元;
对未被任意一条逻辑连接边连接的每一个单个字符基本图元也生成一个一级行单元;
二级成行分析:
找出全部连接一级行单元的逻辑连接边,即该逻辑连接边连接了一个一级行单元的尾字符基本图元以及另一个一级行单元的首字符基本图元;
对得到的全部逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边,保留跨区域对象逻辑连接边;
对全部保留的逻辑连接边进行聚类;
对被聚类到一个类中的逻辑连接边连接的全部一级行单元进行合并,得到一个二级行单元;
对未被任意一条逻辑连接边连接的每一个一级行单元也生成一个二级行单元;
二级行合并:
对全部的二级行单元再进行聚类分析;
对被聚到一个类中的二级行单元进行合并,生成一个最终行单元;
未发生合并的每一个二级行单元也生成一个最终行单元;
无效行滤除:
检查每一个最终行单元包围矩形的前后或上下邻近位置是否存在中文字符,如是则滤除该行单元。
在所述一级成行分析过程的二次过滤过程中,对于跨区域对象逻辑连接边,其规格化长度与区域规格对象的宽度或高度接近时保留。
在所述二级成行分析过程中对全部保留的逻辑连接边进行聚类的判断标准为:
两个逻辑连接边是否连接了一个相同的一级行单元;
被连接的两个一级行单元包围矩形的垂直重叠程度或水平重叠程度是否大于经验阈值,以及使用柔性字符串匹配算法计算被连接的前后两个一级行单元合并字符串与逻辑段落字符串的匹配程度是否大于经验阈值。
在所述成行分析过程的二级行合并时,对全部的二级行单元再进行聚类分析的判断标准为:
两个二级行单元的包围矩形的垂直重叠程度或水平重叠程度是否大于阈值;
两个二级行单元的包围矩形的水平间隔或垂直间隔是否大于0;
两个二级行单元使用的字体以及字体大小差异是否满足要求;
使用柔性字符串匹配算法计算被连接的前后两个二级行单元合并字符串与逻辑段落字符串的匹配程度是否大于阈值。
在所述成段分析过程中进行所述聚类分析的判断标准为:
文本行距离是否处于一个阈值范围内,是否被图像基本图元分隔;
上下行或前后行的行宽差别是否满足常见版式的阈值要求;
对满足所述常见版式的阈值要求的文本行使用宽松的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求;
对不满足所述常见版式的阈值要求的文本行使用严格的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求;
在所述段落结果筛选过程中,包括以下过程:
按次序将全部段落单元与逻辑段落进行准确匹配与非准确匹配,并都返回第一个匹配结果,准确匹配与非准确匹配的过程如下:
准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串能够准确匹配;对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串能够准确匹配,且段落单元的包围矩形处于版面上起始或结束物理位置;
非准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度大于经验阈值;对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串通过柔性字符串匹配算法计算的匹配程度大于经验阈值,且段落单元的包围矩形处于版面上起始或结束物理位置;
使用准确匹配或非准确匹配返回的匹配段落单元作为命中段落单元,如果准确匹配与非准确匹配都返回匹配段落单元,则当非准确匹配返回的匹配段落单元的分析字符串长度大于准确匹配返回的匹配段落单元的分析字符串长度且超过一个经验阈值时,使用非准确匹配返回的匹配段落单元作为命中段落单元,否则使用准确匹配返回的匹配段落单元作为命中段落单元。
使用柔性字符串匹配算法将命中段落单元与逻辑段落进行字符匹配,并滤除命中段落单元中未匹配的字符基本图元。
所述的版面分析系统,静态区域对象图元收集包括图像收集、表格收集、图形收集、公式收集,采用的方法分别为图像收集策略、表格收集策略、图形收集策略、公式收集策略。
本发明的上述技术方案相比现有技术具有以下优点,
(1)本发明所述的版面分析方法,包括提取过程和分析过程,首先获得逻辑段落信息和基本图元数据,然后针对逻辑参考信息的不同类型进行图元收集,采用逻辑参考信息与基本图元数据信息结合的方式,将数字文档生产工程中获得的逻辑结构参考信息也作为版面分析的输入数据,与基本图元数据结合形成带逻辑参考信息的基本分析图元,并在版面分析过程中充分利用这部分逻辑参考消息,从而得到更准确的版面文档的版面分析结果,有效的改进了版式文档的版面分析结果。
(2)本发明所述的版面分析方法,首先进行静态区域对象图元收集,并将归属于静态区域对象的基本图元数据从待分析基本图元数据中移除,由于静态区域对象包含该区域在版式文档中对应的绝对位置与宽高的参考信息,因此通过静态区域对象图元收集策略可以将属于静态区域对象的基本图元数据收集到,这部分数据直接收集即可,无需进行特殊处理。由于静态区域对象的信息相对可靠,所以使用其位置信息收集的结果也比较可靠,这部分不需要进行后续的分析,因此移除被归属于静态队形的基本图元,避免这部分基本图元对后续分析的干扰,同时也减少了后续处理的工作量,避免了重复工作。
(3)本发明所述的版面分析方法,针对逻辑段落分析过程中,首先进行分析次序确定,根据设定的顺序进行分析,提高处理的效率。由于字符数量越多意味着分析时可以参考的信息量越大,字符数量相同的正常段落与跨页段落相比,正常段落的结果字符图元都在当前页面中,因此按照以上标准进行排序。
(4)本发明所述的版面分析方法,对每个逻辑段落进行逻辑分析的过程如下:首先进行字符分析并建立逻辑连接边,然后针对逻辑连接边进行成行分析和成段分析,通过匹配获得命中段落,并收集动态区域对象图元。由于各个相关字符之间的顺序体现其逻辑关系,因此通过逻辑连接边进行成行、成段分析,最终获得命中段落,提高属于字符对象的基本图元的收集准确性。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是本发明所述的版面分析方法的实施例1的流程图;
图2是本发明所述的版面分析方法的另外一个实施例的流程图
图3是本发明所述的版面分析方法的一个实施例的逻辑段落分析的流程图;
图4是本发明所述的版面分析方法的一个实施例的静态区域对象图元收集示意图;
图5是本发明所述的版面分析方法的实施例的字符过滤示意图;
图6是本发明所述的版面分析方法的实施例的生成逻辑连接边示意图;
图7是本发明所述的版面分析方法的实施例的成行分析示意图;
图8是本发明所述的版面分析方法的实施例的成段分析的示意图;
图9是本发明所述的版面分析方法的实施例的动态区域对象图元收集示意图。
具体实施方式
实施例1:
本实施例提供一种版面分析方法,如图1所示,包括如下过程:
获取版式文档的逻辑段落信息,每个段落的逻辑参考信息包括按照逻辑顺序排列的字符对象、动态区域对象、静态区域对象,并获取当前页面基本图元数据作为待分析基本图元数据。
针对静态区域对象进行图元收集,针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集。
本发明所述的版面分析方法,针对逻辑参考信息的不同类型进行图元收集,采用逻辑参考信息与基本图元数据信息结合的方式,将数字文档生产工程中获得的逻辑结构参考信息也作为版面分析的输入数据,与基本图元数据结合形成带逻辑参考信息的基本分析图元,并在版面分析过程中充分利用这部分逻辑参考消息,从而得到更准确的版面文档的版面分析结果,有效的改进了版式文档的版面分析结果。
实施例2:
本实施例提供一种版面分析方法,包括如下过程,流程图参见图2和图3:
(1)提取过程:获取已有的一页版式文档的逻辑段落,每个段落包括字符、动态区域对象、静态区域对象,并通过版式文档引擎获得的当前页面基本图元数据,包括字符基本图元、图像基本图元、图形基本图元。在版面分析前,前期的版面文档加工过程中已有文档全部的逻辑段落信息,全部逻辑段落间是逻辑有序的,这些都是版面分析前已经的逻辑信息。
一个页面内包含版心矩形与多个逻辑段落,逻辑段落按照页面自然逻辑次序排序。此处的版心矩形是指页面内主体内容所在的区域,逻辑段落中包含字符与对象的逻辑次序信息,逻辑段落分为正常段落和跨页段落,正常段落为该段的全部内容位于当前页面内,跨页段落表示该段的部分内容位于当前页面内。每个逻辑段落由多个字符与区域对象组成,区域对象分为动态区域对象与静态区域对象两种类型,其中静态区域对象包含该区域在版式文档中对应的绝对位置与宽高的参考信息,动态区域对象则只包含该区域的宽高参考信息。静态区域对象按照逻辑角色又可以分为图像、表格、图形、公式四种逻辑类型。逻辑段落中的多个字符与区域对象之间也已经按照自然逻辑次序排序。
(2)静态区域对象图元收集:收集静态区域对象,并将静态区域对象从待分析基本图元数据中移除。
逻辑参考信息中的静态区域对象因为包含该区域在版式文档中的绝对位置与宽高,即目标收集区域已知,所以首先对这部分的区域对象进行图元收集。对每一个静态区域对象根据其逻辑类型使用对应的收集策略类来过滤页面内全部基本图元,只保留满足收集策略要求的基本图元,这部分基本图元为该静态区域对象的组成图元。然后将已被静态区域对象收集的基本图元从当前页面待分析基本图元数据中移除。
由于静态区域对象的信息相对可靠,所以使用其位置信息收集的结果也比较可靠,这部分不需要进行后续的分析,因此移除被归属于静态队形的基本图元,避免这部分基本图元对后续分析的干扰,同时也减少了后续处理的工作量,避免了重复工作。
(3)分析次序确定:确定每个逻辑段落的分析次序。在此对全部逻辑段落进行分析次序确定时,判断的标准依次为:①段落内字符数量,字符数量多则分析次序靠前;②段落的跨页类型,正常段分析次序优先于跨页段;③段落的自然逻辑次序。
由于字符数量越多意味着分析时可以参考的信息量越大,字符数量相同的正常段落与跨页段落相比,正常段落的结果字符图元都在当前页面中,因此按照以上标准进行排序。
(4)逻辑段落分析:对每个逻辑段落的分析过程如下,参见图2:
(4.1)字符分析过程:过滤当前页面内的全部字符基本图元,只保留与当前逻辑段落中字符编码相同的字符基本图元作为备选字符基本图元;
(4.2)逻辑连接边生成过程:根据当前逻辑段落中两两字符的逻辑次序关系,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接,生成逻辑连接边。本实施例中逻辑连接边连接两个字符基本图元的包围矩形的中心,作为其他可以替换的实施方式,也可以连接包围矩形的其他位置。例如逻辑段落中存在“版面分析”这四个逻辑字符串,则会为页面内全部的编码为“版”与编码为“面”的字符基本图元间生成逻辑连接边,为页面内全部的编码为“面”与编码为“分”的字符基本图元间生成逻辑连接边,为页面内全部的编码为“分”与编码为“析”的字符基本图元间生成逻辑连接边。
(4.3)成行分析过程:对逻辑连接边进行过滤和聚类分析,获得逻辑段落内的最终行单元信息;
(4.4)成段分析过程:对全部最终行单元按照是否同属某一逻辑段落进行聚类分析,对被聚集到同一个类中的最终行单元进行合并,并做行版面分析排序,生成一个段落单元;
(4.5)段落结果筛选过程:按次序将全部段落单元与逻辑段落进行准确匹配与非准确匹配,获得命中段落单元;
(4.6)动态区域对象图元收集过程:对段落中的每一个动态区域对象,从命中段落单元取出其前后的字符基本图元,并使用前后的字符基本图元包围矩形之前的空白范围内,按照正常版面规则及动态区域对象宽高信息推测出一个绝对位置的收集区域,并在该区域中收集动态区域对象的组成基本图元;
(4.7)移除过程:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,按照逻辑段落的分析次序分析下一逻辑段落。
实施例3:
本实施例提供一种版面分析方法,包括如下过程:
(1)提取过程。与实施例1相同。
(2)静态区域对象图元收集。与实施例1相同,并在本实施例中,对每一个静态区域对象过滤页面内全部基本图元时,根据静态区域对象的逻辑类型,使用对应的收集策略类来收据,具体策略为:
①图像收集策略:只收集图像基本图元,并要求图像基本图元的包围矩形与目标收集区域发生交错,且交错区域的面积与图像基本图元包围矩形的面积比大于一个经验阈值。
②表格收集策略:收集字符、图形、图像基本图元,并要求基本图元的包围矩形完全被目标收集区域所包含。
③图形收集策略:只收集图形基本图元,并要求图形基本图元的包围矩形完全被目标收集区域所包含。
④公式收集策略:收集字符、图形基本图元,并要求基本图元的包围矩形目标收集区域发生交错。
如图2所示,给出了一个静态区域对象图元收集的实例。
(3)分析次序确定。与实施例1相同
(4)逻辑段落分析。对每个逻辑段落的分析过程如下:
(4.1)字符分析过程:过滤当前页面内的全部字符基本图元,只保留与当前逻辑段落中字符编码相同的字符基本图元作为备选字符基本图元;
(4.2)逻辑连接边生成过程,与实施例1相同,。生成逻辑连接边后,所述逻辑连接边的信息还包括连接边的水平夹角、规格化长度、被连接字符基本图元的字体大小比例,此处的规格化长度为逻辑边长度除以其前后字符图元大小的均值获得规格化长度。在所述逻辑连接边生成过程中,当逻辑连接边两端的字符在逻辑段落中被动态区域对象或静态区域对象隔开时,这种逻辑连接边被标识为跨区域对象逻辑连接边。
(4.3)成行分析过程:对逻辑连接边进行过滤和聚类分析,获得逻辑段落内的最终行单元信息。具体的过程如下:
(4.3.1)一级成行分析:
①对全部的逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边。
②对所有剩余的逻辑连接边进行二次过滤,根据逻辑连接边的水平夹角、规格化长度与阈值进行比较,保留满足阈值条件的逻辑连接边,其余删除。具体地说,二次过滤的判断标准是:逻辑连接边水平夹角、规格化长度与经验阈值的比较,满足阈值要求的逻辑连接边才予以保留。对跨区域对象逻辑边,判断标准是:跨区域对象逻辑连接边满足经验阈值要求;且对于横排文档,规格化长度与区域规格对象的宽度接近才予以保留;且对于竖排文档,规格化长度与区域规格对象的高度接近才予以保留。
③对全部保留的逻辑连接边进行聚类,把全部存在首或尾字符基本图元相同的逻辑连接边聚为一类。
④对被聚集到一个类中的逻辑连接边连接的全部字符基本图元做正常的行字符次序分析,确定其中全部字符基本图元的逻辑次序,得到一级行单元。
⑤对未被任意一条逻辑连接边连接的每一个单个字符基本图元也生成一个一级行单元。
通过上述过程获得版面位置上彼此最邻近字符图元组成一级行。
(4.3.2)二级成行分析:
①找出全部连接一级行单元的逻辑连接边,及该逻辑连接边连接了一个一级行单元的尾字符基本图元以及另一个一级行单元的首字符基本图元;
如一级行A“今天可”,一级行B“能会下雨”,目标字符串“今天可能会下雨”的情况,一级行A的尾“可”与一级行B的头“能”之间的逻辑连接边。
②对得到的全部逻辑连接边进行过滤,过滤掉穿越页面内其他字符基本图元包围矩形的逻辑连接边,保留跨区域对象逻辑连接边;
③对全部保留的逻辑连接边进行聚类,聚类标准是:a、逻辑连接边连接了某一个相同的一级行单元;b、对于横排文档,被连接的两个一级行单元包围矩形的垂直重叠程度是否大于经验阈值,或对于竖排文档,被连接的两个一级行单元包围矩形的水平重叠程度是否大于经验阈值;c、使用柔性字符串匹配算法计算被连接的前后两个一级行单元合并字符串与逻辑段落字符串的匹配程度是否大于经验阈值。
④对被聚类到一个类中的逻辑连接边连接的全部一级行单元进行合并,得到一个二级行单元;
⑤对未被任意一条逻辑连接边连接的每一个一级行单元也生成一个二级行单元;
通过上述过程合并版面物理位置较远且存在逻辑边连接的一级行。
(4.3.3)二级行合并:
①对全部的二级行单元再进行聚类分析,聚类标准是:a、对于横排文档,两个二级行单元的包围矩形的垂直重叠程度是否大于经验阈值,或对于竖排文档,两个二级行单元的包围矩形的水平重叠程度是否大于经验阈值;b、对于横排文档,两个二级行单元的包围矩形的水平间隔是否大于0,或对于竖排文档,两个二级行单元的包围矩形的垂直间隔是否大于0;c、两个二级行单元使用的字体以及字体大小差异满足要求;d、使用柔性字符串匹配算法计算被连接的前后两个二级行单元合并字符串与逻辑段落字符串的匹配程度是否大于经验阈值。通过上述过程,对于二级行的版面物理位置同行,使用类似的字体,并且合并的字符串存在于目标段落文本中。
②对被聚到一个类中的二级行单元进行合并,生成一个最终行单元。
③未发生合并的每一个二级行单元也生成一个最终行单元。
(4.3.4)无效行滤除:
检查每一个最终行单元包围矩形的前后或上下邻近位置是否存在中文字符,如是则滤除该行单元。对于横排文档,检查每一个最终行单元其包围矩形的前后临近位置是否存在中文字符,对于竖排文档检查每一个最终行单元其包围矩形的上下邻近位置是否存在中文字符,如存在中文字符则表示该最终行单元嵌入在实际版面上的某一自然行之中,需要滤除。
(4.4)成段分析过程:对全部最终行单元按照是否同属某一逻辑段落进行聚类分析,对被聚集到同一个类中的最终行单元进行合并并做行版面分析排序,生成一个段落单元。
上述聚类分析的判断标准为:文本行距离是否处于一个阈值范围内,是否被图像基本图元分隔;上下行或前后行的行宽差别是否满足常见版式的阈值要求;对满足所述常见版式的阈值要求的文本行使用宽松的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求;对不满足所述常见版式的阈值要求的文本行使用严格的阈值检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求。这样,就可以将多个行进一步的组合合并,得到段落单元。
具体地,对于横排文档,聚类过程如下:上下行的距离是否处于一个经验阈值范围内,是否被图像基本图元分隔;上下行的行宽差别是否满足常见版式(居中/缩进/悬挂)的经验阈值要求;对满足常见版式经验阈值要求的上下行(横排文档)使用比较宽松的经验阈值来检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求,对不满足常见版式经验阈值要求的上下行则使用比较严格的经验阈值来检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求。
对于竖排文档,聚类过程如下:前后行距离是否处于一个经验阈值范围内,是否被图像基本图元分隔;前后行的行宽差别是否满足常见版式(居中/缩进/悬挂)的经验阈值要求;对满足常见版式经验阈值要求的前后行则使用比较宽松的经验阈值来检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求,对不满足常见版式经验阈值要求的前后行则使用比较严格的经验阈值来检验两个最终行单元合并字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度是否满足要求。
(4.5)段落结果筛选过程:按次序将全部段落单元与逻辑段落进行准确匹配与非准确匹配,获得命中段落单元。即将本次分析得到的全部备选段落单元与目标逻辑段落进行匹配,取其中匹配程度最高的一个作为段落结果,具体过程如下:
首先,对全部段落单元进行排序,排序的依据为:a、段落段元中的字符基本图元数量,数量多的靠前,;b、段落在版面上的物理位置。由于字符图元数量最多的段落时结果段落的可能性也最大,对于字符图元数量相同的段落,使用期物理位置可以推测其逻辑次序上靠前,因此采用上述方式排序。
其次,按上述获得的次序将全部段落单元与逻辑段落进行准确匹配与非准确匹配,并都返回第一个匹配结果,准确匹配与非准确匹配的过程如下:
准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串能够准确匹配,在分析过程中得到一级行、二级行、段落,使用其中的字符图元生成对应的行与段落字符串,逻辑段落字符创通过已知的逻辑段落信息得到。对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串能够准确匹配,且段落单元的包围矩形处于版面上起始或结束物理位置;例如“可能会下雨”是“今天晚上可能会下雨”的一个子字符串。
非准确匹配:对于正常段落,要求段落单元分析字符串与逻辑段落字符串通过柔性字符串匹配算法计算的匹配程度大于经验阈值;对于跨页段落,要求段落单元分析字符串与逻辑段落字符串中的一个子串通过柔性字符串匹配算法计算的匹配程度大于经验阈值,且段落单元的包围矩形处于版面上起始或结束物理位置;
使用准确匹配或非准确匹配返回的匹配段落单元作为命中段落单元,如果准确匹配与非准确匹配都返回匹配段落单元,则当非准确匹配返回的匹配段落单元的分析字符串长度大于准确匹配返回的匹配段落单元的分析字符串长度且超过一个经验阈值时,使用非准确匹配返回的匹配段落单元作为命中段落单元,否则使用准确匹配返回的匹配段落单元作为命中段落单元。段落分析通常情况下会得到多个段落,如“今天晚上可能会下雨”在分析页面后可能会得到“今天下雨”、“天晚可下雨”、“今天晚上可能会下雨”,“下雨”四个段落,要从中取出实际中匹配的段落。
使用柔性字符串匹配算法将命中段落单元与逻辑段落进行字符匹配,并滤除命中段落单元中未匹配的字符基本图元,由于分析段落结果中可能会包含多余的字符,需要匹配算法找到并滤除多余字符。
上述过程中采用的柔性字符串匹配算法是一种近似匹配算法,允许两个字符串存在一定的差异,区别于一一对应的精确匹配。
(4.6)动态区域对象图元收集过程。
段落中的动态区域对象因为只知道其宽高参考信息,所以需要通过前后的字符基本图元来推断其在版面上的绝对位置。
对段落中的每一个动态区域对象,从命中段落单元取出其前后的字符基本图元,并使用前后的字符基本图元包围矩形之前的空白范围内,按照正常版面规则及动态区域对象宽高信息推测出一个绝对位置的收集区域,并在该区域中收集动态区域对象的组成基本图元。收集策略与静态区域对象相同。
(4.7)移除过程:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,这些基本图元不再参与后续逻辑段落的分析过程,然后按照逻辑段落的分析次序分析下一逻辑段落。
实施例4:
一种版面分析系统,包括如下过程:
获取单元:获取版式文档的逻辑段落信息,每个段落的逻辑参考信息包括按照逻辑顺序排列的字符对象、动态区域对象、静态区域对象,并获取当前页面基本图元数据作为待分析基本图元数据;
收集单元:针对静态区域对象进行图元收集,针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集。
其中,所述静态区域对象包含该区域在版式文档中对应的绝对位置与宽高的参考信息,动态区域对象只包含该区域的宽高参考信息。
其中,所述当前页面基本图元数据通过版式文档引擎获得,包括字符基本图元、图像基本图元、图形基本图元。
针对静态区域对象进行图元收集的过程,包括:进行静态区域对象图元收集,并将归属于静态区域对象的基本图元数据从待分析基本图元数据中移除。
所述针对字符对象通过字符分析、成行分析、成段分析、段落结果筛选后进行图元收集,针对动态区域对象进行图元收集,完成待分析基本图元数据的图元收集的过程,通过逻辑段落的分析完成。
在所述逻辑段落分析的过程中,首先确定每个逻辑段落的分析次序,然后对每个逻辑段落进行逻辑分析。
对每个逻辑段落进行逻辑分析的过程如下:首先进行字符分析并建立逻辑连接边,然后针对逻辑连接边进行成行分析和成段分析,通过匹配获得命中段落,并收集动态区域对象图元。
对每个逻辑段落进行逻辑分析包括以下:
字符分析单元:过滤当前页面内的全部字符基本图元,只保留与当前逻辑段落中字符编码相同的字符基本图元作为备选字符基本图元;
逻辑连接边生成单元:根据当前逻辑段落中两两字符的逻辑次序关系,将备选字符基本图元中分别与当前逻辑段落中的两个相连字符相同的基本图元全部连接,生成逻辑连接边;
成行分析单元:对逻辑连接边进行过滤和聚类分析,获得逻辑段落内的最终行单元信息;
成段分析单元:对全部最终行单元按照版面物理位置关系以及行逻辑文本字符串与目标逻辑段落逻辑文本字符串的匹配程度进行聚类分析,对被聚集到同一个类中的最终行单元进行合并并做行版面分析排序,生成一个段落单元;
段落结果筛选单元:将分析得到的全部备选段落单元与目标逻辑段落进行准确匹配与非准确匹配,获得命中段落单元;
动态区域对象图元收集单元:对段落中的每一个动态区域对象,从命中段落单元取出其前后的字符基本图元,并使用前后的字符基本图元包围矩形之间的空白范围内,按照正常版面规则及动态区域对象宽高信息推测出一个绝对位置的收集区域,并在该区域中收集动态区域对象的组成基本图元;
移除单元:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,按照逻辑段落的分析次序分析下一逻辑段落。
实施例5:
下面给出本发明的一个应用实例,通过对样例文档中的某一样例页面分析说明进行描述:
参见图4-9样例中的两个典型逻辑段落,其中:
逻辑段落A:“[静态区域图元IMG]”
逻辑段落B:“式中,qij表示哈尔滨市j的装备工业行业增加值,[动态区域图元FORMULA]是哈尔滨市工业增加值,[动态区域图元FORMULA]是装备工业行业i的全国增加值,[动态区域图元FORMULA]是全国工业的国内生产总值。”
本实例中的版面分析方法如下:
(1)提取过程:提取本页版式文档的逻辑段落,每个段落包括字符、动态区域对象、静态区域对象,并通过版式文档引擎获得的当前页面基本图元数据,包括字符基本图元、图像基本图元、图形基本图元。
(2)静态区域对象图元收集:收集静态区域对象,并将静态区域对象从待分析基本图元数据中移除。逻辑段落A由一个静态区域对象(图像)组成,所以在本过程,使用图像收集策略收集可以得到目标收集区域内对应的图像基本图元如图4所示。
(3)分析次序确定:确定每个逻辑段落的分析次序。
(4)逻辑段落分析:对本逻辑段落的分析过程如下:
(4.1)字符分析过程:逻辑段落B由多个字符与三个动态区域对象(公式)组成,在本分析过程进行字符过滤如图5;
(4.2)逻辑连接边生成过程。
本过程中生成逻辑连接边,参见图6。从图中可以看到参与分析的字符基本图元只是页面内全部字符基本图元的一个子集并分散在页面的多处位置上,而初始的逻辑连接边数量是很大的。
(4.3)成行分析过程。
在成行分析过程中,会滤除不满足条件的逻辑连接边,并利用首尾相连的逻辑连接边进行多级的聚类成行,并做无效行的检查滤除,完成行分析,参见图7。从图从可以看到完成成行分析后,页面内的自然行以及比较明显的出现在最终行单元结果集当中。
(4.4)成段分析过程。
完成“成行分析”过程后,进行“成段分析”,将符合段落行合并要求的最终行单元进行聚类并合并,得到全部备选的段落单元,见图8。
(4.5)段落结果筛选过程:
在此“段落结果筛选”过程中,主要是通过柔性字符串匹配算法计算备选的段落单元的分析字符串与逻辑段落字符串的匹配程度,得到满足要求的准确匹配和非准确匹配结果,并选择其中更优者作为命中段落单元并滤除命中段落单元中可能存在的未匹配的字符基本图元。
(4.6)动态区域对象图元收集过程。
完成逻辑段落中字符基本图元的分析匹配过程后,通过在逻辑段落中字符与动态区域对象的逻辑关系,按照经验规则推断出三个动态区域对象的收集区域,如第一个动态区域对象可以通过其前面的“增加值,”以及后面的“是哈尔滨”字符基本图元在版面上的位置进行推测,见图9,如:在已知逻辑段落信息中,可以知道处理“增加值”与“是哈尔滨”之间的存在一个动态图元,当完成段落分析筛选后,我们可以知道“值”与“是”这两个字符对应的字符图元在版面上的位置,这样我们可以推测动态图元的收集区域位置在这两个图元之间的区域里,高度宽度参考动态图元的高宽信息。并使用与静态区域对象相同的策略收集位于收集区域内组成动态区域对象的全部基本图元。
(4.7)移除过程:当前逻辑段落分析完成,将当前逻辑段落收集的基本图元从当前页面待分析基本图元数据中移除,按照逻辑段落的分析次序分析下一逻辑段落。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。