用于提取文档结构的方法和装置转让专利

申请号 : CN201010578135.8

文献号 : CN102486787A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曾建英余忠华缪萍

申请人 : 北大方正集团有限公司北京北大方正电子有限公司

摘要 :

本发明提供了一种用于提取文档结构的方法,包括:获取辞书的段;使用树规则匹配段,以定位到段内的各个项;提取所匹配的各个项的内容,以组织成关于段的结构化数据。本发明还提供了一种用于提取文档结构的装置,包括:获取模块,用于获取辞书的段;匹配模块,使用树规则匹配段,以定位到段内的各个项;提取模块,用于提取所匹配的各个项的内容,以组织成关于段的结构化数据。本发明可以将辞书段高效地转换为结构化数据。

权利要求 :

1.一种用于提取文档结构的方法,其特征在于,包括:获取辞书的段;

使用树规则匹配所述段,以定位到所述段内的各个项;

提取所匹配的各个项的内容,以组织成关于所述段的结构化数据。

2.根据权利要求1所述的方法,其特征在于,还包括:分析所述辞书关于条目的体例;

创建所述树规则,所述树规则包括多个子规则,每个所述子规则包括所述体例关于条目中的一个项的定义,各个所述子规则相互之间的从属关系和兄弟关系对应于所述条目中各个项之间的关系,所述项的定义包括:项的正则表达式、文本格式和/或排版效果。

3.根据权利要求2所述的方法,其特征在于,采用二分迭代法以使用所述树规则匹配所述段。

4.根据权利要求3所述的方法,其特征在于,采用二分迭代法以使用所述树规则匹配所述段包括:从所述段的起始位置开始,按照所述树规则中各个子规则的兄弟顺序,逐个使用各个子规则匹配所述段,其中,如果当前子规则匹配成功,则对匹配成功的内容继续使用所述匹配成功的子规则的孩子子规则进行匹配,其中,按照各个孩子子规则的兄弟顺序继续执行匹配,直到匹配到最底层的孩子规则;

如果当前子规则匹配不成功,则使用当前子规则的下一个兄弟子规则继续执行匹配,直到匹配到最后一个子规则。

5.根据权利要求2所述的方法,其特征在于,所述树规则包括:词条、词头、音标、释义、词性、义项、语体、义、例证、例和比喻,其中,词头、音标和释义是词条的孩子子规则,词性、义项和比喻是释义的孩子子规则,语体、义和例证是义项的孩子子规则,例是例证的孩子子规则,词头、音标和释义相互之间是兄弟子规则,词性、义项和比喻相互之间是兄弟子规则,语体、义和例证相互之间是兄弟子规则。

6.根据权利要求5所述的方法,其特征在于,使用树规则匹配所述段包括:(a)使用词条的定义匹配所述段,如果所述段具有所述词条的排版效果,则匹配成功;

(b)使用词头的定义匹配所述词条匹配成功的段;

(c)在匹配不成功的内容中,依次使用音标的定义和释义的定义进行匹配;

(d)在释义的定义匹配成功的内容中,依次使用词性的定义、义项的定义和比喻的定义进行匹配;

(e)在义项的定义匹配成功的内容中,依次使用语体的定义、义的定义和例证的定义进行匹配;

(f)在例证的定义匹配成功的内容中,使用例的定义进行匹配。

7.根据权利要求1所述的方法,其特征在于,使用XML文件保存所述树规则。

8.一种用于提取文档结构的装置,其特征在于,包括:获取模块,用于获取辞书的段;

匹配模块,使用树规则匹配所述段,以定位到所述段内的各个项;

提取模块,用于提取所匹配的各个项的内容,以组织成关于所述段的结构化数据。

9.根据权利要求8所述的装置,其特征在于,还包括:分析模块,用于分析所述辞书关于条目的体例;

创建模块,用于创建所述树规则,所述树规则包括多个子规则,每个所述子规则包括所述体例关于条目中的一个项的定义,各个所述子规则相互之间的从属关系和兄弟关系对应于所述条目中各个项之间的关系,所述项的定义包括:项的正则表达式、文本格式和/或排版效果。

10.根据权利要求9所述的装置,其特征在于,所述匹配模块采用二分迭代法以使用所述树规则匹配所述段。

