面向机器学习的流式文档逻辑结构标注方法研究

2019-10-21 02:01田英爱
中文信息学报 2019年9期
关键词:流式语料章节

刘 倩,李 宁,田英爱

(北京信息科技大学 计算机学院,北京 100101)

0 引言

随着电子文档数量日益增加以及传播日益广泛,人们希望计算机能够自动理解文档。计算机对文档的理解包括对文本内容的理解和对文档逻辑结构的理解,两者相辅相成,前者可用于信息抽取,后者可用于数字出版、结构化检索等研究。目前对文本内容的研究较多,对文档结构的研究则多面向版式文档。流式文档的结构理解与版式文档结构理解的目的不同。前者由于其自身可编辑的特点,结构理解的结果可用于文档检查优化、自动排版等目的。后者主要分析正规出版物版面区块的性质和关联顺序,用于版面重组和阅读。由于流式文档格式的复杂性、排版风格的差异性等因素导致计算机自动理解其结构较为困难。

目前基于流式文档排版样式的结构理解成果较少。流式文档中除文本之外,还包含丰富的排版样式(例如,字体、字号、对齐方式等)以及编辑语义(例如编号、大纲级别、段落、题注等),如果能够充分利用这些信息,文档结构的识别结果会更加准确[1]。这种方法在文本内容特征之上增加了流式文档中特有的编辑对象特征和样式特征等,以辅助判断文档结构,近年取得了较好的效果[2-6]。

文档逻辑结构识别中用得最多的是基于规则的方法,它根据特定类型文档来制定匹配规则,适用范围较为有限[5-7]。此外是基于机器学习的方法,以往主要应用于版式文档结构理解[8-9],近年来机器学习方法也逐渐应用于流式文档的逻辑结构识别。然而由于流式文档格式复杂、标注困难,过去积累的成果较少,机器学习方法用于流式文档结构理解面临语料标注成本过高,语料库稀缺的问题。本文以面向机器学习的流式文档逻辑结构识别为目标,尝试使用半自动化方法提高语料标注效率,为篇章结构分析、信息抽取、信息检索以及文档检查优化等应用打下基础。

1 相关研究

目前尚未见到针对文档逻辑结构的语料标注研究,常见的语料标注技术主要针对自然语言处理,对文本信息所表达的语义、命名实体、事件信息等进行标注[10-12]。而文档逻辑结构标注需要以整篇文档为标注对象,明确文档中各部分内容之间的逻辑关系。文档语料库的构建,涉及文档逻辑结构描述、文档编辑语义特征提取、语料标注方法等关键技术。

在文档逻辑结构描述方面,需要参考相关的元数据标准。JATS[13]是一种基于XML的期刊论文数据存储和交换元数据规范,对其他类型的文档描述能力不强。DocBook[14]则是一种关于书籍的元数据结构规范,其元素颗粒度较细,不宜直接用于文档逻辑结构标注。其他的元数据规范多少都存在类似的问题。在实际中需要根据应用需求选取合适的颗粒度,并对其进行裁剪和扩展。

在特征提取方面,以往研究最多的是文本内容特征,例如,文献[15]分析了学术报告的标题内容写作规律,采用决策树识别文档逻辑结构。近几年一些研究结合排版样式来识别文档的逻辑结构,例如,文献[5]将文档样式特征纳入特征向量,使用VSM模型来识别文档逻辑结构。文献[2]使用OCR技术从PDF文档中分析出文字的字号、对齐方式等样式信息,将其与纯文本特征相结合来识别学术论文的逻辑结构,然而从版式文档中抽取特征的过程比较复杂,特征值较流式文档也有一定误差。

在语料标注方法方面,由于流式文档格式复杂,无法使用文本形式的标注方法,大多数自然语言研究中的标注方法不适于此。文献[16]结合文档内容与结构信息,从带有结构信息标注的学术期刊语料库中提取文章关键词,但没有说明语料标注方法。文献[17]提出了一种Word文档XML结构化标记方法,以自定义样式的形式标注文档逻辑结构,但该方法的标注结果难以实现机器读取,也破坏了原始文档的排版样式。文献[18]提出了一种两段式的HTML文档语义标注框架: 第一阶段解析HTML文档,自动抽取结构化信息;第二阶段指定实例与词汇间的映射关系,并生成标注,降低了人工标注的工作量,但是HTML格式过于简单,该方法难以用于办公软件生成的复杂流式文档。

