APP下载

面向招标文件的半结构化文本自动生成

2023-03-16刘金硕

计算机工程 2023年3期
关键词:段落语句文档

刘金硕,刘 宁

(武汉大学 国家网络安全学院 空天信息安全与可信计算教育部重点实验室,武汉 430079)

0 概述

招标文件一般指的是招标工程建设的大纲,是建设单位实施工程建设的工作依据,也是向投标单位提供参加投标所需要的一切情况。为了做到文件内容的规范统一,招标公司通常会邀请专家参考历年的招标文件编写范本,然而这种方式严重依赖专家的行业经验与知识水平,自动化程度低,需要花费大量的人力与时间,无法满足行业快速发展的需求。通过对人工编制的范本进行分析发现,其本质上是对招标文件核心内容的汇总。采用形式化定义:给定n个招标文件组成的集合D={d1,d2,…,dn},参考范本的内容为Y={y1,y2,…,ym},其中yi是文档集D中的核心内容。在自然语言处理领域中,自动文摘技术的目的是对海量数据进行提炼总结,以简洁直观的摘要来概括原始数据[1]。

目前,文本摘要按照研究方法可分为生成式文本摘要与抽取式文本摘要[2]。生成式方法通过理解原始文本,自动生成摘要内容。文献[3]提出基于编码器-解码器框架的生成式文本摘要,效果得到显著提升,成为主流方法。文献[4]提出复制和覆盖机制,改善了生成内容重复及未登录词问题。文献[5]建立谓词-参数关系的语义依赖图,指导摘要生成过程,以应对语义偏差问题。文献[6]提出复制结合重写机制生成最终摘要。然而,现有生成式文本摘要通常依赖大规模监督语料,无法应对真实场景中的资源缺乏问题。抽取式方法通过主题模型、图模型等实现文本摘要。文献[7-8]基于主题模型思想,将文档映射至矢量语义空间,构建句子加权的词频向量,选择排名靠前的句子组成摘要。主题模型能够挖掘潜在语义信息,但过分依赖数据集质量,容易发生过拟合。因此,研究人员将文本构建为图结构,采用图排序算法选择靠前的文本语句作为摘要。文献[9]提出TextRank 方法,采用PageRank[10]算法计算语句得分并排序。文献[11]采用图节点的度作为排序衡量方法。文献[12]提出句子-实体二分图表示文档,实现网页文本的摘要生成。TextRank[9]等方法简单有效,但只考虑了句子之间的相似性关系,忽略了其他因素,而且生成内容多样性较差。文献[13]将图卷积网络(Graph Convolutional Network,GCN)应用在文档摘要任务中,取得了不错的效果。文献[14-15]利用位置关系或聚类算法对TextRank 算法进行改进,但依然存在运行速度较慢,忽略了时间特征等问题。文献[16]引入文档节点、单词节点构建异质图,实现核心词句的提取。文献[17]基于图卷积网络与双注意力机制实现医疗文本摘要生成。图神经网络能够捕获上下文的长依赖关系,但现有方法需要将所有句子构成的图加载到内存以执行卷积操作,很难应用于当前的长文本场景。

综上,基于图模型的文本摘要方法作为抽取式文本摘要的主流方法虽然能够提取核心内容,但忽略了文本的主题结构,普遍存在运行速度慢等问题,无法实现篇幅较长且强调时效性、结构性以及多样性的招标文件范本生成。本文提出一种基于多头图注意力网络(Graph Attention Network,GAT)[18]的半结构化文本自动生成(Semi-structured automatic text Generation model based on Multi-head GAT,SGMG)模型。将文本内容作为输入,利用异质图对文本、段落及主题之间的语义关系进行建模,采用多头图注意力网络加强不同节点之间的交互,从而提取核心主题结构。通过融合时间特征及语义相似关系的有向图算法抽取段落中心句,降低计算成本,保证生成文本的时效性与多样性。

1 面向招标文件的半结构化文本自动生成模型

基于多头图注意力网络的半结构化文本自动生成模型的核心思想是利用图模型抽象文档、段落、语句之间的关系,提取核心主题与中心语句。模型总体框架如图1 所示,主要包括预处理层、主题抽取模块、中心句抽取模块、句子选择模块。将文本集合作为输入,在预处理层将文本转化为上下文编码表示,抽取主题词。在主题抽取模块中,基于主题词构建异质图,运用图注意力网络对节点信息进行传播更新,提取核心主题与段落集合。在中心语句抽取模块中,根据语句的时间关系及相似性构建有向图,抽取核心语句。在句子选择模块中,应用三元词过滤法[19]筛选中心句,得到最终的生成文档。