说明书 :

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

技术领域

[0001] 本发明涉及印刷前计算机排版领域,具体而言,涉及用于提取文档结构的方法和装置。

背景技术

[0002] 目前,文档内容信息提取主要分为两种提取方式:一种是简单文本信息提取;另外一种是按照文档段落样式结构进行提取。前者只是简单地对符合匹配规则的信息进行文本提取,这些信息只反映了规则匹配基本要求,而不能反映这些命中信息在文档中所处的位置或结构。后者则可以反映命中信息在文档中所处的结构层次。一篇普通文档结构一般包括篇-章-节-段,这些主要通过识别文档中的逻辑元素,如标题、作者、章、节、段落、页码、图表标题等来完成,目前按照文档结构提取信息的方式就是按照这四种结构划分提取粒度,进行不同层次内容的规则匹配。这样做的好处是提取过程清晰,规则匹配效率高,提高了规则匹配命中率。
[0003] 但是,当提取粒度达到段层次时,提取方式转化为使用普通文本信息提取的提取方式,虽然在大多数情况下,在段这个粒度按照这个方式提取可以满足要求,但是对于辞书(例如字典、词典、百科全书)这种特殊的文档结构,是以条目为主体,全面系统地介绍知识,这类书的重要信息都囊括在段内,段内一般存在词头、音标、例句等结构。如图1所示,是辞书的一种典型词条,包含词头、音标、多个释义和例句等。该词条是辞书中的一个段落,现有技术用普通文本信息提取这样的规则匹配时总不免导致盲目的暴力匹配情况,在效率上不可取。

发明内容

[0004] 本发明旨在提供一种用于提取文档结构的方法和装置,以解决现有技术将辞书段匹配为普通文本效率较低的问题。
[0005] 在本发明的实施例中,提供了一种用于提取文档结构的方法,包括:获取辞书的段;使用树规则匹配段,以定位到段内的各个项;提取所匹配的各个项的内容,以组织成关于段的结构化数据。
[0006] 在本发明的实施例中,提供了一种用于提取文档结构的装置,包括:获取模块,用于获取辞书的段;匹配模块,使用树规则匹配段,以定位到段内的各个项;提取模块,用于提取所匹配的各个项的内容,以组织成关于段的结构化数据。
[0007] 本发明上述实施例的用于提取文档结构的方法和装置因为使用树规则匹配辞书段,所以克服了现有技术将辞书段匹配为普通文本效率较低的问题,达到了将辞书段高效地转换为结构化数据的效果。

附图说明

[0008] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0009] 图1示出了一个辞书段;
[0010] 图2示出了根据本发明实施例的用于提取文档结构的方法的流程图;
[0011] 图3示出了根据本发明优选实施例的二分迭代匹配最小单元树的示意图;
[0012] 图4示出了根据本发明优选实施例的二分迭代法进行匹配的流程图;
[0013] 图5示出了根据本发明实施例的用于提取文档结构的装置的示意图。

具体实施方式