综上,现有研究不能满足基于机器学习方法的流式文档逻辑结构识别对标注语料数据的需求。针对该问题,本文首先构建描述流式文档逻辑结构的元数据标注体系,提取文档编辑语义特征,构造结构标注树模型;其次设计一种三段式的半自动化标注方法;最后通过实验证明本文方法在提高标注效率与标注准确率方面的成效。

流式文档格式包括DOC、DOCX/OOXML、ODF、HTML等。本文选取目前使用最广泛的DOCX/OOXML格式文档为研究对象。对于其他格式的流式文档,本文的理论方法也同样适用。

2 流式文档逻辑结构标注体系

流式文档是使用流式布局对文档内容进行灌排的一种文档存储格式,微软的DOCX/OOXML格式即典型代表。流式文档可看作是有限的段落序列,不同段落在整篇文档中表达着不同的文档语义。本文将描述文档语义的数据抽象为文档元数据,如文章题目、摘要、作者、各级标题和正文段落等。文档逻辑结构描述文档元数据之间的层次关系。在一篇经过排版的流式文档中,可以结合文档内容与排版样式等特征来理解文档逻辑结构。因此流式文档逻辑结构标注就是明确文档逻辑结构并将之与文档特征相关联,最终生成标注语料的过程。

标注体系的建立是语料标注前的必备工作。首先要确定颗粒度适合的文档元数据,并构造较为通用的文档逻辑结构描述模式(schema);其次要深入分析流式文档排版规律,归纳出可用于文档逻辑结构识别的文档编辑语义特征;最后设计文档逻辑结构标注模型,并确定语料编码方式。

2.1 文档逻辑结构

流式文档类型多样,根据应用领域可分为学术论文、学位论文、专利、标准、著作、法律条文、新闻、杂志和一般文件等。为不同类型文档分别确立文档逻辑结构将带来大量的重复工作,同时还导致标注语料泛化程度过低。标注体系的确立与语料加工是语料库建设中的重点,也较为耗时。本文采用“积木法”[19]研究文档逻辑结构标注体系,按照文档类型划分语料数据,首先研究学术论文类文档逻辑结构,未来再将其扩展至其他文档类型,这样能快速满足最重要的应用需求。因此,在确定学术论文逻辑结构时,应使其尽可能通用且易于扩展。另外,对文档逻辑结构的描述要选取适合的颗粒度,若颗粒度过细,会导致逻辑结构过于复杂,给标注带来困难;若颗粒度过粗,会导致特征难以提取,或标注结果无法使用。

DocBook体系庞大,拥有超过 400 个元素,能对书籍或类似书籍的文档结构进行细粒度的规范化描述,其结构适用于大多数类型的文档。基于DocBook健壮的体系结构,若未来延伸文档语料库应用领域,或进行更深入细致研究时,无论在文档类型还是元数据颗粒度方面都能进行扩展。

综上所述,本文选取DocBook架构作为文档逻辑结构标注体系的理论基础,结合文档逻辑结构识别的应用需求对其进行剪裁,并选取合适的元数据颗粒度,确定了期刊论文的逻辑结构,如图1所示(省略了底层细节)。一篇期刊论文首先包括论文题目、作者信息、摘要等篇头信息;其次是章节、子章节、正文、公式、图表等文档主体内容;最后是篇尾的致谢、参考文献等信息。标注语料应符合XML Schema表示的文档逻辑结构规范。

虽然不同类别文档的逻辑结构不同,但其结构多有交叉与重叠,如文档题目、作者、主体章节等。若要应用至其他文档类型,只需从DocBook中剪裁或自定义合适的元素与结构,对此进行修改与扩展即可。这样不仅能够减少工作量,而且能够减少由于不同文档类型之间差异性而在标注方法设计与语料加工时带来的复杂性。

