工程概算内容的自动化精准匹配和提取

 本课题拟自动化的从工程概要Word文档中抽取目标内容输入段落,并将其相关词项和目标词项进行对齐,从而抽取相应数值,自动化地提取“最佳方案”所需的概算金额,并生成汇报文本。        

在本课题中,目标词项由22类明确设置的“项目名称”构成,各包含2-6项子项(详细内容可参考申请书附录)。该目标问题具有较为复杂的语义匹配需求。因此,针对本课题任务,我们拟利用实验室成熟的自然语言处理(Natural Language Processing)技术,在预训练工程概算文本深度模型的同时,进行Word文档的句式自动提取,最后建立微调联合学习模型,来完成工程概要数据的自动化精准抽取和内容匹配。


图1. 工程概算文本 预训练的BERT模型以及“输入框校准” 和“词项对齐”分类

图1展示的本课题所设计的联合学习模型,该模型通过构建语言表示模型,学习单词形态、句法、分布等信息,用非监督的方式将单词编码到特定空间中,使得单词向量表示携带足够的语言信息。在下游自然语言处理任务中,便可以将这些语言表示信息做网络微调或将单词表示做特征输入,从而提高整体模型效果。其中,语言表示模型使用Google自2018年提出后迅速得到NLP业界认可的基于Transformer的双向深层预训练模型(Bidirectional Encoder Representation from Transformers,  BERT)模型,该模型由Google提出,是一个深度神经网络微调模型。

首先,在工程概算文本预训练模型中,我们采用维基百科中文语料预训练的BERT模型(见图1中黄色方框部分)。为了更好的捕获生物文本语言特征,模型预训练使用全维基百科中文语料,和搜狗新闻语料“电力部分”文本作为预训练输入。该模型在学习中引入多任务学习的思想,任务一中,利用Mask方法随机遮蔽一定比例的输入单词,然后通过双向Transformer网络预测这些遮蔽的单词;在任务二中,通过预测上下句从而让模型更好的编码上下句信息,这有利于问答、自然语言推理等后续任务的开展。

  • 输入数据预处理:将中文文本分句,若A,B为上下文关系,则在训练模型时将A,B同时出现的概率设为50%,另外50%用随机取样的方式生成。并用[CLS]标记每一句的开始位置,[CLS]指的是分类预测标签(Classifier Token),用于模型在训练过程中判断上下句关系。[SEP]作为分割标志连接两个句子。为了充分利用单词形态学信息,此处使用WordPiece分词方法。为了通过双向自注意力机制来充分学习上下文信息,这里随机遮蔽15%的单词(遮蔽用[MASK]表示)。将单词和绝对位置信息均初始化成向量后,由于 在任务二中有上下句预测任务,于是对于每句中的单词再初始化一个相同的用来表示所属句子的向量。最后将三者相加后作为模型的输入。
  • 主框架:主要采用Transformer编码器,如图5所示,技术细节包括:
    • 输入的每一个实例(有上下两句话分词后向量化的结果)做多头的自注意力获得每一个token的重编码结果;
    • 将重编码结果与输入做残差求和和标准化(有效避免协方差偏移),将标准化后的每一个token的抽象表示输入到一层前向全连接网络;
    • 输出结果与该层输入做残差连接后再进行标准化操作;
    • 将以上Cell累叠12层;
    • 最后计算预测被遮蔽的词的平均似然,及预测上下句的平均似然。
  • 模型保存:将最终预训练完成的模型本地化保存。

        其中,Word自动抽取模型通过Python-docx包来自动转换数据格式类型,并获得候选文本段落,这些文本段落作为输入框,最终需匹配成“风力发电机组设备”,“设备原价”, “卸车采保费”,“塔筒”,“塔筒设备原价”、“锚栓原价”、“卸车采保费”等词项内容。将文本框段落进行结构化抽取,获取相应句式,作为联合学习的原始输入。

        最后,获得微调联合学习模型,该模型的输入为获取的预算概要文本句式,输出为“输入框校准”和 “词项对齐”的联合学习结果。如图5所示,神经网络细节包括:

  • 输入数据预处理:将工程概算文本训练样本分句处理,并采用WordPiece分词。同样初始化位置编码,句子编码,三者相加后作为微调模型的输入。
  • 主架构:同样构建预训练模型中的12网络。在网络最终输出部分添加全连接层和Softmax层,并利用CRF层获取最优标注序列。与此同时再给第一个输出的Token做维度变换后添加Softmax层,最终的输出为该句中Token的关系标签。最后将序列标注的似然损失,与分类的似然损失作为优化目标进行学习。

       通过联合学习,我们最终获得“输入框校准”和 “词项对齐”的联合学习结果。在输入框校准任务中,以寻找拟输入的“推荐方案”文本段落为目标,在词项对齐中,以匹配对应的词项并抽取对应数值为目标。

%d bloggers like this: