運(yùn)佳恩 高永兵*
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
隨著風(fēng)電行業(yè)的快速發(fā)展,風(fēng)電自動(dòng)檢修服務(wù)不斷優(yōu)化,風(fēng)電自動(dòng)檢修技術(shù)也在不斷進(jìn)步和完善。在風(fēng)電自動(dòng)檢修系統(tǒng)中,員工可以采用便攜式設(shè)備取代錄音、紙質(zhì)記錄等方式,可為工作人員提供便利,提高工作效率,降低某些安全隱患。風(fēng)電自動(dòng)檢修系統(tǒng)需要語音轉(zhuǎn)文字和文本糾錯(cuò)技術(shù)提高系統(tǒng)的識別和理解能力,從而提高系統(tǒng)的自動(dòng)化程度和準(zhǔn)確性的理解和分析能力,保證自動(dòng)檢修系統(tǒng)的高效運(yùn)行。因此,為了確保風(fēng)電自動(dòng)檢修系統(tǒng)的準(zhǔn)確性和可靠性,必須解決方言和專業(yè)詞匯混雜使用的問題。語音轉(zhuǎn)文字和文本糾錯(cuò)的目的就是通過技術(shù)手段對口音和專業(yè)術(shù)語進(jìn)行識別和糾錯(cuò),提高系統(tǒng)的準(zhǔn)確性和可靠性,減少錯(cuò)誤,提高系統(tǒng)的智能化水平。風(fēng)電自動(dòng)檢修系統(tǒng)能夠更準(zhǔn)確、高效地進(jìn)行檢修工作,提高風(fēng)電設(shè)備的安全性和穩(wěn)定性。因?yàn)橐薷牡淖植唤?jīng)常使用,N-gram[1]模式并不適用該主題。BERT[2]中已有的Mask Language[3]模式可以用于文字校正,但該算法采用了對文字進(jìn)行無規(guī)則遮擋的模式,導(dǎo)致無法精確地進(jìn)行訓(xùn)練。
作為計(jì)算機(jī)語言學(xué)中一個(gè)交叉學(xué)科的分支,語音辨識是語言學(xué)、計(jì)算機(jī)科學(xué)、電子工程學(xué)等學(xué)科的結(jié)合,發(fā)展成了一種能夠?qū)⒄Z言的辨識和轉(zhuǎn)換為文字的技術(shù)。語音識別實(shí)質(zhì)上就是讓機(jī)器把人說出來的話轉(zhuǎn)化為可以被機(jī)器所理解的信息和數(shù)據(jù),通過對語音數(shù)據(jù)進(jìn)行加工、整理、聚類等處理,得到相應(yīng)的模板。
語音識別原理如圖1所示。
圖1 語音識別原理
近年來,深度和點(diǎn)對點(diǎn)的學(xué)習(xí)在各種類型的工作中都顯示出了較強(qiáng)的提取特性,使語音的識別精度大幅度提升。ASR[4]技術(shù)也逐漸被應(yīng)用于各種場合,并逐漸受到重視。
文本糾錯(cuò)技術(shù)可以分為兩大類別,即基于規(guī)則和基于統(tǒng)計(jì)的方法?;谝?guī)則的方法需要手動(dòng)編寫規(guī)則檢測和糾正文本中的錯(cuò)誤,如正則表達(dá)式或規(guī)則庫,但需要大量的人力和時(shí)間編寫規(guī)則,且很難覆蓋所有的錯(cuò)誤類型?;诮y(tǒng)計(jì)的方法則利用大規(guī)模的語料庫訓(xùn)練模型,以自動(dòng)檢測和糾正文本中的錯(cuò)誤,通常包括訓(xùn)練語言模型和錯(cuò)誤模型兩個(gè)步驟。例如,基于統(tǒng)計(jì)的方法可以使用N-gram模型或神經(jīng)網(wǎng)絡(luò)模型[5]檢測和糾正錯(cuò)誤,具有自適應(yīng)不同文本領(lǐng)域和風(fēng)格的優(yōu)點(diǎn)。
Transformer[6]的雙向編碼器從2018年年底被推出后就備受矚目,成為Word2Vec[7]的替代品,在多個(gè)方面的準(zhǔn)確率都得到了極大提高,是近幾年自殘差網(wǎng)絡(luò)突破較大的技術(shù)之一。文本糾錯(cuò)通常使用Transformer和雙向模型,是因?yàn)檫@些模型在處理文本序列任務(wù)時(shí)表現(xiàn)出色。
雙向模型也是文本糾錯(cuò)任務(wù)中常用的模型,使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BiRNN)[8]學(xué)習(xí)序列中上下文的信息,其中循環(huán)神經(jīng)網(wǎng)絡(luò)可以分別從序列的前向和后向方向?qū)π蛄羞M(jìn)行處理。雙向建模方法能夠更好地利用序列上下文信息,從而在文本糾錯(cuò)任務(wù)中具有更好的表現(xiàn)。
BERT是一種預(yù)先培訓(xùn)的模式,其意義在于通過對海量未加標(biāo)記的資料進(jìn)行無監(jiān)督訓(xùn)練,獲取包括語言、句法、詞義等在內(nèi)的海量的先驗(yàn)性知識,并通過對所學(xué)到的知識進(jìn)行調(diào)整。
構(gòu)造token的embeddings時(shí),需要每個(gè)embedding中都包括相關(guān)的文字和絕對的定位,以便使每一個(gè)embedding都含有文字的順序。在BERT中,各個(gè)標(biāo)記的絕對定位信息通常用position embeddings[9]表達(dá),也就是將一個(gè)任意點(diǎn)作為初始值,通過模型訓(xùn)練獲得一個(gè)含有定位的區(qū)域。通常使用segment embedding指示下一步Sentence預(yù)設(shè)工作的各個(gè)token的語句。選擇BERT模式時(shí),通常會(huì)把一個(gè)詞用3種embedding結(jié)合在一起。
BERT的輸入向量如圖2所示。
圖2 BERT的輸入向量
Token embedding表示字的量化,CLS標(biāo)記被用來進(jìn)行分類工作,在其他工作中可以被忽視?!癝EP”標(biāo)記被用來分隔兩個(gè)語句。
Segment embedding表示前和后兩種語句的區(qū)別,在進(jìn)行下一步推理的練習(xí)時(shí),用來識別前后的不同語句。
Position embedding由上文可知通過模型訓(xùn)練得到當(dāng)前token的位置信息。
BERT-BiLSTM-CRF模型是一種基于深度學(xué)習(xí)的序列標(biāo)注模型,主要用于文本糾錯(cuò)任務(wù),結(jié)合了BERT預(yù)訓(xùn)練模型、雙向LSTM(BiLSTM)[10]和條件隨機(jī)場(CRF)[11]3種不同的模型,以提高文本糾錯(cuò)的準(zhǔn)確性和效率。BERT模型提供了上下文信息的豐富表示,BiLSTM模型可以更好地捕捉序列信息的前后依賴關(guān)系,而CRF模型可以在全局上對標(biāo)簽進(jìn)行約束,從而避免局部最優(yōu)解。因此,BERTBiLSTM-CRF模型可以更準(zhǔn)確地識別文本中的錯(cuò)誤,并進(jìn)行適當(dāng)糾正。
掩碼語言模型的本質(zhì)是一種具有雙向的自注意力和遮蔽機(jī)制的Transformer編碼器,該譯碼者可以在各個(gè)層次上對語境進(jìn)行雙向表達(dá)。
錯(cuò)誤詞主要出現(xiàn)在專業(yè)詞的部分,指的是因?yàn)榘l(fā)音問題、詞匯生疏而無法辨認(rèn)的單詞,也就是在語音辨識模組中出現(xiàn)的失誤。在發(fā)音模組中,正確單詞的標(biāo)注主要根據(jù)語音辨識的語句與人工聆聽的語句進(jìn)行對比而得出。
BERT中的掩碼語言模型(MLM)[12]機(jī)制原本可以修正文字,調(diào)整掩碼方法后,把模糊的錯(cuò)誤分為3種,即專業(yè)詞錯(cuò)誤、專用詞雜糅、專業(yè)詞切割。
專業(yè)詞錯(cuò)誤標(biāo)注如表1所示。
表1 專業(yè)詞錯(cuò)誤標(biāo)注
BERT-BiLSTM-CRF是一個(gè)將CRF與BERT模式相融合的綜合模式。在獲得一個(gè)待測的基因時(shí),把該序列導(dǎo)入BERT預(yù)培訓(xùn)模式,獲得與被測序列同樣長的新序列,該序列由原來的文字形式轉(zhuǎn)化成矢量形式,且每一矢量都含有大量的語義,把新的序列加入BiLSTM中,給新的順序加上前后兩種不同的順序,在CRF層中加入一個(gè)新的標(biāo)記,對所預(yù)測的標(biāo)記加入一定限制,以確保標(biāo)記的正確性。該模式對3種不同的針對性錯(cuò)誤(專業(yè)詞錯(cuò)誤、專業(yè)詞雜糅、專業(yè)詞切割)進(jìn)行了分類。
BERT-BiLSTM-CRF模型架構(gòu)如圖3所示。
圖3 BERT-BiLSTM-CRF模型架構(gòu)
2.2.1 BERT層
待檢測的中文文本序用W={w1,w2,…,wn}表達(dá)。把這些輸入順序與BERT模式相匹配,在BERT中產(chǎn)生3個(gè)單詞(字符矢量、句子矢量和位置矢量),把3個(gè)單詞嵌套在一起,形成BERT的輸入順序X={x1,x2,…,xn}。BERT的預(yù)習(xí)模型能夠有效地利用詞語的前后兩邊的信息,從而獲得更好的詞匯分配特征[8]。
2.2.2 BiLSTM層
中文的錯(cuò)誤校正效果與語境的關(guān)系存在某種關(guān)系,所以需要將語境的相關(guān)知識引入序列。在BERT的輸出順序X={x1,x2,…,xn}后,將其添加到LSTM的兩個(gè)模式。第一個(gè)LSTM是正向流動(dòng),token隱藏狀態(tài)與上一個(gè)token隱藏狀態(tài)和本token值有關(guān),得到隱層序列H={h1,h2,…,hn}中,h'i的值由h'i+1的值和xi的值計(jì)算得到,隱層序列H包含了前向token的信息。第二個(gè)LSTM與第一個(gè)LSTM形式相同,只是從前向變成了后向輸入,因此隱層序列H'={h'1,h'2,…,h'n}中,h'i的值由h'i+1的值和xi的值計(jì)算得到,隱層序列H'包含了后向token的信息。將前向隱層序列H和后向的隱層序列H'直接拼接在一起,就得到了同時(shí)包含前向信息和后向信息的序列Y={y1,y2,…,yn},其 中yi=[hi,h'i]。BiLSTM層最終的輸出由包含過去的信息和包含將來的信息共同組成。
2.2.3 CRF層
CRF的輸出為BERT和BiLSTM兩層的訓(xùn)練后的序列Y,在此輸入順序上,根據(jù)機(jī)組培訓(xùn)模式,生成對應(yīng)該輸入順序的標(biāo)記順序L,并從一個(gè)特定標(biāo)記集合選擇各個(gè)標(biāo)記L。
將CRF的概念引入該模式。參照常用的順序標(biāo)記方法,將CRF層置于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的末級,將BiLSTM的輸出當(dāng)作順序的輸入,并對各個(gè)字母進(jìn)行標(biāo)記。
BERT模式裝載了經(jīng)過培訓(xùn)的谷歌chineseL-12H-768A-12的checkpoint。在訓(xùn)練過程中,僅對BiLSTM-CRF進(jìn)行了參數(shù)的修正。采用4種順序標(biāo)記模式對每個(gè)語句進(jìn)行了獨(dú)立的預(yù)測,根據(jù)方程式進(jìn)行判定:
在BERT的預(yù)先培訓(xùn)工作中,有一種掩碼語言模型是為了在含有mask標(biāo)記的順序中對mask進(jìn)行預(yù)言。MLM是一個(gè)典型的語言建模工作,可以被用來預(yù)報(bào)遺漏的差錯(cuò)。本研究采用BERT掩碼的方法對缺失類型的差錯(cuò)進(jìn)行校正。針對不同類型的標(biāo)記,如專業(yè)詞錯(cuò)誤、專業(yè)詞雜糅、專業(yè)詞切割等,給出了相應(yīng)的處理方法。
在糾錯(cuò)過程中,利用BERT的掩碼語言模式對誤分類進(jìn)行了修正,利用BERT的掩碼語言模式和模糊集合的匹配對差錯(cuò)進(jìn)行了預(yù)測。
3.1.1 實(shí)驗(yàn)環(huán)境
操作系統(tǒng)為Windows,開發(fā)語言為Python,開發(fā)框架為pycharm。
通過對風(fēng)力發(fā)電機(jī)組的維修過程進(jìn)行分析,篩選和剔除了無用的剩余33 701條錯(cuò)誤文本,并對50 139條錯(cuò)誤文本進(jìn)行熔斷,將兩者的測試集、驗(yàn)證集和訓(xùn)練集的數(shù)量分別進(jìn)行1∶1∶8的處理。
3.1.2 實(shí)驗(yàn)數(shù)據(jù)
本研究還建立了專用詞詞表,通過手工抽取專門詞匯和對其進(jìn)行了歸類,一種是風(fēng)力發(fā)電行業(yè)中使用的專門詞匯,來自《電力術(shù)語匯總》的文獻(xiàn);名詞的出處是《電力術(shù)語匯總》,共有972個(gè)條目,地名有4 356個(gè),對每條數(shù)據(jù)進(jìn)行標(biāo)注。專業(yè)詞錯(cuò)誤類錯(cuò)誤,在冗余的位置標(biāo)注“5”;專業(yè)詞雜糅類錯(cuò)誤,在專業(yè)詞雜糅的位置前后加標(biāo)注“6”,非專業(yè)詞錯(cuò)誤加標(biāo)注“1”;專業(yè)詞切割類錯(cuò)誤,在錯(cuò)誤的位置分別標(biāo)注“7”;非專業(yè)詞錯(cuò)誤類錯(cuò)誤,在錯(cuò)誤位置標(biāo)注“1”。
經(jīng)過對4 356條數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)構(gòu)造和數(shù)據(jù)標(biāo)注,得到了一套由36 704條數(shù)據(jù)組成的數(shù)據(jù)包,其中80%用于培訓(xùn),20%用于檢測。將同樣數(shù)目的恰當(dāng)語句也加入測驗(yàn)集合,以供測試時(shí)參考。
3.1.3 評價(jià)標(biāo)準(zhǔn)
使用精確率、召回率和F1值對實(shí)驗(yàn)結(jié)果進(jìn)行評估。
文本糾正的精確率為:
檢錯(cuò)階段錯(cuò)誤類型實(shí)驗(yàn)結(jié)果如表2所示。
表2 檢錯(cuò)階段錯(cuò)誤類型實(shí)驗(yàn)結(jié)果
專業(yè)類錯(cuò)誤準(zhǔn)確率最高為92.30%,召回率為97.81%,F(xiàn)1值為0.940 4。在后續(xù)研究中提高模型的效率,應(yīng)針對專業(yè)詞雜糅類錯(cuò)誤的識別進(jìn)行提升。
糾錯(cuò)階段錯(cuò)誤類型實(shí)驗(yàn)結(jié)果如表3所示。
表3 糾錯(cuò)階段錯(cuò)誤類型實(shí)驗(yàn)結(jié)果
錯(cuò)誤類錯(cuò)誤在糾錯(cuò)模型中不需要進(jìn)行任何附加運(yùn)算,只需要將多余的數(shù)據(jù)段替換即可,所以在精度召喚和F1數(shù)值方面,與誤差檢測模式的誤差并無差別。
本研究在對標(biāo)準(zhǔn)文檔進(jìn)行學(xué)習(xí)和研究的基礎(chǔ)上,提出了一種以BERT為基礎(chǔ)的標(biāo)準(zhǔn)文檔錯(cuò)誤校正模式。該模式將故障檢測和糾正兩個(gè)環(huán)節(jié)結(jié)合,可顯著提高風(fēng)力維修話音錄音翻譯中的文字錯(cuò)誤校正效率。在錯(cuò)誤檢測方面,采用BERT-BiLSTMCRF模型進(jìn)行錯(cuò)誤檢測,其中BERT層補(bǔ)充語義,BiLSTM提取背景信息,CRF規(guī)范化文字標(biāo)記。通過3個(gè)層次的構(gòu)造,可以獲得包含正確和不正確文字標(biāo)記的相應(yīng)順序標(biāo)記。利用名稱本體辨識技術(shù)對序列中的實(shí)體進(jìn)行識別,并根據(jù)其與本體之間的聯(lián)系來決定標(biāo)記的處理方式,包括保留或刪除。誤差校正采用mask代替不正確或遺漏的錯(cuò)誤,在BERT的遮蔽和模糊集合比對相結(jié)合的基礎(chǔ)上,估計(jì)出現(xiàn)的錯(cuò)位或遺漏的缺失標(biāo)記,并獲得多個(gè)候選語句。