图1 期刊论文类型的文档逻辑结构描述

2.2 文档编辑语义特征

相对于纯文本与版式文档,流式文档中不仅记录了文本、图表等内容,还包含很多与文档内容相关的排版样式信息与编辑对象信息,这些统称为文档编辑语义特征, 结合这些特征可以更准确地理解文档逻辑结构。本节深入分析了文档排版规则与写作习惯,挖掘出可用于文档逻辑结构识别的编辑语义特征,将其表示为机器可读的特征向量。下面将从内容特征、样式特征与编辑对象特征三个方面进行详细讨论。

2.2.1 内容特征

文档中的文本信息是用来识别文档逻辑结构最直接有效的特征。比如通过标题中关键的文字内容来辨别出摘要、引言等元数据;又如通过标注单元是否以标点符号结束来区分标题与正文。本文选取6种内容特征,对其进行了详细描述,如表1所示。

表1 内容特征

2.2.2 样式特征

流式文档中有丰富的排版样式,人们在日常写作中也常用不同的排版样式来区别不同的文档元数据。例如,不同章节的标题一般设置为不同的字号、段首缩进等;又如图题对齐方式常为居中对齐。将内容特征与样式特征有效地结合,能够更准确地识别出各段落所属的逻辑角色。本文选取了7 种样式特征: 相对字号、粗体、对齐方式、大纲级别、首行缩进、段前间距以及段后间距。举例来说,相对字号RFS的计算如式(1)所示。

其中,FS为实际字号, MAX_FSd与MIN_FSd分别是文档d中的最大字号与最小字号,FSmost是文档d中占比最大的字号。

2.2.3 编辑对象特征

流式文档中包含有大量的文本、图像、表格和公式等数据,这些数据在流式文档中分别存储为不同的编辑对象,可通过Word对象模型来自动读取文档编辑对象特征,快速判断段落逻辑角色,在此基础上也可通过上下文关系进一步分析其他段落的逻辑角色。另外,根据图片对象的显示特征可将正常图片和以图片表示的公式加以区分。因此本文将对象特征类别、对象长度、对象高度纳入特征向量。

2.3 标注模型与编码方法

流式文档逻辑结构标注的实质是建立文档逻辑结构树并将其节点与文档编辑语义特征相关联,最后生成XML形式的标注结果。然而流式文档格式底层以序列形式存储文档内容,如何将其转化为树形的文档逻辑结构呢?本文提出了一种文档逻辑结构标注模型,在该模型中,通过标注文档元数据建立文档编辑语义特征和文档逻辑结构树的映射关系,如图2所示。相关概念表述如下。

图2 文档逻辑结构标注模型

定义1文档逻辑结构树(Document Structure Tree, DST),用于描述文档元数据之间的层次关系。DST可表示为三元组: ,其中root表示DST的根节点,V与C分别表示节点与连接的集合。

定义2文档语义单元,是流式文档中一段连续的内容区域,表示了独立的文档语义,文档语义单元集合记为U,其颗粒度与文档逻辑结构树的叶节点相符。

定义3标注元数据,用于描述文档结构语义的数据,与DST中一条从根节点到叶节点的路径相对应,标注元数据集合记为TM。本文定义的标注元数据与路径对应关系如表2所述,其中路径信息用XPath描述。

表2 文档逻辑结构标注元数据

定义4标注单元,是使用标注元数据tagi(tagi∈TM)对文档语义单元ui(ui∈U)进行标注操作mark(ui, tag)而形成的一条标注结果,记为mi:

标注一篇文档,可得到文档标注单元的偏序集合M:{mn,n=1,2,…,N}。如果原始文档结构正确并且标注合理,那么文档元数据标注结果中就含有了文档全部的语义角色,以及元数据间的层次关系,由此我们可以自动重建文档逻辑结构树。

3 三段式的流式文档逻辑结构半自动标注方法

