用于提取文档结构的方法和装置的制作方法

文档序号:6443037阅读:148来源:国知局
专利名称:用于提取文档结构的方法和装置的制作方法
技术领域
本发明涉及数字排版领域,具体而言,涉及用于提取文档结构的方法和装置。
背景技术
参考文献反映了研究者的研究基础,是前人研究成果的一种表现形式,是对前人研究成果的继承和扩展,也是对前人研究成果的尊重。在各种文件尤其是论文中,经常会标注参考文献。图1示出了带有前导词的单栏的参考文献信息的版面图;图2示出了没有前导词的参考文献信息的版面图;图3示出了多栏的参考文献信息的版面图。如图1-图3所示,这些参考文献信息的格式往往具有一定的规范性,因此对于版式文件的内容信息的提取可以将参考文献信息作为结构数据进行提取,例如,图1中的第1-4行分别一个条目,而第5-6行合并是一个条目。目前,对数字版式文件参考文献的提取,主要是通过规则的方法、或机器学习的方法、或建立模板的方法对元数据进行抽取,再提取参考文献条目。发明人发现,若用户仅仅是为了提取参考文献,通过抽取元数据进行的参考文献的提取方法会造成提取效率的降低。

发明内容
本发明旨在提供一种用于提取文档结构的方法和装置,以解决现有技术效率较低的问题。在本发明的实施例中,提供了一种用于提取文档结构的方法,包括:确定参考文献信息在版式文件中的位置;从版式文件的位置的版式内容中提取关于参考文献信息的条目。在本发明的实施例中,还提供了一种用于提取文档结构的装置,包括:位置模块,用于确定参考文献信息在版式文件中的位置;提取模块,用于从版式文件的位置的版式内容中提取关于参考文献信息的条目。本发明上述实施例的用于提取文档结构的方法和装置因为直接针对版式内容提取参考文献信息的条目,不通过抽取元数据来提取条目,所以克服了现有技术效率较低的问题,提高了处理参考文献信息的效率。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1示出了带有前导词的单栏的参考文献信息的版面图;图2示出了没有前导词的参考文献信息的版面图;图3示出了多栏的参考文献信息的版面图;图4示出了根据本发明实施例的用于提取文档结构的方法的流程图5示出了根据本发明优选实施例的用于提取文档结构的方法的流程图;图6示出了根据本发明优选实施例的在单栏中提取参考文献条目的流程图;图7示出了根据本发明实施例的用于提取文档结构的装置的示意图;图8示出了关键字“参考书籍”不居中的参考文献信息的版面图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。图4示出了根据本发明实施例的用于提取文档结构的方法的流程图,包括:步骤SlO确定参考文献信息在版式文件中的位置;步骤S20,从版式文件的位置的版式内容中提取关于参考文献信息的条目。本实施例的方法不通过抽取元数据,而是直接从版式内容中提取参考文献,提高了提取参考文献的效率。优选地,步骤SlO包括:在版式文件的目录中查找具有关于参考文献信息的关键字的目录项;确定目录项所引用的页码;定位到页码所指引的电子页面为参考文献信息的开始页。现有格式例如HF的版式文件中往往包含目录,在版式文件的目录中查找诸如“参考文献”、“参考书目”、“Reference”等预定义关键字,若查找到则记录其印刷页码,可以再通过计算出目录电子页面和印刷页码的偏移量,从而根据参考文献的电子页码在版式文件中定位到参考文献所在的页面。优选地,定位到页码所指引的电子页面包括:确定目录的电子页面的页码和印刷页码的偏移量;定位到页码加偏移量的电子页面。电子文件不同于纸页文件,电子文件的目录本身也是页面,如果目录共3个页面,那么目录中的项所标注的例如内容第5页,实际上就是第8个页面。本优选实施例通过目录项与正文中提取的章节标题的匹配计算电子页码和印刷页码的偏移,即若匹配成功,则匹配成功的章节标题所在页面的电子页码减去目录条目的印刷页码的差值即为页码偏移。本优选实施例可以提高确定开始页的准确性。优选地,步骤SlO包括:在版式文件的页面中查找具有关于参考文献信息的关键字;确定查找到关键字的页面为参考文献信息的开始页。从目录中搜索关键字,因为搜索的范围较小,所以速度很快。但是有些版式文件不具有目录,因此本优选实施例针对所有的页面来搜索关键字,版面反解时会对版式文件的每一页进行分析,若在版面分析中定位到诸如“参考文献”、“参考书目”、“Reference”等预定义关键字,则记录其所在页面的电子页码。上述两个优选实施例可以结合使用,例如在目录中为定位到参考文献信息的开始页,则直接在在版式文件的页面中查找到开始页。这样既有较高的效率,又能确保查找到参考文献信息的开始页。优选地,步骤S20包括:从开始页开始,确定参考文献信息在版式文件中各个页面中的范围;对于范围内的每个栏,根据栏中行的字体进行分类,从具有最多行数的字体类开始,依次对每个字体类尝试提取条目,直到提取条目成功。参考文献信息往往有特定的版式结构,并且具有特定的排版特征,本优选实施例通过确定参考文献信息的范围和字体等,从而可以不通过抽取元数据,而是直接从版式内容中提取参考文献。优选地,从开始页开始,确定参考文献信息在版式文件中各个页面中的范围包括:1、在开始页属于版心的文本块(又可称为原始块,即各个文字符号)中查找到关键字;2、判断关键字在版面中的位置是否居中,若居中,则设置所述关键字的下边界为所述范围在本页面中的上边界,若不居中(如图8所示),则将版心的上边界作为所述范围在本页面中的上边界;3、从该范围在本页面中的上边界往下查找包含年份的行,设置该行为PreBlock,例如,对于图1,将第一行《影视美学》设置为PreBlock ;4、在本页面中,从PreBlock往下查找包含年份的行,如果在相邻的第A行(优选地为4行)内查找到包含年份的行,则设置该行为NextBlock(例如为《影视批评学》这一行),若PreBlock的下边界与NextBlock的上边界的差值大于这两行文本块的平均字号的C3倍,则将PreBlock的下一行的下边界作为参考文献信息当前的下边界,否则,将NextBlock的下一行的下边界作为参考文献信息当前的下边界;5、设置NextBlock为PreBlock (即《影视批评学》这一行),循环执行步骤4和本步骤5,直到不能在相邻的第A行内查找到包含年份的行或者从PreBlock到本页面的尾行不足A行,设置当前的下边界为该范围在本页面中的下边界,例如,对于图1,当将《电影理论史评》这一行设置为PreBlock时,将不能再找到包含年份的行了,因此参考文献信息的范围的下边界最终落在这一行的下一行的下边界(即“版。”这一行的下边界);6、如果是不能在相邻的第A行内查找到包含年份的行,则确定本页面是该范围的结束页;7、如果是从PreBlock到本页面的尾行不足A行,则对于下一页面查找包含年份的行,如果查找不到包含年份的行,或者相邻的包含年份的行的间距大于行的平均字号的C3倍,第一个包含年份的行的上边界与版心的上边界之间的差值大于行的平均字号的C3倍,则确定上一页是该范围的结束页,否则设置本页面版心的上边界为该范围在本页面中的上边界,然后循环执行步骤3-7。本优选实施例可以确定参考文献信息的范围,确定了范围,即可从中提取关于参考文献信息的条目。优选地,确定参考文献信息的分栏包括:对关键字的下边界下方的各文本块作垂直投影;找出各个相邻投影线之间最多的文本块数maxLine ;若maxLine大于B,则相邻投影线的设置相邻投影线的最大的间距maxSpace为文本块的平均字号的C1倍;若maxLine不大于B且大于C,则设置maxSpace为文本块的平均字号;若maxLine不大于C,则设置maxSpace为文本块的平均字号的C2倍;将间距小于maxSpace减I的相邻投影线删除;如果剩余相邻投影线的数量除以2的结果不小于2,则确定各文本块的排版方式为多栏,否则确定各文本块的排版方式为单栏。分栏的版式结构特点是两栏之间有较宽的列间距,本优选实施例利用投影线来分析列间距,从而可以判断分栏情况。优选地,C3设置为5,C1设置为0.6,C2设置为1.3,A设置为4,B设置为15,C设置为8。这些经验值是发明人在长期的实验中发现的最优值。显然,根据具体应用场景的不同,这些预设值也可以进行调整。图5示出了根据本发明优选实施例的用于提取文档结构的方法的流程图,包括:步骤1、参考文献信息开始页的定位。步骤2、参考文献信息上下边界的定位,包括:(I)判断关键字在版面中的位置是否居中,若居中,则设置所述关键字的下边界为所述范围在本页面中的上边界,若不居中(如图8所示),则将版心的上边界作为所述范围在本页面中的上边界;(2)提取所述范围内的各文本块;(3)将提取的文本块合并成行;(4)查找每一行中带有年份的文本块,按照版面位置关系,定位到年份文本块PreBlock,再定位到与之相邻的年份文本块NextBlock,若PreBlock的下边界与NextBlock的上边界的差值大于C3倍的两行文本块的平均字号,则将PreBlock所在行的下一行的下边界作为参考文献的下边界,否则,将NextBlock所在行的下一行的下边界作为参考文献的下边界。(5)设置NextBlock为PreBlock,循环执行步骤4和5,直到不能在相邻的第A行内查找到包含年份的行。步骤3、分析是否多栏,包括:定位到参考文献所在的页面,获取参考文献的坐标,将位于所述范围内的各文本块进行垂直投影,根据投影获得页面的排版方式。具体方法为:(I)在参考文献信息的开始页,提取属于版心的文本块;(2)文本块坐标的确定:记页面的左上顶点为坐标原点(0,0),向下、向右延伸,根据文本块的最小外接矩形,确定页面文本块的坐标。矩形的左上点坐标记为(Xl,yi),右下点坐标记为(x2,y2),S卩:文本块的左边界记为χι,右边界记为χ2,上边界记为yi,下边界记为
12°(3)检查是否存在分栏现象:提取位于预定义关键字下边界下方的文本块,将文本块进行垂直投影,查看是否存在分栏现象,若存在分栏,则可以根据垂直投影确定分栏的数目,以及每一栏的左右边界。检查分栏的方法为:①对文本块进行垂直投影,即统计各文本块在列方向上的区间范围;②统计每一栏中的行数,找出最多的行数maxLine ;③若maxLine大于15,则设置最大的间距maxSpace为C1倍的文本块的平均字号,否则若maxLine大于8,则设置maxSpace为文本块的平均字号,否则设置maxSpace为C2文本块的平均字号;
④过滤过小的区间间距,即若相邻两列的间距小于maxSpace减1,则将这两列过滤掉;⑤若投影的列数除以2的结果不小于2,则排版方式为多栏。其中,阈值C1设置为0.6,阈值C2设置为1.3,阈值C3设置为5。步骤4、在参考文献信息范围内提取关于参考文献信息的条目。优选地,对每个字体类尝试提取条目包括:将当前的字体类中的行根据行的左边界的对齐位置分类;如果对齐类只有一类,则根据字体类中的行是否具有年份进行分类,若年份类只有一类,则每一行提取为一个条目,若年份类为多个,则将具有年份的年份类中的每一行提取为一个条目;如果对齐类有多类,则依次在每个对齐类中查找预定义的前导词;如果查找到前导词,则将每个具有前导词的行作为一个条目的首行,在与首行的字体相同,且左边界不对齐的对齐类中查找属于首行的所有扩展行,与首行组合成一个条目;如果在对齐类中没有查找到前导词,则从首行开始,定位到第i行,再定位到第j行,j = i+1,若第i行和第j行不在同一类中,但字体相同,且第i行为满行,则将第i行作为一个条目的首行;如果第i行和第j行不满足上述条件,则令i = j,继续执行上述操作,直到定位到一个条目的首行;在与首行的字体相同,且左边界不对齐的对齐类中查找属于首行的所有扩展行,与首行组合成一个条目。值得注意的是,在本发明的优选实施例中,对于参考文献信息是双栏且跨多页的情况,先从开始页的第I栏中提取条目,然后从开始页的第2栏中提取条目;接着从下一页的第I栏中提取条目,然后从该页的第2栏中提取条目;以这样的次序提取关于参考文献信息的条目,直到参考文献信息的范围的结束页。图6示出了根据本发明优选实施例的在单栏中提取参考文献条目的流程图,包括以下步骤:(I)单栏的条目提取①将属于参考文献信息范围内的文本块按行划分。②根据行的字体进行分类。a.统计每一行文本块的字体,将具有最多文字的字体作为行的字体,将该字体的字号的平均值作为行的字号。b.将字体相同的行聚为一类FontNameClass。③条目提取。若字体的类别FontNameClass的数目为1,则进行下述定位条目首行的操作,否贝U,若字体的类别FontNameClass的数目大于1,则分别统计每一类中的行数,对行数最多的类进行下述定位条目首行的操作,直到定位到条目的首行。定位条目首行的方法为如下所述:a.将类中的行根据行的左边界是否对齐的规则,将行聚集成各类AlignClass。
b.若类AlignClass的数目为1,则在每一行中查找年份,诸如19#,20**等,按照是否具有年份进行分类。若分类的数目为1,则按行提取参考文献的条目,即:每一行为一个条目。若分类的数目大于1,则将具有年份的类中的行提取为参考文献条目。c.若类AlignClass的数目大于I,则依次在各类AlignClass中查找前导词,诸如
1、(I)、[I]等,若定位到前导词,则根据是否具有前导词进行分类。将前导词的所在的类中的每一行作为每个条目的首行。d.若类AlignClass的数目大于1,且类中没有前导词,则在各类中的行按照版面的位置关系进行排序,即:按照行的上边界进行从小到大的排序。定位到第i行(i从O开始),再定位到第j行(j = i+1),若同时满足下述条件I和条件2,则定位到了条目的首行;否则,继续定位到第i = j行,再定位到第j = i+1行,查看是否同时满足下述条件I和条件2,直到定位到了条目的首行。条件1:第i行和第j行不在同一类中,但字体相同。条件2:第i行为满行。e.条目提取。根据所有行的位置关系,在与条目首行的字体相同,且左边界不对齐的类中查找属于条目首行的扩展行,直到查找到属于条目首行的所有扩展行,再将其组合成一个条目。(2)多栏的条目提取①将属于参考文献的文本块按栏划分;②将相同栏的文本块组合成行;③每一栏的条目提取步骤,与单栏的条目提取方法相同。需要注意,对于单栏的参考文献,“满行”是指行的右边界和版心的右边界的差值不大于I个文字的字号。对于多栏的参考文献,“满行”是指行的右边界和分栏的右边界的差值不大于I个文字的字号。将文本块组合成行的方法为:将文本块按照版面输出的顺序进行排序;依次计算前后相邻的两个文本块的水平基线的差值是否小于0.95倍的文本块的高度,若是,则为同行的文本块,否则为不同行。基线、字体为文本块的固有属性。另外,因为参考文献信息的范围有可能跨多个页面时,所以需要确定该范围的结束页。对于开始页之后的后续页面参考文献范围的定位,将参考文献信息范围的上边界修改为版心的上边界;在查找下边界时,若满足下述条件之一,则此页的前一页面为参考文献的结束页:未定位到包含年份的行;两位置相邻的年份文本块的间距大于行的平均字号的C3倍;第一个年份的文本块的上边界与版心的上边界之间的差值大于C3倍的行的平均字号。图7示出了根据本发明实施例的用于提取文档结构的装置的示意图,包括:
位置模块10,用于确定参考文献信息在版式文件中的位置;提取模块20,用于从版式文件的位置的版式内容中提取关于参考文献信息的条目。本实施例的装置不通过抽取元数据,而是直接从版式内容中提取参考文献,提高了提取参考文献的效率。优选地,提取模块20包括:范围模块,用于确定参考文献信息在版式文件中的范围;条目模块,用于对于范围内的每个栏,根据栏中行的字体进行分类,从具有最多行数的字体类开始,依次对每个字体类尝试提取条目,直到提取条目成功。从以上的描述中可以看出,本发明上述的实施例不通过抽取元数据,就能提取参考文献,提闻了提取参考文献信息的效率。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种用于提取文档结构的方法,其特征在于,包括: 确定参考文献信息在版式文件中的位置; 从所述版式文件的所述位置的版式内容中提取关于所述参考文献信息的条目。
2.根据权利要求1所述的方法,其特征在于,确定参考文献信息在版式文件中的位置包括: 在所述版式文件的目录中查找具有关于参考文献信息的关键字的目录项; 确定所述目录项所引用的页码; 定位到所述页码所指引的电子页面为所述参考文献信息的开始页。
3.根据权利要求2所述的方法,其特征在于,定位到所述页码所指引的电子页面包括: 确定所述目录的电子 页面的页码和印刷页码的偏移量; 定位到所述页码加所述偏移量的电子页面。
4.根据权利要求1所述的方法,其特征在于,确定参考文献信息在版式文件中的位置包括: 在所述版式文件的页面中查找具有关于参考文献信息的关键字; 确定查找到所述关键字的页面为所述参考文献信息的开始页。
5.根据权利要求1所述的方法,其特征在于,从所述版式文件的所述位置的版式内容中提取关于所述参考文献信息的条目包括: 从所述开始页开始,确定所述参考文献信息在所述版式文件中各个页面中的范围; 对于所述范围内的每个栏,根据栏中行的字体进行分类,从具有最多行数的字体类开始,依次对每个字体类尝试提取条目,直到提取条目成功。
6.根据权利要求5所述的方法,其特征在于,从所述开始页开始,确定所述参考文献信息在所述版式文件中各个页面中的范围包括: 1)在所述开始页属于版心的文本块中查找到所述关键字; 2)判断所述关键字在本页面中的位置是否居中,若居中,则设置所述关键字的下边界为所述范围在本页面中的上边界,若不居中,则将版心的上边界作为所述范围在本页面中的上边界; 3)从所述范围在本页面中的上边界往下查找包含年份的行,设置该行为PreBlock; 4)在本页面中,从PreBlock往下查找包含年份的行,如果在相邻的第A行内查找到包含年份的行,则设置该行为NextBlock,若PreBlock的下边界与NextBlock的上边界的差值大于这两行文本块的平均字号的C3倍,则将PreBlock的下一行的下边界作为所述参考文献信息当前的下边界,否则,将NextBlock的下一行的下边界作为所述参考文献信息当前的下边界; 5)设置NextBlock为PreBlock,循环执行步骤4和本步骤5,直到不能在相邻的第A行内查找到包含年份的行或者从PreBlock到本页面的尾行不足A行,设置所述当前的下边界为所述范围在本页面中的下边界; 6)如果是不能在相邻的第A行内查找到包含年份的行,则确定本页面是所述范围的结束页; 7)如果是从PreBlock到本页面的尾行不足A行,则对于下一页面查找包含年份的行,如果查找不到包含年份的行,或者相邻的包含年份的行的间距大于行的平均字号的C3倍,第一个包含年份的行的上边界与版心的上边界之间的差值大于行的平均字号的C3倍,则确定上一页是所述范围的结束页,否则设置本页面版心的上边界为所述范围在本页面中的上边界,然后循环执行步骤3-7。
7.根据权利要求6所述的方法,其特征在于,确定所述参考文献信息的分栏包括: 对所述范围内的各所述文本块作垂直投影; 找出各个相邻投影线之间最多的文本块数maxLine ; 若maxLine大于B,则相邻投影线的设置相邻投影线的最大的间距maxSpace为所述文本块的平均字号的C1倍;若maxLine不大于B且大于C,则设置maxSpace为所述文本块的平均字号;若maxLine不大于C,则设置maxSpace为所述文本块的平均字号的C2倍; 将间距小于maxSpace减I的相邻投影线删除; 如果剩余相邻投影线的数量除以2的结果不小于2,则确定各所述文本块的排版方式为多栏,否则确定各所述文本块的排版方式为单栏。
8.根据权利要求7任一项所述的方法,其特征在于,C3设置为5,C1设置为0.6,C2设置为1.3, A设置为4, B设置为15, C设置为8。
9.根据权利要求5所述的方法,其特征在于,对每个字体类尝试提取条目包括: 将当前的所述字体类中的行根据行的左边界的对齐位置分类; 如果所述对齐类只有一类,则根据所述字体类中的行是否具有年份进行分类,若所述年份类只有一类,则每一行提取为一个所述条目,若所述年份类为多个,则将具有年份的所述年份类中的每一行提取为一个所述条目; 如果所述对齐类有多类,则依次在每个所述对齐类中查找预定义的前导词; 如果查找到所述前导词,则将每个具有所述前导词的行作为一个所述条目的首行,在与所述首行的字体相同,且左边界不对齐的所述对齐类中查找属于所述首行的所有扩展行,与所述首行组合成一个所述条目; 如果在所述对齐类中没有查找到所述前导词,则从首行开始,定位到第i行,再定位到第j行,j = i+1,若第i行和第j行不在同一类中,但字体相同,且第i行为满行,则将第i行作为一个所述条目的首行;如果第i行和第j行不满足上述条件,则令i = j,继续执行上述操作,直到定位到一个所述条目的首行;在与所述首行的字体相同,且左边界不对齐的所述对齐类中查找属于所述首行的所有扩展行,与所述首行组合成一个所述条目。
10.一种用于提取文档结构的装置,其特征在于,包括: 位置模块,用于确定参考文献信息在版式文件中的位置; 提取模块,用于从所述版式文件的所述位置的版式内容中提取关于所述参考文献信息的条目。
全文摘要
本发明提供了一种用于提取文档结构的方法,包括确定参考文献信息在版式文件中的位置;从版式文件的位置的版式内容中提取关于参考文献信息的条目。本发明还提供了一种用于提取文档结构的装置,包括位置模块,用于确定参考文献信息在版式文件中的位置;提取模块,用于从版式文件的位置的版式内容中提取关于参考文献信息的条目。本发明提高了处理参考文献信息的效率。
文档编号G06F17/22GK103176956SQ201110438858
公开日2013年6月26日 申请日期2011年12月21日 优先权日2011年12月21日
发明者董宁, 徐剑波, 黄文娟 申请人:北大方正集团有限公司, 北京方正阿帕比技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1