[0014] 下面将参考附图并结合实施例,来详细说明本发明。
[0015] 图2示出了根据本发明实施例的用于提取文档结构的方法的流程图,包括:
[0016] 步骤S10,获取辞书的段;
[0017] 步骤S20,使用树规则匹配段,以定位到段内的各个项;
[0018] 步骤S30,提取所匹配的各个项的内容,以组织成关于段的结构化数据。
[0019] 现有技术用普通文本信息提取这样的规则匹配时总不免导致盲目的暴力匹配情况,而本实施例中采用规则树来匹配辞书段,所以提高了匹配辞书段的效率,从而可以高效率地将辞书段转换为结构化数据。
[0020] 优选地,本方法还包括:分析辞书关于条目的体例;创建树规则,树规则包括多个子规则,每个子规则包括体例关于条目中的一个项的定义,各个子规则相互之间的从属关系和兄弟关系对应于条目中各个项之间的关系,项的定义包括:项的正则表达式、文本格式和/或排版效果。
[0021] 规则(条件)可以是文本格式,也可以是正则表达式包括:文本关键字(词)、特殊符号等,还可以是排版效果;对于满足规则(条件)的内容可能是提取特征的开始,也可能是提取特征的结尾,根据提取特征位置关系设置,规则(条件)设置有是否包含该内容、是否重复等选项;对象化的内容资源没有任何形式的硬性规定,可以是内存中一块对象数据,也可以从外部文件中读取。
[0022] 体例又可称之为凡例,例如经过分析后,某个字典的凡例总结如下:条目释义中,属于方言的标注<方>,属于古代用法的标注<古>,属于书面用语的标注<书>,属于口语用法的标注<口>,属于外来词的标注(外),属于引申义的标注(引)。观察图1可以看出,辞书段与普通的文字段有较大的区别。辞书段的内容遵守一定的体例,辞书的各个段落通常在内容上、排版效果上是相类似的。本优选实施例根据这些段落的体例来创建树规则,从而可以很好地适应辞书段的特点,有利于提取结构化内容。
[0023] 优选地,采用二分迭代法以使用树规则匹配段。二分迭代法比较简单,很容易通过计算机编程实现。
[0024] 优选地,采用二分迭代法以使用树规则匹配段包括:从段的起始位置开始,按照树规则中各个子规则的兄弟顺序,逐个使用各个子规则匹配段,其中,如果当前子规则匹配成功,则对匹配成功的内容继续使用匹配成功的子规则的孩子子规则进行匹配,其中,按照各个孩子子规则的兄弟顺序继续执行匹配,直到匹配到最底层的孩子规则;如果当前子规则匹配不成功,则使用当前子规则的下一个兄弟子规则继续执行匹配,直到匹配到最后一个子规则。
[0025] 匹配规则是自定义的,规则的结构化体现在规则的上下级细化上,以树形结构串联,下级规则是对上级规则的补充,即下级规则是对上级规则匹配后结果的再提取。
[0026] 图3示出了根据本发明优选实施例的二分迭代匹配最小单元树的示意图,匹配的过程是一个成功与不成功的动态迭代过程,具体体现可以用二分迭代匹配树(如图3)描述,其中S为匹配资源,R为匹配规则,M1为R匹配结果,A2为R匹配不成功的结果,RC为R下级规则,RB为R平级右兄弟规则。
[0027] 图4示出了根据本发明优选实施例的二分迭代法进行匹配的流程图。匹配提取项内容,可以理解为对辞书段进行拆分,在计算机编程上,上述过程描述如下:
[0028] (1)用R规则(即树规则)匹配待匹配的对象化内容资源块A(即辞书段);
[0029] (2)判断是否匹配成功;
[0030] (4)若匹配不成功,判断规则R的相邻右兄弟规则RB是否存在;
[0031] (5)如果(1)中规则R的相邻右兄弟规则RB存在,则把规则更新到相邻右兄弟规则RB,待匹配的对象化内容资源A不变,然后回到步骤(1);
[0032] (6)如果(1)中规则的相邻右兄弟规则RB不存在,则待匹配的对象化内容资源的拆分就到此结束;
[0033] (3)若匹配成功,把(1)中待匹配的对象化内容资源块分割成两块,一块是匹配到的内容资源块M1和匹配不成功的内容资源块A2;将(1)中的规则分成两个区域:孩子规则集RC和相邻右兄弟规则RB;
[0034] (7)判断孩子规则集RC是否存在;
[0035] (8)如果存在,将(3)中分割得到的M1对象内容资源进行进一步提取,赋值给A,将孩子规则集RC赋值给R,用(3)中产生的孩子规则集RC进行匹配拆分,此时进入到步骤(1)中;
[0036] (9)如果孩子规则集RC不存在,则对M1的拆分就结束了;
[0037] (10)判断(3)中产生的对象化内容资源A2、相邻右兄弟RB是否存在;
[0038] (11)如果存在,将(3)中分割得到的A2对象内容资源进行进一步提取,赋值给A,将相邻右兄弟规则RB赋值给R,用(3)中产生的相邻右兄弟规则RB进行匹配拆分,此时进入到步骤(1)中;
[0039] (12)如果对象化内容资源A2、相邻右兄弟RB不存在,则A2的拆分结束。
[0040] 上述步骤中,分割产生新的内容保留原有内容的任何信息,新内容也是对象化内容,记录新内容在原始内容中的开始和结束位置。为后续分割块提供方便,也为提取到标签定位提高效率,免去因查找引起定位不准确、影响效率等问题。对新的对象化的内容资源进一步分割提取。段内识别是采取使用规则(条件)来对整个对象化内容资源进行顺序分割,在一段范围内提取多个标签。
[0041] 优选地,树规则包括:词条、词头、音标、释义、词性、义项、语体、义、例证、例和比喻,其中,词头、音标和释义是词条的孩子子规则,词性、义项和比喻是释义的孩子子规则,语体、义和例证是义项的孩子子规则,例是例证的孩子子规则,词头、音标和释义相互之间是兄弟子规则,词性、义项和比喻相互之间是兄弟子规则,语体、义和例证相互之间是兄弟子规则。该树规则显然可以很好地适用于词典类辞书。常见的辞书还有百科全书等,本发明显然不限定于词典类的树规则,还可以针对其他辞书创建相应的树规则。
[0042] 优选地,使用上述的树规则匹配段包括:(a)使用词条的定义匹配段,如果段具有词条的排版效果,则匹配成功;(b)使用词头的定义匹配词条匹配成功的段;(c)在匹配不成功的内容中,依次使用音标的定义和释义的定义进行匹配;(d)在释义的定义匹配成功的内容中,依次使用词性的定义、义项的定义和比喻的定义进行匹配;(e)在义项的定义匹配成功的内容中,依次使用语体的定义、义的定义和例证的定义进行匹配;(f)在例证的定义匹配成功的内容中,使用例的定义进行匹配。
[0043] 对于图1的辞书段,该优选实施例具体步骤包括:
[0044] (a)先提取词条,不同词条间具有相同字体信息;(b)接着在匹配不成功的对象化内容资源中提取词头,词头具有相同的字体信息,是提取特征的开始;(c)接着在匹配不成功的对象化内容资源中提取音标,音标具有相同的文本格式;(d)接着在匹配不成功的对象化内容资源中提取释义,释义分成若干点进行阐述,此时通过序号进行重复分割匹配,该步骤使用二分迭代匹配树进行匹配,匹配成功的内容资源块用孩子规则进行匹配,匹配不成功就用兄弟规则继续匹配;(e)在(d)中拆分得到释义对象化内容中进一步拆分词性、义项、比喻;(f)在(e)中拆分得到义项中进一步拆分语体、义、例证;
(g)在(f)中拆分得到例证中有多个例子时进一步分割拆分例。因此建立对象化内容的分割和提取条件及其与结构化关键字的对应关系、提取规则间的层级关系可以用一个xml文件表示。
[0045] 按照提取的内容不断细化反解的原则,先对对象化内容资源进行拆分、标志,形成片段化的内容资源,再对片段化的内容资源进一步分割提取。系统自动提取内容形成结构化内容。提取的结构化内容符合XML标准规范。具体如下:
[0046] <根节点>
[0047] <字体规则字体名=″黑体″字号=″14.00″提取为=″词条″/>
[0048] <字体规则字体名=″黑体″字号=″14.00″内容开始=″true″包含内容=″true″提取为=″词头″/>
[0049] <文本样式规则表达式=″音标样式″包含内容=″true″提取为=″音标″/>
[0050] <文本规则 间隔分割块″包含内容=″false″重复=″true″提取为=″释义″/>
[0051] <文本规则 包含内容=″true″提取为=″″/>
[0052] <文本规则表达式=″所有词性的范围″内容的开始=″true″包含内容=″true″提取为=″词性″/>
[0053] <文本规则表达式=″开始到◇间的内容或到结尾分割″包含内容=″true″提取为=″义项″/>
[0054] <文本规则表达式=″开始出现在<>间的内容″包含内容=″true″提取为=″语体″/>
[0055] <文本规则表达式=″[::]前的内容或到结尾″包含内容=″true″提取为=″义″/>
[0056] <文本规则表达式=″[::]到结尾的内容″包含内容=″true″提取为=″例证″/>
[0057] <文本规则表达式=″过滤::″包含内容=″true″提取为=″″/>[0058] <文本规则表达式=″|间隔分割块″包含内容=″true″重复=″true″提取为=″例″/>
[0059] <匹配到段尾表达式=″只有一个例内容到结束″包含内容=″true″提取为=″例″/>
[0060] <文本规则表达式=″◇到结尾的内容″包含内容=″true″提取为=″比喻″/>
[0061] <匹配到段尾表达式=″当前位置段尾内容″包含内容=″true″提取为=″释义″/>
[0062] <文本规则表达式=″所有词性的范围″内容的开始=″true″包含内容=″true″提取为=″词性″/>
[0063] <文本规则表达式=″开始到◇间的内容或到结尾分割″包含内容=″true″提取为=″义项″/>
[0064] <文本规则表达式=″开始出现在<>间的内容″包含内容=″true″提取为=″语体″/>
[0065] <文本规则表达式=″[::]前的内容或到结尾″包含内容=″true″提取为=″义″/>
[0066] <文本规则表达式=″[::]到结尾的内容″包含内容=″true″提取为=″例证″/>
[0067] <文本规则表达式=″过滤::″包含内容=″true″提取为=″″/>[0068] <文本规则表达式=″|间隔分割块″包含内容=″true″重复=″true″提取为=″例″/>
[0069] <匹配到段尾表达式=″只有一个例内容到结束″包含内容=″true″提取为=″例″/>
[0070]
[0071] 优选地,使用XML文件保存树规则。XML是通用的结构化语言,适合处理该树规则。以图1为例:词头、音标、词性、每一个释义、义项,例句、语体等都希望能体现出来,可以把希望拆分的结果用一个xml文件表示如下:
[0072]
[0073] <词条>
[0074] <词头>夺
[0075] <音标>du ó
[0076] <释义>
[0077] <词性>
[0078] <义项>
[0079] <义>强取;抢
[0080] <例证>:<例>掠~|
[0081] <例>巧取豪~|
[0082] <例>从歹徒手里~过凶器
[0083]
[0084]
[0085] <比喻>◇强词~理。
[0086]
[0087] <释义>
[0088] <词性>
[0089] <义项>
[0090] <义>争先取到
[0091] <例证>:<例>~冠|
[0092] <例>~红旗。
[0093]
[0094]
[0095]
[0096] <释义>
[0097] <义项>
[0098] <义>胜过;压倒
[0099] <例证>:<例>巧~天工|
[0100] <例>先声~人。
[0101]
[0102]
[0103]
[0104] <释义>
[0105] <义项>
[0106] <义>使失去
[0107] <例证>:<例>剥~。
[0108]
[0109]
[0110]
[0111] <释义>
[0112] <义项>
[0113] <语体><书>
[0114] <义>失去
[0115] <例证>:<例>勿~农时。
[0116]
[0117]
[0118]
[0119]
[0120]
[0121] 图5示出了根据本发明实施例的用于提取文档结构的装置的示意图,包括:
[0122] 获取模块10,用于获取辞书的段;
[0123] 匹配模块20,使用树规则匹配段,以定位到段内的各个项;
[0124] 提取模块30,用于提取所匹配的各个项的内容,以组织成关于段的结构化数据。
[0125] 本装置可以高效率地将辞书段转换为结构化数据。
[0126] 优选地,本装置还包括:分析模块,用于分析辞书关于条目的体例;创建模块,用于创建树规则,树规则包括多个子规则,每个子规则包括体例关于条目中的一个项的定义,各个子规则相互之间的从属关系和兄弟关系对应于条目中各个项之间的关系,项的定义包括:项的正则表达式、文本格式和/或排版效果。本优选实施例可以很好地适应辞书段的特点,有利于提取结构化内容。
[0127] 优选地,匹配模块采用二分迭代法以使用树规则匹配段。二分迭代法比较简单,很容易通过计算机编程实现。
[0128] 从以上的描述中可以看出,在本发明中,辞书段已经不是最小的提取粒度,本发明在段内重新划分样式结构,并按照这些结构来划分提取粒度,从而可以获得有意义的信息。本发明能够有效利用规则细化方式对匹配对象辞书段进行不同程度地提取,提高了提取命中率,可以满足高效,准确的辞书段内内容提取需求。
[0129] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0130] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。