在流式文档中标注逻辑结构有一定难度。一方面,元数据标签繁多,而且直接在文档内容中插入标签会破坏原始文档状态;另一方面,文档编辑语义特征复杂多样,直接以人工方式在文档中标注是不现实的,而且不能保证标注结果的正确性。本文提出了一种三段式的文档逻辑结构半自动标注方法,将人工标注与自动化技术相结合,降低人工标注难度并提高标注效率。如图3所示,第一阶段在流式文档中以机助人工方式添加分离式的文档元数据标签;第二阶段自动重建文档逻辑结构,用XML文档记录;第三阶段自动提取并填充文档编辑语义特征,最终形成结构化的XML标注文档。

3.1 分离式的文档元数据标注方法

语料标注一般有两种形式,一是嵌入式标注,直接在文本中插入标签,其原理简单,易于实现,但会破坏原始语料信息;二是分离式标注,标签不插入到原始语料中,而是以一定方式与原始语料相关联,这种方式不仅能够保留原始语料的状态,而且也会使得后续的修改更加容易,便于与其他标注合并[20]。在流式文档中易于使用的分离式标注手段并不多,本文选择利用文档批注机制来做标注。流式文档编辑器中的批注是绑定在连续文档内容范围上的附加标签,并对应地显示于文档视图界面的右侧。其特点是与流式文档中原始的文本、图片、表格等内容独立显示又相互关联,不破坏原始文档排版样式又便于人的观察和操作。因此本文基于文档批注,开发了标注插件,以机助人工的方式标注文档元数据。

图3 三段式的文档逻辑结构半自动化标注方法

3.2 文档逻辑结构重建算法

文档元数据标注结果中明确了被标注内容的语义,而XML Schema表示的文档逻辑结构中定义了元数据之间的层次关系,可以借此自动重建文档逻辑结构树。为方便描述这一过程,先引入章节子树的概念。

定义5章节子树(Section Tree, ST)是DST中描述某个章节内容的子树,ST= ,其中rst为ST的根节点,Vst⊂V,Cst⊂C,lvst是子树的章节级别(1,2,3,…)。章节子树有如下特点:

① 章节子树的根节点在DST中的深度反映了章节子树的级别,其前序遍历结果记录了原始文档内容顺序;

② 对于一棵章节子树,其最左孩子节点一定对应此章节标题,而其余节点对应此章节的内容;

③ 任意两个章节子树互不相交:V1∩V2=Ø,C1∩C2=Ø。

按照文档逻辑结构标注模型对文档元数据标注,可得到文档标注单元的偏序集合M={mn,n=1,2,…,N},其中mi=,ui∈U, tagi∈TM。文档逻辑结构重建是将集合M转化为文档逻辑结构树的过程,算法可分为三个步骤,首先明确文档首部信息,并确定其在文档逻辑结构树中的路径;其次,构造各个章节子树;最后,明确章节子树之间的嵌套关系。

章节标题是确定文档逻辑结构的标志性信息,根据标题类标注单元出现的位置可以将标注结果分解为若干部分。假设标题类标注单元集合T={mi,i=r,s, …,t},T⊂M, 可以将标注结果M分解为若干子集:M0={m0, …,mr-1},Mr={mr, …,ms-1}, …,Mt={mt, …,mn}。文档逻辑结构树DST 重建算法的形式化描述如下:

① 第一个子集M0与文档首部对应,可按序地为每个标注单元内容在文档逻辑结构树中创建一条唯一路径;

② 子集Mi(i=r,s, …,t)对应文档主体内容,并且每个子集Mi={m1, …,mk}对应了一棵章节子树STi,子树的构造过程如下:

a)m1为标题类标注单元,可确定章节子树的根节点ri与级别lvi;

b) 为每个标注单元m(m∈Mi)创建一个节点v,并建立连接c=

③ 确定章节之间的嵌套关系: 若lvi=1,则建立连接c=;若lvi≠1,存在STk,k

获得文档逻辑结构树后,需要根据文档元数据的XML Schema描述,进一步生成符合其定义的XML形式的文档逻辑结构标注文档。

