一种面向汽车发动机故障诊断的命名实体识别方法
阅读说明:本技术 一种面向汽车发动机故障诊断的命名实体识别方法 (Named entity identification method for automobile engine fault diagnosis ) 是由 陈志成 刘孝保 阴艳超 陆宏彪 于 2019-08-28 设计创作,主要内容包括:本发明公开了一种面向汽车发动机故障诊断的命名实体识别方法,包括步骤1:建立汽车发动机故障诊断命名实体识别文本语料库;步骤2:对语料库进行预处理;步骤3:对预处理后的文本数据进行分布式表示,通过BERT语言模型得到文本预训练“词+词性”向量;步骤4:将得到的文本预训练“词+词性”向量输入到BiLstm神经网络中进行文本特征提取;步骤5:在BiLstm神经网络后引入Attention机制捕捉文本特征中较为重要的部分;步骤6:结合CRF模型,得到汽车发动机故障诊断命名实体识别的最优标注序列。本发明解决了现有方法中缺少汽车发动机故障诊断相关的数据集,知识实体句法特征明显,知识实体内部存在大量修饰词干扰,实体全文标签不一致,从而使得命名实体识别结果准确率低的问题。(The invention discloses a named entity identification method for automobile engine fault diagnosis, which comprises the following steps of 1: establishing a vehicle engine fault diagnosis named entity recognition text corpus; step 2: preprocessing a material library; and step 3: performing distributed representation on the preprocessed text data, and obtaining a text pre-training word + part of speech vector through a BERT language model; and 4, step 4: inputting the obtained text pre-training word + part of speech vectors into a BiLstm neural network for text feature extraction; and 5: introducing an Attention mechanism behind a BiLstm neural network to capture a more important part in text features; step 6: and obtaining the optimal labeling sequence for the automobile engine fault diagnosis named entity recognition by combining the CRF model. The method solves the problems that a data set related to automobile engine fault diagnosis is lacked, the syntactic characteristics of a knowledge entity are obvious, a large number of modifier interferences exist in the knowledge entity, and the full-text labels of the entity are inconsistent, so that the accuracy of the named entity recognition result is low.)
技术领域
本发明涉及一种面向汽车发动机故障诊断的命名实体识别方法,属于信息技术领域。
背景技术
随着信息技术的高速发展,汽车发动机故障诊断技术呈现出大数据环境,海量的汽车发动机故障诊断文本数据如汽车发动机维修保养记录、故障诊断学术论文和专利等不断产生并积累,高效准确地从这些数据中挖掘故障知识信息,可为汽车发动机故障诊断技术带来较大便利。在挖掘汽车发动机故障诊断文本信息的过程中,命名实体识别是一项非常必要的技术。通过命名实体识别,可以高效准确地从汽车发动机故障诊断文本数据中提取诸如发动机零部件,故障表现,故障原因,处理方法等信息,为后续进一步的数据分析利用提供基础。
目前,基于深度学习模型的命名实体方法逐渐成为主流,相较于传统的基于规则模板或潜层机器学习方法的模型,深度学习模型能够获取学习到更多的文本特征,从而较大提升命名实体识别的准确率。然而,目前的基于深度学习模型的命名实体方法主要面向公共领域,缺少汽车发动机故障诊断相关的数据集;另外,分析汽车发动机故障诊断相关文本,发现不同知识实体句法成分存在较大差异,同时知识内部存在大量修饰词干扰;进一步地,同一词语在不同的知识实体中被赋予的标签不同,以上所述都会给汽车发动机故障诊断的命名实体识别造成困难,使识别效果不理想。
发明内容
本发明提供了一种面向汽车发动机故障诊断的命名实体识别方法,以用于解决现有方法中缺少汽车发动机故障诊断相关的数据集,知识实体句法特征明显,知识实体内部存在大量修饰词干扰,实体全文标签不一致,从而使得命名实体识别结果准确率低的问题。
本发明的技术方案是:一种面向汽车发动机故障诊断的命名实体识别方法,所述方法步骤如下:
步骤1:建立汽车发动机故障诊断命名实体识别文本语料库;
步骤2:对语料库进行预处理;
步骤3:对预处理后的文本数据进行分布式表示,通过BERT语言模型得到文本预训练“词+词性”向量;
步骤4:将得到的文本预训练“词+词性”向量输入到BiLstm神经网络中进行文本特征提取;
步骤5:在BiLstm神经网络后引入Attention机制捕捉文本特征中较为重要的部分;其中,较为重要的部分指文本特征中可以组成知识实体的部分;
步骤6:结合CRF模型,得到汽车发动机故障诊断命名实体识别的最优标注序列。
所述汽车发动机故障诊断命名实体语料库由包括汽车发动机维修保养记录、汽车发动机故障诊断学术论文、汽车发动机故障诊断专利申请在内的含有汽车发动机故障诊断数据的文本组成。
所述语料库预处理具体为:首先使用分词软件对语料库进行分词,其次对分词后的文本进行词性标注,再对经分词和词性标注后的文本过滤停用词,接着对经上述处理的文本进行实体标注,最后将语料库分为训练集和测试集。
所述实体标注采用BIESO标注方法,其中B、I、E、S分别代表实体的开端、内部、尾部、单词为实体标签,O代表非实体标签;BIES标签后对应实体类别标签,包括ENGP、FAU、CAU和SOL,ENGP表示发动机零部件、FAU表示故障表现、CAU表示故障原因和SOL表示故障处理方法。
所述文本数据分布式表示是指将经过预处理后的词语与其对应的词性作为整体,利用BERT语言模型获得“词+词性”的特征向量。
所述BiLstm是指正反双向的Lstm网络。
本发明的有益效果是:
1、本发明构建了面向汽车发动机故障诊断命名实体识别相关的数据集,并通过BERT语言模型获取“词+词性”向量,有效考虑了故障诊断知识实体句法特征明显的特点,同时解决了由实体全文标签不一致而影响知识实体识别准确率的问题。
2、本发明在BiLstm神经网络后引入Attention机制捕捉文本特征中较为重要的部分,有效解决了故障诊断知识实体内部存在大量修饰词干扰的问题。
3、本发明可以有效地提取出汽车发动机故障诊断文本数据中的发动机零部件、故障表现、故障原因和故障处理方法,为后续进一步的数据分析利用提供基础。
附图说明
图1为本发明流程图;
图2为本发明模型结构图;
图3为BiLstm模型结构图。
具体实施方式
实施例1:如图1-3所示,一种面向汽车发动机故障诊断的命名实体识别方法,所述方法步骤如下:
步骤1:建立汽车发动机故障诊断命名实体识别文本语料库;
步骤2:对语料库进行预处理;
步骤3:对预处理后的文本数据进行分布式表示,通过BERT语言模型得到文本预训练“词+词性”向量;
步骤4:将得到的文本预训练“词+词性”向量输入到BiLstm神经网络中进行文本特征提取;
步骤5:在BiLstm神经网络后引入Attention机制捕捉文本特征中较为重要的部分;其中,较为重要的部分指文本特征中可以组成知识实体的部分(如:针对“冷却液经常出现温度过高”这一类的实体,因为认为”经常出现“这两个词不宜组成知识实体,这两个不相关词的存在对”冷却液温度过高“这一故障实体的识别会形成干扰,因此我们引进Attention机制来降低无关词的干扰,即”捕捉文本中较为重要的部分);
步骤6:结合CRF模型,得到汽车发动机故障诊断命名实体识别的最优标注序列。
进一步地,可以设置所述汽车发动机故障诊断命名实体语料库由包括汽车发动机维修保养记录、汽车发动机故障诊断学术论文、汽车发动机故障诊断专利申请在内的含有汽车发动机故障诊断数据的文本组成。
进一步地,可以设置所述语料库预处理具体为:首先使用分词软件对语料库进行分词(如先使用中科院的ICTCLAS分词工具对语料数据进行分词),其次对分词后的文本进行词性标注,再对经分词和词性标注后的文本过滤停用词,接着对经上述处理的文本进行实体标注,最后将语料库分为训练集和测试集。
进一步地,可以设置所述实体标注采用BIESO标注方法,其中B、I、E、S分别代表实体的开端、内部、尾部、单词为实体标签,O代表非实体标签;BIES标签后对应实体类别标签,包括ENGP、FAU、CAU和SOL,ENGP表示发动机零部件、FAU表示故障表现、CAU表示故障原因和SOL表示故障处理方法。如,标注为:B-FAU等等形式。假设一段文本内容为“生活中经常遇到汽车发动机无法启动或者多次启动的现象90%是由于蓄电池电量不足引起的”,其标注结果如表1所示。
表1文本标注实例
分词
词性
标注
分词
词性
标注
生活中
adv
O
的
par
O
经常
adv
O
现象
noun
O
遇到
verb
O
90%
nun
O
汽车
noun
B-NEGP
是
verb
O
发动机
noun
E-ENGP
由于
pre
O
无法
adv
B-FAU
蓄电池
noun
B-CAU
启动
verb
E-FAU
电量
noun
I-CAU
或者
conj
O
不足
adj
E-CAU
多次
num
B-FAU
引起
adv
O
启动
verb
E-FAU
的
par
O
进一步地,可以设置所述文本数据分布式表示是指将经过预处理后的词语与其对应的词性作为整体,利用BERT语言模型获得“词+词性”的特征向量。
进一步地,可以设置所述BiLstm是指正反双向的Lstm网络。其中一个Lstm在某一时刻t沿着正向时序获得上文信息
另一个Lstm沿着逆向时序获得下文信息将t时刻的两个Lstm的隐藏层向量连接起来,形成BiLstm在该时刻的输出ht表示当前时刻t的上下文信息。进一步地,所述的Attention机制的计算方法为:
eki=vtanh(Whk+Uhi+b)
hk'=H(C,h(k-1)')
其中,hk'计算的是注意力概率分布的语义编码,aki计算的是结点i对于结点k的注意力权重。T为输入序列的单词数目,v、W、U为权重矩阵,b是一个偏执项,开始是随机生成的,训练的过程中不断调b的大小使模型性能达到最优。Attention机制的输入为BiLSTM的输出;hi为BiLSTM模型中的前向输出
hk为BiLSTM模型中反向输出BiLSTM输出的所有结果都进入Attention进行计算。C是语义编码。hk'为最终的特征向量。
进一步地,所述的CRF序列标注计算方法为:
用X=[x1,x2,....,xn-1,xn]表示输入文本向量序列,P=[v1,v2,...,vn-1,vn]表示Attention机制学习到的特征向量,对于一个预测序列y=[y1,y2,...,yn-1,yn],其中yt为t时刻的输入向量xt预测标签索引,则该预测序列的得分值为:
其中,A为转移矩阵,即Ai,j为标签i到标签j的转移概率。在原输入序列X的条件下产生标记序列y的概率为:
其中YX表示对于输入序列X所有可能出现的标记序列集合。对于正确的预测结果序列y,训练过程中需要最大化序列的对数概率:
预测时,选择预测结果,使得其预测概率最大:
得到汽车发动机故障诊断命名实体识别的最优标注序列。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。