图1 模型总体框架Fig.1 Overall framework of the model

1.1 预处理层

SGMG 模型基于BERT 预训练模型[20]对文档集进行处理。BERT 预训练模型是多层双向的Transformer 编码器,通过随机屏蔽预测以及下一句预测任务对模型进行预训练,在自然语言处理领域的文本分类、对话系统等多项任务中具有优越性能。

给定输入文本词序列W={w1,w2,…,wn},经 过BERT 模型的词嵌入层,将文本中的n个字符转为固定维度d的向量表示VT。本文采用的BERT 模型向量维度为768。段嵌入层的作用是区分输入文本,本文中段嵌入向量VS都为0。经过位置嵌入层,学习输入文本的位置表示VP。经过3 个嵌入层,得到BERT 的最终嵌入表示V=VT+VS+VP,V∈Rnxd。之后,将嵌入向量V送入12 层Transformer 单元,其中多头注意力层选择12 个头,得到最终的编码输出矩阵H={h1,h2,…,hn},hi∈R768,将第一层token 向量h1与最后一层token 向量hn按照式(1)计算得到BERT编码向量Vo:

文献[21-22]在实验中证明直接使用BERT 模型得到的句向量在语句相似任务上的效果并不理想。受到以上工作的启发,对编码向量执行如式(2)所示的白化操作得到Xw,其中T表示单个章节中句向量的总数,使句向量之间满足各向同性,并通过前馈神经网络得到最终的向量表示XS。

平均池化能够考虑每个词的语义信息,最大池化能够提取显著特征。由于语料文本中噪声信息密度较大,采用最大池化能够聚焦关键信息,因此对句向量XS采取如式(3)、式(4)所示的最大池化操作,生成段落表示Xsec以及文档的编码表示Xd:

其中:n、m分别表示构成段落、文档的句子数量。

通过文本处理工具PyPDF 得到原始文档集的标题信息,由LDA 模型[23]生成段落及文档主题,综合两者得到最终的待选主题集合ttheme={t1,t2,…,tk},其中k为主题数量,通过BERT 预训练模型将主题词映射为向量表示T。

1.2 主题抽取模块

现有自动摘要算法解决了核心内容提取问题,但无法提取文本的主题结构。文献[16]通过共现词建立文档与句子的关系,实现了核心词的提取。受到该工作启发,设计由主题、文档、段落组成的异质图,结合多头图注意力网络提取文档的核心主题。

1.2.1 异质图模型结构

给定文档集D={d1,d2,…,dn},文 档di={ssecj}由段落ssecj组成。异质图包含中心节点与边缘节点,边缘节点之间通过中心节点建立语义连接关系。如图2 所示,采取主题节点Vt={Vt1,Vt2,…,Vtk}作为中心节点,文档节点Vd={Vd1,Vd2,…,Vdn}及段落节点Vsec={Vsec1,Vsec2,…,Vsecm}作为边缘节点构建图G,图节点集合V=Vt∪Vd∪Vsec。

图2 主题抽取模块结构Fig.2 Structure of topic extraction module

将段落、文档与相关的主题之间建立连接,得到图的边集合E={eij},eij表示节点Vi与Vj之间存在边。图节点通过多头图注意力网络层进行消息传播与聚合更新,并通过分类输出层预测主题节点是否为范本中采用的真实主题。

1.2.2 图初始化

采用段落、文档及主题词的上下文表示作为图节点的初始化特征向量{hi}。Xdi初始化文档节点Vdi,Tj初始化主题节点Vtj,Xseck初始化段落节点Vseck。计算主题词在文档与段落中的TF-IDF 值作为边eij的权值。

1.2.3 图更新

在建立异质图并初始化后,采用多头图注意力机制对节点信息进行消息传播与聚合更新。图注意力层使用注意力机制聚合邻近节点特征,如式(5)~式(7)所示:

其中:eij表示节点之间边的权重值;Wa、Wq、Wk、Wv是待训练的权重向量;αij是两个节点之间的注意力权重值。

为了进一步提高表达能力,采用多头自注意力机制,设置多个Wk并对结果求取均值,如式(8)所示:

其中:Ni表示节点Vi的邻近节点集;K表示自注意层的数量。

在节点状态聚合更新阶段,主题节点首先通过图注意力层与前馈神经网络层对文档节点、段落节点进行传播更新,再由更新过后的文档节点、段落节点对主题节点进行反向更新。经过L轮次迭代,得到最终的主题节点表示。

分类输出层包括两层前馈神经网络(Feed Forward Network,FFN)[24],采用Softmax 作为激活函数,对主题节点进行二分类,预测主题词属于真实主题的概率p,p∈[0,1]。在训练阶段,采用交叉熵损失函数。