3.3 文档编辑语义特征自动提取

流式文档需要抽取的编辑语义特征多样复杂,这些特征靠人工抽取是不现实的,一方面工作量巨大;另一方面难以准确(例如,字数、关键字等)。此外,部分特征难以通过人工方式获得,比如编辑对象特征需要从文档底层中提取。因此实现特征向量的自动化提取是非常有必要的。在标注的第一阶段,在文档中添加标注元数据标签,不仅确定了整篇文档的逻辑结构,同时也在文档底层将标注单元特征与标注标签以批注的方式相绑定。正因如此,可通过流式文档提供的编程接口自动抽取文档编辑语义特征,并填充至XML形式的标注文档中。至此,流式文档逻辑结构标注语料生成完成。

4 实验与分析

文档逻辑结构标注模型较为复杂,为方便标注人员按照本文提出的三段式的半自动化标注方法来标注文档,我们开发了相应标注插件,插件截图如图4所示。

我们随机选取30篇文档,将其分为6组,分别使用标注工具与纯手工的标注方法对每组数据进行标注,两种标注方法的效率与正确率对比情况如表3所示。采取纯手工方法标注文档逻辑结构树并在文档中提取编辑特征的过程十分烦琐,导致标注效率过低。本文将三段式的标注方法融入半自动化标注插件,使得在逻辑结构重构与文档特征抽取阶段不需要人工干预,大大提高了文档语料的标注效率与正确率。

图4 标注插件截图

表3 标注方法对比实验结果

基于机器学习的文档结构理解需要大量的训练数据,我们广泛采集了多种学术期刊或会议的共计1 734篇学术论文,如表4所示。并按照前文提出的标注方法对其标注,构建了流式文档结构标注语料库(Document Structure Tagging Corpus,DSTC)。

为了验证本文确立的文档逻辑结构标注体系的合理性与DSTC语料库构建的有效性,基于DSTC语料库训练文档逻辑结构识别模型,分别在语料的编辑特征提取与逻辑结构两方面进行了对比实验。

表4 DSTC语料分布情况

4.1 基于随机森林的文档章节结构识别

在流式文档逻辑结构识别的研究中,文献[1]对比了SVM、KNN、朴素贝叶斯与随机森林分类器,其中随机森林分类器的识别准确率与召回率最高。随机森林是一个由一组决策树分类器组成的集成分类器,每个决策树分类器通过投票来决定最优的分类结果。随机森林算法一般构造过程如下。

步骤1对于给定训练样本,随机可重复取样,形成新的子样本数据;

