面向飞机故障文本的信息抽取
2024-04-29孙有朝吴红兰
乔 璐,孙有朝,吴红兰
(南京航空航天大学民航学院,江苏 南京 210000)
0 引 言
飞机作为大型的复杂装备系统,服役周期长,飞行环境恶劣,导致故障发生频繁,在长期的维修保障中积累了大量的故障信息。飞机故障信息通常存储在结构化数据库、半结构化表单以及大量的故障报告等介质中。这些故障文本描述中往往包含机型、故障件、故障机理、故障模式等高价值信息,因此,从飞机文本故障信息中抽取出结构化的关键信息,对飞机故障诊断具有重要意义。
传统的信息抽取技术通常采用基于规则和模板的方法。Wang 等人[1]提出了基于规则匹配的方法,提取技术手册中的非结构化文本信息。Shao 等人[2]采用自然语言处理技术,以电力故障预案文本为对象,构建本体词典和规则模板进行文本的信息抽取。规则和模板是基于领域知识构建的,有一定的局限性,同时人工构建领域规则和模板的代价较大[3],不适用于大规模数据的信息抽取。近年来,随着人工智能的发展,基于深度学习的文本信息抽取技术在各个领域中被广泛采用。2011 年,Collobet 等人[4]首次提出了基于深度学习算法的自然语言处理技术,基于该技术对英语词汇进行词性标注和命名实体识别。齐玉东等人[5]提出了条件随机场(Conditional Random Field,CRF)与双向长短期记忆网络(Bi-directional Long Short-Term Memory,BiLSTM)结合的BiLSTMCRF 模型,融合本体特征,基于领域知识进行命名实体识别。王红等人[6]提出了将注意力机制(Attention)与双向门控循环单元(Bi-directional Gated Recurrent Unit,BiGRU)的Att-BiGRU 模型,对民航领域的突发事件进行关系抽取。Luo 等人[7]采用BiGRU-CRF 模型,对藏文语料库进行分词和词性标注。李军怀等人[8]融合BERT 的改进模型ALBERT(A Lite BERT),提出了基于ALBERT-BiGRU-CRF结构的中文命名实体识别方法。
本文提出一种基于领域词典、规则和BiGRUCRF 模型的信息抽取方法。基于领域知识构建领域词典库和抽取规则,针对没有具体规则可遵循,词典又难以涵盖全面的实体,采用BiGRU-CRF 模型进行命名实体识别。
1 信息抽取技术及流程
1.1 信息抽取技术
信息抽取技术是指从大量自然语言描述文本中抽取特定信息[9]。自然语言描述文本分为结构化数据、半结构化数据和非结构化数据。结构化数据是指能够用二维表结构进行表达的数据。非结构化数据是指结构不完整,不能够用二维表结构表示的数据。半结构化数据是指以半结构化方式存储,可看作是若干名词的结合。飞机故障信息记录是对故障的文字性描述,主要是WORD、PDF、TXT 和其他电子文档等非结构化数据[10],所以采用非结构化信息抽取技术从故障文本中抽取关键信息。非结构化信息抽取的关键技术有实体抽取、关系抽取、事件抽取[11]。
实体抽取技术是指抽取文本中的信息元素,通常包含组织、位置、日期等标签。关系抽取技术是指在被标记实体的文本中找到它们之间的语义关系[12]。事件抽取技术是指将人们感兴趣的事件信息从文本中抽取出来,并以结构化的形式呈现[11]。由于关系抽取技术和事件抽取技术无法提取自然语言文本的标签[13],所以本文采用实体抽取技术从飞机文本故障信息中抽取实体标签。
1.2 信息抽取流程
基于飞机文本信息的信息抽取流程如图1 所示,总体可分为3个过程:
图1 信息抽取流程
1)从新一代飞机可靠性数据库中获取文本信息,对文本信息进行解析、清洗、分词等预处理过程,采用规则、词典和统计模型的方法对预处理结果进行命名实体识别。
2)通过篇章分析与推理构建规则库[14],结合辅助工具和人工校对的方式构建领域词典,对命名实体识别结果进行补充。
3)结构化实体抽取后的数据,丰富和扩充新一代飞机可靠性数据库。
2 基于BiGRU-CRF 的命名实体识别模型
2.1 命名实体识别方法
命名实体识别(Named Entity Recognition,NER)是信息提取中的一部分,是指将文本中由单词组成的实体划分为人物、地点、组织、时间等类型[12]。飞机故障信息文本中的NER 是指从故障信息记录中挖掘出作为实体的概念,用于及时发现故障。命名实体识别方法一般分为3 类:基于规则和词典的方法[15]、基于机器学习的方法[16]以及基于深度学习的方法[17],如表1所示。
表1 命名实体识别的主要方法
基于规则和词典的方法,对人工的依赖性较高,耗时耗力。基于机器学习和深度学习的方法,能够自动完成特征提取,效率高。通过对以上几种方法对比分析,本文提出一种基于领域词典、规则和深度学习模型结合的方法。该方法采用深度学习模型进行训练,通过构建领域词典和规则对命名实体识别的结果进行修正[18],具有精确度高、效率高等优点。
2.2 命名实体识别流程
命名实体识别的具体流程如图2 所示,从数据库获取飞机文本信息,将数据分为测试文本和训练文本。基于规则库对测试文本进行预处理,结合领域词典对测试文本进行信息标注。输入训练文本到神经网络中,BiGRU 网络提取文本特征,CRF 层进行序列标注[19]。运用领域词典和规则对BiGRU-CRF 模型的实体识别结果进行补充,最后输出抽取结果。
图2 基于规则、词典和BiGRU-CRF模型的命名实体识别流程
2.3 命名实体识别模型
本文采用的命名实体识别模型是BiGRU-CRF模型,在GRU 模型基础上构建双向GRU 网络,将CRF与BiGRU结合,构建BiGRU-CRF模型。
2.3.1 BiGRU模型
GRU 模型中有更新门zt和复位门rt这2 个门,计算公式如下:
式中,xt是输入数据,ht是GRU 的输出,rt是复位门,zt是更新门,zt和ht共同控制隐藏状态ht-1到隐藏状态ht的计算。更新门控制ht-1,并输出值zt,σ是sigmoid 函数,充当门控制信号[17]。
GRU 网络是一种单向的神经网络结构,在传输过程中,只能获取从前往后的信息,无法捕捉从后往前的信息。因此,需要用双向GRU 网络解决该问题。BiGRU网络通过提取文本的前向和后向特征,可以更好地捕捉词语之间的依存关系。它实现了2 个门的计算,最终输出信息为其中表示BiGRU 的输入信息,表示BiGRU 网络的前向信息,表示BiGRU网络的后向信息[16]。
2.3.2 CRF模型
条件随机场(CRF)是一种用于词性标注和序列数据划分的概率图模型,属于无向图模型[20]。基于传输矩阵对注意向量和标记向量进行联合训练。得到更新后的传输矩阵以及损失函数值,对文本特征进行语法约束。
给定一个输入序列x=(x1,x2,…,xn),得到一个预测标签序列y=(y1,y2,…,yn),标签序列的得分可定义为:
式中,pi,yi是i个位置输出为yi的概率,Ai,yi+1是yi到yi+1的转移概率矩阵[21]。
对标签序列y的概率进行计算,可表示为:
式中,YX为标签序列的集合,将正确标签序列的对数概率最大化:
解码时,预测式(7)的最大分数,获得输出序列[18]:
2.3.3 BiGRU-CRF模型
BiGRU-CRF 模型分为BiGRU 模块和CRF 模块,BiGRU模块获取上下文的语义信息,CRF模块对标签之间进行约束,以确保预测的标签是合法的[22],如图3所示,该模型由以下几个部分组成:
图3 BiGRU-CRF模型
1)输入层:输入的是序列,通过字符层嵌入层输出矩阵。
2)BiGRU层:包含按前向顺序记忆和后向顺序记忆的两个单元,该结构使其能够充分利用上下文信息[23]。
3)全连接层:将前向和后向的输出进行拼接。
4)CRF层:对单词进行序列标记。
3 实例分析与验证
本文实验所选数据为某飞机故障报告中的故障归零报告,以WORD 形式存储。故障归零报告包括故障描述、机理分析、处理措施等信息,详细内容如表2所示。
表2 故障归零报告
本章基于领域专家经验构建领域词典库,将BiGRU-CRF 模型与其他模型进行对比分析,验证了该模型的有效性。通过中文分词、语义信息标注、信息抽取等步骤,完成了实体抽取过程。
3.1 构建领域词典
为了提升文本特征提取的质量,需构建一个领域词典库。本文实验构建的领域词典库包括地点、机型、故障件、故障件制造单位4 个词典。词典里的词语主要来源于某飞机故障报告中的文本类故障数据,通过人工标注、去重、纠正、补充、整理汇总等流程[24],构建较为完善的领域词典库。构建的词典信息如表3所示。
表3 领域词典
3.2 BiGRU-CRF模型训练
本文实验从某航空公司搜集了4700 多条故障数据,并对其中的故障发生日期、发生地点、机型、故障件名称、故障件制造单位5 类实体进行人工标注。为减轻数据标注的工作量,基于现有的词典对文本数据进行自动预标注,再进行人工纠正和补充。
实验工具是Python3.6 和TensorFlow-1.13。参数设置:词向量维度为128、GRU 隐藏节点数为128、学习率为0.005。将收集到的4700 多条故障数据的80%数据作为训练集,20%的数据作为测试集。
在研究基于模型的实体抽取基础上,主要对CRF、GRU、BiGRU、BiGRU-CRF 等模型进行对比实验。采用正确率P(Precision)、召回率R(Recall)、F1值3个标准作为性能评价指标[25],对命名实体的识别结果进行评价。实验结果如表4所示。
表4 不同模型的实验结果
从表4 可以看出,CRF 模型的准确率、召回率和F1 值都低于其他3 个模型。GRU 模型的准确率比CRF 模型的准确率高3.8 个百分点,由于GRU 模型只能获取前向信息,而无法获取后向信息,所以采用双向的BiGRU 模型的准确率比单向的GRU 高0.4 个百分点,BiGRU-CRF 模型其准确率比单独使用CRF 模型的准确高5.7 个百分点,比单独使用BiGRU 模型的准确率高1.5个百分点。
当BiGRU-CRF 模型分别结合领域规则、领域词典进行信息抽取后,准确率均有所提升。BiGRUCRF 结合领域规则后,准确率比BiGRU-CRF 模型提升了0.5 个百分点,结合领域词典后,准确率比BiGRU-CRF 模型提升了0.8 个百分点。当BiGRUCRF模型结合领域规则和领域词典进行信息抽取后,准确率最高,达到了95.2%,
3.3 语义信息标注
中文分词是文本语义处理的基础,是语义信息标注的重要过程。分词是将文本中的字符串合理切分成语言序列的过程[26]。本文实验选取“故障归零报告”中的“故障描述”作为信息抽取的对象,选用中文词法分析(LAC)工具进行分词处理,分词结果如表5所示。
表5 中文分词结果
对分词结果采用BIO(B-begin,I-inside,Ooutside)标记方法进行标注,其中B 表示航空装备故障描述的初始单词,I 表示故障描述中的中间或结尾单词,O 表示故障描述中的词不是命名识别所需要的物理信息[27]。对于PER 类型的实体,该实体的第一个标记被编码为B-PER,如果该实体由多个标记组成,接下来的标记被编码为I-PER,实体外部的所有标记被编码为O。如表6所示。
表6 语义信息标注结果
基于实体标签对文本信息进行BiGRU-CRF 标注,实现了信息标注的自动化处理[28]。由于汉语中存在词的意义和词的多义,模型无法完全实现语境语义词的标注,所以需要手工校对,例如:“喷管隔热屏”是一个故障件名称,BiGRU-CRU 模型将其标注成2个故障件名称。“加力输油管外圈”是一个故障件名称,BiGRU-CRF 模型将“加力”标注为动词,“输油管”和“外圈”标注为2个故障件名称。
针对上述的错误分析发现,构建的领域词典中并没有“喷管隔热屏”这个故障件名称。由于领域规则中规定如果多个故障件名称都不在词典里,选择第一个出现的故障件名称作为故障发生故障件名称,所以BiGRU-CRF 将“喷管”识别为第一个故障件名称,“隔热屏”识别为第二个故障件名称。领域词典中也没有“加力输油管外圈”这个故障件名称,所以BiGRUCRF模型将“加力”默认为是一个动词,领域词典中只包含“输油管”“外圈”这2个故障件名称,并没有构建“输油管外圈”这个故障件名称。所以BiGRU-CRF将“输油管外圈”识别成“输油管”和“外圈”这2 个故障件名称。为了提高信息抽取的准确率,要人工结合上下文语境进行分析,尽快确定语义信息标注的错误,最大限度地对语义标注结果进行校正[29],从而确保标注结果的正确性。同时,根据信息抽取的结果不断扩充更新领域词典库和规则库。
3.4 实体抽取
实验通过构建模板规则进行实体抽取。模板规则是指抽取的内容(段落或者实体)满足相对固定的模板或格式,可以通过判断字符串是否满足这些模板或格式来进行信息抽取[30]。从不同来源的飞机故障信息数据中总结提炼出文本信息抽取所需的规则,一共构建了128 条抽取规则,在算法模块构建时,将抽取规则固化到算法中,表7 显示了模板抽取规则的部分内容。
表7 模板抽取规则
实体筛选规则是指如果文本中出现了多个同类型的实体,需要定义一些筛选规则来判断哪个实体才是真正需要的实体[31],表8展示了实体筛选规则的实例。
表8 实体抽取实例
当出现多个日期实体(橘黄色标注),多个故障件实体(蓝色标注)时,需要判断哪一个才是需要的日期实体和故障件实体,如图4 所示。这时候需要人工构建一些实体筛选规则对这些实体进一步的筛选。实体筛选规则需要结合实际数据和领域内的专业知识,通过人工进行总结和整理[32]。
图4 实体筛选文本内容
文本信息抽取算法模块(Text Extraction)是一个用于抽取文本数据中关键信息的算法工具包[33],主要用于航空装备领域。该模块立足于航空装备领域常用的各类文档数据,并结合前沿的文本信息抽取算法,采用Python 语言进行开发,可用于处理各类报告文档、记录文档,将这些文档中包含的重要信息抽取出来,形成结构化的数据表,为航空装备领域内的数据分析提供数据来源。通过文本信息抽取算法将飞机故障报告(例如归零报告,包括WORD、PDF、Excel等格式),抽取出其中的故障发生日期、地点、部队、机型、用户编号、故障件名称、故障件制造单位等关键信息,并形成结构化的数据表,将数据表按照表格的形式存储到规则库中。
如表9 所示,采用模板规则对故障归零报告进行解析,提取出“故障描述”内容。基于领域词典和模板规则对“故障描述”里面的“机型”“地点”“发生日期”“故障件名称”“故障件制造单位”等实体进行抽取,通过文本信息抽取算法模块成功抽取出飞机实体信息。
表9 实体抽取结果
4 结束语
本文采用基于领域规则、词典和BiGRU-CRF 模型的方法进行飞机文本信息提取。通过专家构建领域词典和规则,对故障信息进行标注,结合BiGRUCRF模型进行预训练,并对训练结果进行了人工纠正和补充。实验结果表明,基于领域规则、词典和BiGRU-CRF 模型的方法识别正确率达到95.2%,验证了该方法的有效性。飞机故障信息文本中的关键词如时间、地点、机型、故障件名称、故障件制造单位等信息在模型语义标签信息抽取的准确性上取得了较好的效果,解决了传统实体抽取模型长期依赖人工特征的问题。作为未来的工作,笔者将继续探索不同的方法来合并更多的数据特征,处理其他语言的复杂性,并将该模型应用于不同的领域。