在主题抽取模块中,异质图每轮次传播与更新的计算复杂度为O(|V|+|E|),其中|V|、|E|分别表示图中节点和边的数量。由于采用文档与段落级别进行建模,因此相较于直接对句子建模的方法,降低了时空复杂度。经过计算,最终得到k个核心主题及其相关的t个段落组成的集合P={ssec1,ssec2,…,ssect}。

1.3 中心句抽取模块

现有文本摘要模型在提取核心内容时,忽略了时间特征对语句中心性的影响,无法保证内容的时效性。因此,设计中心句抽取模块,如图3 所示。融合时间特征及语句相似性对段落集合P构建语句关系有向图。在提取核心语句的同时,保证了内容的时效性。

图3 中心句抽取模块结构Fig.3 Structure of central sentence extraction module

节点S={S1,S2,…,Sn}表示句子节点,采用语句向量表示XS进行初始化,边集合E={eij},eij表示Si指向Sj的有向边,Si的时间信息晚于Sj。根据式(9)计算语句向量之间的相似度,作为关系图边eij的权重:

根据式(10)定义节点中心性的计算方法:

其中:S={S1,S2,…,Sn}表示节 点集合;time(Si)表示节点Si的时间特征信息;λ1与λ2是超参数,分别代表入边与出边的权重,并且满足式(11),λ2通常小于0,表示相似句子中,越晚出现的句子中心性越低,目的是使模型倾向于输出较新内容。

中心句抽取模块计算每个段落集合P中句子的中心性,时间复杂度为O(|S|2),空间复杂度为O(|S|),其中|S|表示句子节点的数量。由于不同主题之间可以并行计算,因此最终的时间复杂度仍为O(|S|2)。

现有文本摘要方法通常选择对文本中所有句子进行建模[9,11-17]。与这些方法相比,本文提出的模型先对主题信息进行粗粒度筛选,主题之间再采取并行的方式选择中心句,降低了时空复杂度。当数据规模较大时,利用节点中心性计算过程的独立性,对节点采取组内串行、组间并行的计算方式,进一步提高模型效率。

1.4 句子选择模块

文献[25]采用最大边缘相关性(Maximal Marginal Relevance,MMR)算法提高推荐结果的多样性。文献[19]将MMR 算法应用在文本摘要任务中也取得了相同的效果。受到以上工作的启发,采用一种改进的MMR 算法——三元词过滤法筛选最终输出的内容,给定已选内容S和候选句c,ncountmatch(gram3)表示c与S之间共有的三元词数量,当数量大于等于1 时,舍弃候选句c(t=0),否则将其保留(t=1),如式(12)所示:

2 实验与结果分析

2.1 实验语料库

实验语料采集自国家能源集团2016 年至2020 年度招投标过程中积累的招标技术文件。文件所属类型分为货物类、服务类和工程类。按照文本数量以及语料质量,选取其中120 类标的物对应的共计8 012 件文件作为实验的数据集,按照8∶1∶1 的比例,划分出训练集、验证集和测试集。

原始语料文件数据清洗包括:提取文件的发布日期,清理文件内容中页码等无效成分,按照文档、段落、语句的层级整理主体内容,提取当前文件标题等工作。清洗后的语料结构如表1 所示。

表1 数据清洗后的语料结构Table 1 Corpus structure after data cleaning

2.2 实验评价指标

采用ROUGE 作为评估指标,如式(13)所示:

其中:Rd表示人工编制的参考范本;S表示人工范本中的句子;表示人工范本与生成文本共有的N元词个数;表示人工范本中N 元词的总数。

采用ROUGE-1、ROUGE-2 指标对生成文本与人工范本进行对比,采用ROUGE-L 指标对比最长公共子序列,评价生成文本内容的流畅性。为了验证本文模型中主题抽取模块的有效性,采用F1 分数(F)对主题抽取效果进行评价,计算公式如式(14)~式(16)所示:

其中:P表示预测精确率;R表示召回率;TTP表示预测的主题为真实主题的数据数量;FFP表示预测为非真实主题而实际为真实主题的数据数量;TTN表示预测为真实主题而实际为非真实主题的数据数量;FFN表示预测为非真实主题而实际也为非真实主题的数据数量。

2.3 实验参数

采用base 版本的BERT 预训练模型,文本向量特征维度为256。为了捕捉更加丰富的语义特征,使用8 个自注意力层求取均值,图注意力网络隐藏层状态向量维度为64。实验过程表明,当图节点消息传播及更新的迭代次数设置为2 时能够充分进行节点交互且避免过拟合。选择得分前M的句子作为中心句,M采用段落集合句子数的平均值。