步骤2对新的子样本数据中M个特征变量随机抽取m(m

步骤3重复步骤1、2,得到K个决策树,形成随机森林;

步骤4每个决策树投票,选出最优的分类。

本文实验中随机森林算法参数为:M=16,K=100,m=elog2Mu。

文献[1]对文档章节结构进行了识别,其数据集中标注了章节、子章节与正文,并提取8种编辑特征组成特征向量。为与文献[1]进行对比,随机选取169篇文档语料,首先按照文献[1]的方法构造数据集1;其次按照本文提出的方法标注相应标签并自动提取16种编辑特征,从中计算并选取信息增益[21]最大的8种特征组成特征向量,构造数据集2。两种数据集的特征向量对比如表5所示。基于上述两种数据集,构建随机森林分类模型,十倍交叉验证的实验结果见表6。实验结果表明,由于本文标注体系中对文档编辑特征提取得较为全面,能够更好地反映不同类别间的差异,从而提升了随机森林分类模型的准确率与召回率。

表5 特征向量对比

表6 实验结果对比

4.2 基于双向LSTM的文档逻辑结构识别

上述实验对文档逻辑结构识别存在一些不足。一方面,文档元数据的分类维度较低,较难满足其他高层次研究的需求;另一方面,随机森林算法将各个分类标签看作相互独立的,然而文档各段落之间的先后顺序关系也是需要机器学习与识别的重要内容,本文尝试将文档逻辑结构识别问题视为序列标注问题解决。

在流式文档逻辑结构标注体系中,标注了18类文档元数据,能够实现较细粒度的文档逻辑结构识别。同时,DSTC语料库基于本文的文档逻辑结构标注模型记录了文档元数据间的顺序与层次关系,并符合XML Schema的约束,能够为序列标注模型提供可靠的训练数据。

长短期记忆网络模型(Long Short-Term Memory, LSTM)[22]在传统的循环神经网络模型(Recurrent Neural Network, RNN)基础上重新设计了隐藏层节点的记忆模块,能够清理学习过程中的无用信息,并有效地利用长距离的序列信息,通过隐藏节点来发现各个文档段落局部之间的相互关系。本实验基于双向 LSTM 网络模型学习文档的特征信息,分别从正向和逆向两个方向处理文档逻辑结构序列,模型结构于原理于文献[23]中有详细论述,本文对此不再重复说明。

本文实验中对特征向量采用dropout正则化操作,dropout设置为0.2;双向LSTM模型中的正向和反向隐藏层的节点数均设置为64个,神经网络层数为两层,学习率设置为0.1;对于误差的更新,则采用批处理的形式,每次由50个样本一起更新,即batch设置为50个,轮回次数设置为50。

在DSTC语料库中随机选取1 388篇文档作为训练数据,其余346篇文档作为测试数据,分别使用随机森林与LSTM模型进行实验,实验结果如表7所示。从分析实验结果可知,由于LSTM模型考虑了流式文档逻辑结构的上下文信息,提升了随机森林算法对文档逻辑结构识别的准确率与召回率,但LSTM模型付出更大的时间代价。

综上所述,本文确立的标注体系与DSTC语料库,不仅能够为基于机器学习的分类模型提供训练数据,更重要的是可将文档上下文信息融入文档逻辑结构识别模型中,从而提高基于机器学习的文档逻辑结构识别准确率与召回率。

表7 随机森林与LSTM的实验结果对比

5 结束语

本文以DocBook为基础,定义了文档逻辑结构描述方法,调研了大量电子文档内容与样式上的书写特征,总结出用于文档逻辑结构识别的内容特征、样式特征与编辑对象特征,建立了结构化的文档逻辑结构标注模型。在此基础上提出半自动文档逻辑结构标注方法,在该方法中,实现了文档元数据的分离式标注,批注形式的标注保护了原始文档内容且便于操作;自动重建逻辑结构并自动填充特征向量,节省了大量的人工标注工作量;最后将标注结果记录在结构化的XML文档中,通过Schema验证,保证了文档逻辑结构的正确性。实验证明,使用本文方法构建的文档逻辑结构标注语料库,能够提高机器学习方法识别文档逻辑结构的粒度与准确率。本文的研究成果可用于其他类型与其他格式的流式文档标注,为各类文档的排版检查、自动排版、信息抽取与结构化检索等高层次应用打下基础。

下一步的工作将考虑利用基于机器学习的文档逻辑结构识别模型自动化地对语料进行初始标注,以实现计算机自动标注、人工辅助校正的最终目的。另外,本文提出的文档逻辑结构标注方法没有考虑容错问题,如何为不规范的文档自动标注逻辑结构是未来面临的另一项挑战。目前学术论文、毕业论文、著作、标准和专利等文档类型的标注工作还在不断进行中,数据集将面向社会开放,供广大同行研究使用,共同推进文档信息处理技术的发展。

猜你喜欢
流式语料章节
2种6色流式细胞术试剂检测淋巴细胞亚群的性能比较
基于归一化点向互信息的低资源平行语料过滤方法*
流式大数据数据清洗系统设计与实现
高中数学章节易错点提前干预的策略研究
濒危语言与汉语平行语料库动态构建技术研究
潜水推流式搅拌机的标准解读
利用“骨架突破法”,提高复习效率
对外汉语教学领域可比语料库的构建及应用研究
——以“把”字句的句法语义标注及应用研究为例
高比转速轴流式和斜流式泵喷水推进器推进特性分析
八仙过海,各显神通