朱江,陳濤,李鶴喜,何振威,曾昭德,浦漢軍
(1.五邑大學(xué) 智能制造學(xué)部,廣東 江門 529020;2.深圳中集智能科技有限公司,廣東 深圳 518057)
壓縮機(jī)工單記錄文檔是由壓縮機(jī)維護(hù)人員在維修壓縮機(jī)后錄入到電腦系統(tǒng)中的文本數(shù)據(jù),該數(shù)據(jù)記錄了發(fā)生故障的設(shè)備名稱、故障描述、客戶需求、對(duì)應(yīng)的故障原因以及相關(guān)解決方案等信息. 利用自然語言處理技術(shù)從這些文檔中自動(dòng)識(shí)別出設(shè)備名稱和故障描述信息,當(dāng)同類設(shè)備發(fā)生相似的故障時(shí),就可以快速診斷故障原因和給出解決方案,提高壓縮機(jī)維護(hù)人員排除故障的效率. 目前,壓縮機(jī)故障分析領(lǐng)域多根據(jù)壓縮機(jī)運(yùn)行時(shí)的監(jiān)控?cái)?shù)據(jù)或震動(dòng)數(shù)據(jù)來預(yù)測可能出現(xiàn)的故障[1-2],尚缺少一種基于自然語言處理技術(shù)的從壓縮機(jī)工單記錄文檔中自動(dòng)識(shí)別故障信息的方法. 在其他領(lǐng)域,利用自然語言處理技術(shù)對(duì)中文文本的信息進(jìn)行自動(dòng)識(shí)別的相關(guān)研究包括:Peng和Dredze[3]研究中文社交媒體上的命名實(shí)體識(shí)別,發(fā)布了包含1 890條微博4類實(shí)體標(biāo)注的中文微博命名實(shí)體識(shí)別語料,并使用多種預(yù)訓(xùn)練的詞向量,結(jié)合雙向LSTM(Long Short-Term Memory) 模型在微博數(shù)據(jù)集上對(duì)人名、地點(diǎn)、組織名和國家名進(jìn)行了識(shí)別. 王月等[4]發(fā)布了標(biāo)注有報(bào)警人姓名、報(bào)警時(shí)間、相關(guān)地點(diǎn)和詐騙手段等7類實(shí)體的電信詐騙項(xiàng)相關(guān)接警處理文本構(gòu)成的中文命名實(shí)體數(shù)據(jù)集,并使用帶有注意力和條件隨機(jī)場(Conditional Random Field,CRF)的雙向 LSTM 微調(diào) BERT(Bidirectional Encoder Representations From Transformers)預(yù)訓(xùn)練模型,對(duì)案發(fā)時(shí)間、受害人名、詐騙金額以及處理方式這4類實(shí)體進(jìn)行自動(dòng)識(shí)別,取得了較好的效果. 有鑒于此,本文把基于 BERT預(yù)訓(xùn)練模型的微調(diào)方法用于壓縮機(jī)工單文檔識(shí)別中,以自動(dòng)識(shí)別其中的設(shè)備實(shí)體和故障描述信息.
BERT預(yù)訓(xùn)練模型是采用 Transformer[5]作為預(yù)訓(xùn)練模型特征提取的基本單元,模型訓(xùn)練時(shí)包含了兩種訓(xùn)練任務(wù):一種是從輸入句子中隨機(jī)遮蓋一部分詞語,然后訓(xùn)練模型根據(jù)剩余的詞來猜測被遮住的詞;另一種是輸入句子對(duì)后,將訓(xùn)練數(shù)據(jù)中50%的真實(shí)上下句作為正例,剩余的50%句子對(duì)的后半句用隨機(jī)抽取的句子替換作為負(fù)例,構(gòu)造二元分類器進(jìn)行訓(xùn)練. 預(yù)訓(xùn)練好的模型學(xué)習(xí)并存儲(chǔ)了大量人類語言的句法和語義信息.
圖1 面向壓縮機(jī)故障文本的BERT-fine-tune模型框架圖
本文在BERT預(yù)訓(xùn)練模型上加入全連接層對(duì)BERT預(yù)訓(xùn)練模型進(jìn)行微調(diào),構(gòu)建用于壓縮機(jī)故障文本的命名實(shí)體識(shí)別模型,簡稱 BERT-fine-tune模型①代碼網(wǎng)址:https://github.com/xuanzebi/BERT-CH-NER. 其框架圖如圖 1所示. 其中,模型的輸入是向量化的壓縮機(jī)故障標(biāo)注文本,位于框架圖的下方,由詞向量、句子分割向量和字符位置向量3種向量組成. 詞向量是對(duì)標(biāo)注好的壓縮機(jī)故障文本中的詞進(jìn)行向量化后的結(jié)果,句子分割向量是輸入文本分句后的標(biāo)志符號(hào),字符位置向量是一個(gè)詞在句子中的序號(hào),句子中的第一個(gè)詞序號(hào)為0,第二個(gè)詞序號(hào)為 1,以此類推. 模型的主體是采用12層的Transformer在大規(guī)模中文語料上訓(xùn)練得到的BERT中文預(yù)訓(xùn)練模型②代碼網(wǎng)址:https://github.com/google-research/bert. 其輸出的向量維度大小為768,多頭自注意力層的參數(shù)為12,模型總參數(shù)大小為110 Mb. 全連接層含有768個(gè)隱含單元,輸出維度為6的向量,向量的每一維表示壓縮機(jī)故障標(biāo)注文本中6類標(biāo)簽的概率. 最后,通過Softmax函數(shù),選擇概率最大的標(biāo)簽作為模型的預(yù)測結(jié)果.
我們從壓縮機(jī)工單數(shù)據(jù)中提取出了設(shè)備的故障描述、原因分析和解決方案等文本內(nèi)容,利用標(biāo)注工具對(duì)文本中的設(shè)備和故障描述進(jìn)行人工標(biāo)注,從而構(gòu)建了設(shè)備實(shí)體數(shù)據(jù)集和故障描述數(shù)據(jù)集. 在數(shù)據(jù)集中,文本內(nèi)容被打上不同的標(biāo)簽,“B-”代表實(shí)體的開始,“I-”代表實(shí)體的中間和結(jié)尾部分,“O”標(biāo)簽代表與實(shí)體無關(guān)的字符. 在將設(shè)備實(shí)體數(shù)據(jù)和故障描述數(shù)據(jù)輸入到模型的過程中,用標(biāo)簽“[CLS]”表示一句話的開始,標(biāo)簽“[SEP]”表示結(jié)尾. 由于系統(tǒng)要求每句話的輸入長度是固定的,用“[PAD]”標(biāo)簽自動(dòng)填充輸入語句未達(dá)到系統(tǒng)設(shè)定的最大長度的部分,對(duì)于超出最大長度的句子,系統(tǒng)自動(dòng)去除超出的部分. 這樣,從設(shè)備實(shí)體數(shù)據(jù)集中輸入的標(biāo)簽為“B-設(shè)備”、“I-設(shè)備”、“O”、“[CLS]”、“[SEP]”和“[PAD]”6類標(biāo)簽;從故障描述數(shù)據(jù)集中輸入的標(biāo)簽為“B-故障”、“I-故障”、“O”、“[CLS]”、“[SEP]”和“[PAD]”6類標(biāo)簽. 最后,分別將設(shè)備實(shí)體數(shù)據(jù)集和故障描述數(shù)據(jù)集輸入到 BERT-fine-tune模型中,構(gòu)建壓縮機(jī)設(shè)備名稱自動(dòng)識(shí)別模型和故障描述自動(dòng)識(shí)別模型.
本文按照8:2的比例對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練集和測試集的劃分,相關(guān)統(tǒng)計(jì)信息如表1所示.
表1 訓(xùn)練集與測試集的統(tǒng)計(jì)信息
本次實(shí)驗(yàn)使用精確率、召回率和F1值3種常用指標(biāo)來評(píng)價(jià)模型的性能. 計(jì)算公式如下:
其中,TP表示正類預(yù)測成正類的個(gè)數(shù),F(xiàn)P表示正類預(yù)測成負(fù)類的個(gè)數(shù),F(xiàn)N表示負(fù)類預(yù)測成正類的個(gè)數(shù).P表示精確率,即識(shí)別出的正確實(shí)體個(gè)數(shù)占識(shí)別出的總實(shí)體個(gè)數(shù)的比例.R表示召回率,即識(shí)別出的正確實(shí)體個(gè)數(shù)占原始語料中實(shí)體個(gè)數(shù)的比例. 兩種指標(biāo)分別從識(shí)別精準(zhǔn)度和識(shí)別效率兩個(gè)方面進(jìn)行評(píng)價(jià),本文使用F1值來進(jìn)行模型識(shí)別效果的比對(duì),F(xiàn)1值是綜合考慮了精確率P和召回率R的評(píng)價(jià)指標(biāo).F1值越高,即模型的識(shí)別效果越好.
BiLSTM+CRF是命名實(shí)體識(shí)別領(lǐng)域普遍使用的基線方法,該方法通過雙向LSTM網(wǎng)絡(luò)對(duì)文本進(jìn)行編碼和解碼,在輸出層中引入CRF來限制輸出標(biāo)簽概率,具有很好的性能和魯棒性. Lattice LSTM是在 BiLSTM+CRF模型基礎(chǔ)上的改進(jìn)模型,其在很多中文數(shù)據(jù)集上的命名實(shí)體識(shí)別效果好于BiLSTM+CRF.
實(shí)驗(yàn)使用Python 3.6,Tensorflow 1.13. 微調(diào)BERT模型時(shí)使用的實(shí)驗(yàn)參數(shù)為:序列最大長度設(shè)置為128,學(xué)習(xí)率設(shè)置為5e-5,批訓(xùn)練大小為16. BiLSTM+CRF與Lattice LSTM模型訓(xùn)練迭代次數(shù)為40次,BERT-fine-tune模型訓(xùn)練迭代次數(shù)為5次. 在colab實(shí)驗(yàn)平臺(tái)使用GPU模式對(duì)模型進(jìn)行訓(xùn)練.
設(shè)備實(shí)體數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表 2所示. 從表中可以看出,兩個(gè)對(duì)比方法 BiLSTM-CRF和Lattice LSTM的F1值分別達(dá)到了85.34%和88.38%,而本文提出的BERT-fune-tune方法的F1值達(dá)到了95.05%,比BiLSTM+CRF和Lattice LSTM提高了9.71%和6.67%. 由此可見,該方法比業(yè)界普通使用的基線方法能更有效地識(shí)別出工單記錄文檔中的設(shè)備實(shí)體信息.
表2 設(shè)備實(shí)體數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 %
故障描述數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表3所示. 從表中可以看出,BERT-fine-tune的表現(xiàn)仍然超過了其他模型,其F1值達(dá)到了74.44%,而BiLSTM+CRF和Lattice LSTM的F1值均不到58%. BERT-finetune比BiLSTM+CRF和Lattice LSTM的1F值分別提升了16.85%和16.75%. 實(shí)驗(yàn)結(jié)果驗(yàn)證了該方法在故障描述識(shí)別上也是同樣有效的.
表3 故障描述數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 %
表4分別展示了3種方法對(duì)兩個(gè)設(shè)備實(shí)體和一段故障描述的識(shí)別結(jié)果,從表中可以看出,3種方法都能正確識(shí)別“O型圈”這樣的實(shí)體,但當(dāng)實(shí)體中包含有雙引號(hào)(特殊字符)的時(shí)候,BiLSTM+CRF和Lattice LSTM都沒有完全正確識(shí)別,只有BERT-fine-tune模型正確識(shí)別出了該實(shí)體. 對(duì)于“一二級(jí)活塞組裝螺釘”這樣的設(shè)備實(shí)體,BiLSTM+CRF模型將其識(shí)別成了兩個(gè)較短的實(shí)體,即“一二級(jí)活塞”和“螺釘”,而BERT-fine-tune和Lattice LSTM可以正確的識(shí)別. 對(duì)于比較復(fù)雜的故障描述,如“水泵電機(jī)過載額定電流1.8 A,實(shí)際電流2.3 A”,BERT-fine-tune模型也能正確識(shí)別,而BiLSTM+CRF和Lattice LSTM均沒有正確識(shí)別該故障描述.
表4 3種方法的識(shí)別結(jié)果展示
本文利用BERT微調(diào)模型對(duì)壓縮機(jī)工單記錄文檔中的故障信息進(jìn)行分析,自動(dòng)識(shí)別出文檔中設(shè)備實(shí)體和故障描述. 通過對(duì)設(shè)備實(shí)體數(shù)據(jù)集和故障描述數(shù)據(jù)集進(jìn)行識(shí)別,F(xiàn)1值分別達(dá)到了95.05%和74.44%,比兩種基線方法具有更好的識(shí)別效果,驗(yàn)證了 BERT-fine-tune方法的有效性. 本文下一步的研究方向包括進(jìn)一步探索針對(duì)結(jié)構(gòu)復(fù)雜的長文本故障描述的自動(dòng)識(shí)別方法,探索利用領(lǐng)域知識(shí)提升命名實(shí)體識(shí)別方法的效果,以及將自動(dòng)識(shí)別的故障信息結(jié)合該設(shè)備發(fā)生故障前后的運(yùn)行數(shù)據(jù),以幫助構(gòu)建更加有效的壓縮機(jī)故障預(yù)測模型等.