在训练过程中,采用Adam 优化函数寻找模型最优参数。实验设置的批处理大小为32,学习率为5e-4,为了防止过拟合,模型在验证集的连续10 次迭代中,如果误差不再下降,则停止训练。

2.4 有效性验证

选取TextRank[9]、LexRank[11]、PacSum[14]、Seq2Seq+Attention[27]等4 种常用的文本 摘要方法验证SGMG模型的有效性,并与PacSum、Seq2seq+Attention 方法进行对比以验证SGMG 模型的先进性。

1)TextRank[9],基于PageRank 算法实现抽取式文本摘要,被广泛应用于文本生成任务[26]。

2)LexRank[11],基于节点度的定义实现抽取 式文本摘要,常被应用于多文档文本生成任务。

3)PacSum[14],重新定义了句子中心性,在无监督文本摘要任务中取得了较好的效果。

4)Seq2Seq+Attention[27],目前主流的生成式摘要方法,采用编码器-解码器结合注意力机制实现,实验中采用RNN 作为神经元。

为了比较不同输入方式对基准模型的影响,对平滑连接(Flat Concatenation,FC)与分层连接(Hierarchical Concatenation,HC)[28]方式进行对比实验,其中:平滑连接将文档集整体拼接在一起得到D={d1;d2;…;dn};分层连接将文档集中每篇文档独立地输入模型D=[d1,d2,…,dn],得到的结果采用投票法进行融合。本文提出的SGMG 模型采用多文档同时输入的方式。

2.5 结果分析

实验结果如表2 所示,其中最优指标值用加粗字体标示。

表2 文本摘要生成的ROUGE 值对比Table 2 Comparison of ROUGE value of text summarization generation %

由表1 可以看出:本文提出的SGMG 模型在面向招标文本的半结构化文本自动生成任务上的效果要明显优于基线方法。具体分析为:在招标文本数据集上,采用分层连接的基准方法优于采用平滑连接的基准方法,TextRank、LexRank 以及PacSum 模型的ROUGE-1 指标分别提升了1.9、1.0、5.2 个百分点,实验结果表明分层连接能够提高当前任务下的文本生成效果;PacSum 模型相较于TextRank、LexRank 模型在ROUGE-1、ROUGE-2 及ROUGE-L 指标上平均提升了约6.45、9.35、7.35 个百分点;SGMG 模型相较于PacSum+HC 模型在ROUGE-1、ROUGE-2 及ROUGE-L 指标上分别提升了3.3、5.2、4.3 个百分点,原因为融合时间特征及多样性选择能够明显改善文本生成效果;Seq2Seq+Attention+FC 相比于其他基线方法在ROUGE-2、ROUGE-L 指标下取得了最低的分数,原因为生成式文本摘要依赖大规模数据,不适用于当前的低资源场景;SGMG 模型相比于Seq2Seq+Attention+FC 方法,在ROUGE-1、ROUGE-2、ROUGE-L指标上分别提升了12.4、17.2、14.7个百分点。

验证SGMG 主题抽取模块的有效性,实验结果如表3 所示。由表3 可以看出,货物类、服务类招标文件主题抽取结果的精确率、召回率及F1 分数整体在75%以上,货物类招标文件主题抽取结果的精确率最高达到82.3%,工程类招标文件主题抽取结果的精确率、召回率及F1 分数整体取得了73%以上的结果。实验结果验证了SGMG 模型主题抽取模块的有效性。

表3 主题抽取模块的实验结果Table 3 Experimental results of subject extraction module %

3 结束语

针对现有文本摘要方法无法提取文本主题结构、忽略时间特征对文本重要性的影响等问题,本文提出一种基于多头图注意力网络的半结构化文本自动生成模型(SGMG)。利用异质图提取核心主题,通过多头图注意力网络加强不同节点之间的交互,结合时间特征与语义相似度提取中心句确保生成文本的时效性,利用三元词过滤法提升生成文本的多样性。实验结果表明,在面向招标文件的半结构化文本自动生成任务中,SGMG 模型的ROUGE-L 相比于TextRank、LexRank、PacSum、Seq2Seq+Attention等现有文本摘要方法提升了4.3 个百分点以上,主题提取的F1 分数达到74.9%以上。下一步将融合主题抽取与中心语句选择模块,缩短链路生成时间,降低语义丢失风险。

猜你喜欢

段落语句文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
【短文篇】
重点:语句衔接
心理小测试
夏天,爱情的第四段落
基于RI码计算的Word复制文档鉴别
弄清段落关系 按图索骥读文
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
如何搞定语句衔接题