張芙蓉,羅志娟
(長沙航空職業(yè)技術(shù)學(xué)院,湖南 長沙 410124)
現(xiàn)有的文本校對研究大多數(shù)是針對字詞錯誤和語法錯誤,對于語義錯誤的校對研究較少。傳統(tǒng)的文本校對方法一般基于統(tǒng)計(jì)和規(guī)則:基于規(guī)則的方法由于規(guī)則的制定過于依賴專家,因此不宜遷移;基于統(tǒng)計(jì)的方法需要大量的數(shù)據(jù),當(dāng)數(shù)據(jù)量不是很大時效果并不好;規(guī)則和統(tǒng)計(jì)相結(jié)合的方法能實(shí)現(xiàn)二者的優(yōu)勢互補(bǔ),但不能從根本上解決語義錯誤的校對問題。語義錯誤是指中文文本中字詞表示正確、句法結(jié)構(gòu)完整,而不符合上下文語義邏輯的錯誤。語義級的中文文本校對方法指在中文文本校對中能夠從語義角度進(jìn)行查錯糾錯的方法。到目前為止,還沒有比較成熟的解決方案。能實(shí)現(xiàn)語義級自動校對的方法,須以對文本的語義分析為基礎(chǔ),語義問題的研究一直是計(jì)算語言學(xué)和自然語言處理研究中的薄弱環(huán)節(jié),也是中文文本校對的難點(diǎn)。
語義分析是自然語言處理的核心任務(wù),其目的是實(shí)現(xiàn)對語言輸入的語義理解,進(jìn)而支撐后續(xù)的操作和處理。根據(jù)語言輸入的粒度不同,語義分析可分為詞匯級語義分析、句子級語義分析和篇章級語義分析。詞匯級語義分析主要關(guān)注如何區(qū)分和獲取單個詞語的語義,經(jīng)典任務(wù)是詞義消歧,即在特定的語境中,識別出某個歧義詞的正確詞義。句子級語義分析主要關(guān)注如何解析由詞語所組成的句子的語義,根據(jù)分析的深淺程度又分為淺層語義分析和深層語義分析。淺層語義分析的經(jīng)典任務(wù)是語義角色標(biāo)注,即識別出給定句子的謂詞及謂詞的相應(yīng)語義角色成分。深層語義分析,又稱為語義解析,即將輸入的句子轉(zhuǎn)換為計(jì)算機(jī)可識別、可計(jì)算的語義表示,語義解析根據(jù)應(yīng)用情境的不同,可分為自然語言到結(jié)構(gòu)化查詢、語言到代碼和語言到機(jī)器操作指令。篇章級語義分析主要關(guān)注由句子組成的篇章的內(nèi)在結(jié)構(gòu)并理解各個句子的語義以及句子與句子之間的語義關(guān)系,進(jìn)而理解整個篇章的語義。
緊跟自然語言處理領(lǐng)域的發(fā)展大潮,語義分析技術(shù)發(fā)展迅速,一方面部分方法受其他任務(wù)的先進(jìn)技術(shù)的啟發(fā),如基于序列到序列的語義分析方法;另一方面部分方法也啟發(fā)了其他領(lǐng)域,如基于受限解碼的事件抽取方法。由于詞匯級語義分析發(fā)展多年,技術(shù)已趨成熟,因此研究的重心由詞匯級轉(zhuǎn)向句子級的語義分析;而篇章級語義分析由于完全的篇章理解過于困難,因此衍生了多個與之相關(guān)的任務(wù),如篇章的結(jié)構(gòu)分析、話語分割、指代消解、共指消解等,任務(wù)分散且偏邊緣,導(dǎo)致得到的研究和關(guān)注很少,進(jìn)展也緩慢。整體來說,語義分析雖然已取得了一定的進(jìn)展,但技術(shù)還遠(yuǎn)未成熟完美。
目前,已有的語義級校對方法有三種: 基于規(guī)則或語言學(xué)知識的方法、基于統(tǒng)計(jì)的方法、基于機(jī)器學(xué)習(xí)的方法。早在2003年,駱衛(wèi)華等[1]提出統(tǒng)計(jì)和規(guī)則相結(jié)合的校對策略,可視為中文語義校對的最早研究。郭充等在語義知識庫的基礎(chǔ)上設(shè)計(jì)相應(yīng)的自動查錯算法,實(shí)現(xiàn)了語義級的中文文本查錯[2]。張仰森等[3]提出了一種基于語義搭配知識庫和證據(jù)理論的語義錯誤偵測模型。姜贏等[4]提出利用本體技術(shù)將中文文本中的語義內(nèi)容提取出來轉(zhuǎn)換為結(jié)構(gòu)化本體。奚雪峰等[5]、江洋洋等[6]、王乃鈺等[7]對深度學(xué)習(xí)在自然語言處理領(lǐng)域的研究進(jìn)展進(jìn)行了總結(jié),深度學(xué)習(xí)技術(shù)為中文文本語義校對提供了新的方法,使有較高準(zhǔn)確率的中文語義校對有望實(shí)現(xiàn),因此基于深度學(xué)習(xí)的方法是當(dāng)前最有前途的一種方法。已有研究者對深度學(xué)習(xí)應(yīng)用于中文文本校對做出了有益的探索:任柏青[8]借助句法分析、語言模型等技術(shù)對文本進(jìn)行深度分析和挖掘,并引入語義分析技術(shù),通過計(jì)算句子中各詞語的語義相關(guān)程度來提高錯誤識別率。郝亞男等基于神經(jīng)網(wǎng)絡(luò)與注意力機(jī)制,通過增強(qiáng)詞間語義邏輯關(guān)系的捕獲能力,能夠?qū)Z義錯誤的文本進(jìn)行校對[9]。龔永罡等先提出了將Transformer模型應(yīng)用于中文文本自動校對領(lǐng)域[10],后又提出了一種新的基于Seq2Seq和雙向長短期記憶(Bi-LSTM)結(jié)合的深度學(xué)習(xí)模型,該模型能處理語義錯誤[11]。
語義級文本校對在字詞級已取得了成熟的成果,包括字詞級語義校對中的詞義消歧問題和未登錄詞識別問題。句子級語義校對僅能解決簡單句型,對于復(fù)雜句型中的差錯還考慮不夠。存在的瓶頸有:(1)目前的語義校對方法沒有對語言學(xué)知識進(jìn)行充分運(yùn)用,僅僅是考慮了詞語之間的搭配,沒有考慮詞語之間的限制。(2)有對語義搭配知識庫的研究,但語義搭配知識庫的正確性和語義錯誤偵測的準(zhǔn)確性還有待提高。目前的方法僅對正式文本(書面語文本)有效,還不能實(shí)現(xiàn)社交網(wǎng)絡(luò)文本的語義校對。(3)在語義自動校對中,語義搭配是校對的基礎(chǔ),目前對語義搭配的證據(jù)理論還缺乏深入挖掘。(4)用于判斷語義搭配的大規(guī)模知識庫還不夠成熟,亟須開放性的大規(guī)模的語義知識庫共建共享技術(shù)。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN),作為首批表現(xiàn)良好的深度模型之一,是用于專門處理具有類似網(wǎng)格結(jié)構(gòu)的數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),比如時間序列數(shù)據(jù)和圖像數(shù)據(jù)。CNN可以用于輸出高維的結(jié)構(gòu)化對象,而不僅僅是預(yù)測分類任務(wù)的類標(biāo)簽或回歸任務(wù)的實(shí)數(shù)值卷。CNN提供了一種方法來特化神經(jīng)網(wǎng)絡(luò),使其能夠處理具有清楚的網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)涞臄?shù)據(jù),這種方法在二維圖像拓?fù)渖献畛晒?。CNN在自然語言處理(Natural Language Processing, NLP)領(lǐng)域的應(yīng)用如:文本語義相似度計(jì)算。CNN應(yīng)用于文本時,由于文本不是二維卷積層而是一維的,其輸入序列可以是字符序列也可以是單詞序列。CNN在字符級別的文字應(yīng)用上,可以被可視化。當(dāng)應(yīng)用于大噪聲數(shù)據(jù)時,字符級CNN表現(xiàn)良好。CNN非常適合具有空間結(jié)構(gòu)的數(shù)據(jù),包括聲音、圖像、視頻和文本。由于文本不是二維卷積層,而是一維的,CNN用于文本時需要引入預(yù)處理。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN),是一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),循環(huán)網(wǎng)絡(luò)可以擴(kuò)展到更長的序列。人類的大腦能夠存儲記憶,因此可以分析過去的數(shù)據(jù),檢索有用的信息以理解當(dāng)前的場景。多層感知層和CNN在結(jié)構(gòu)中缺少內(nèi)存,因此不能存儲來自過去輸入的任何信息以分析當(dāng)前輸入。RNN由于具有內(nèi)存功能,被廣泛應(yīng)用于語音識別、時間序列預(yù)測、自然語言處理。RNN是通過輸入序列而不是單個輸入來訓(xùn)練的,可以處理不同的序列長度,可以以不同的形式使用,且可以互相堆疊。RNN的優(yōu)勢是加入了上一時刻隱藏層的輸出,處理了時序問題,缺點(diǎn)是存在無法解決長時依賴的問題,即只能保存上一次比較短暫的內(nèi)容,序列較長時,序列在前的信息對后面序列的作用越來越弱。
對簡單循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)化模型,包括門控循環(huán)單元(Gated Recurrent Unit, GRU)和長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM)。由于最簡單的RNN不能在序列中保持長期的關(guān)系,為糾正該缺點(diǎn),需要在其中添加一個特殊的層,即門控循環(huán)單元(GRU)。為擺脫梯度消失的問題,GRU幫助網(wǎng)絡(luò)以明確的方式記住長期依賴關(guān)系,通過在簡單RNN中引入更多變量來實(shí)現(xiàn)。梯度消失問題使得梯度難以從網(wǎng)絡(luò)中的較后層傳播到較前層,導(dǎo)致網(wǎng)絡(luò)的初始權(quán)重與初始值相差不大,因此模型學(xué)習(xí)效果不佳。LSTM通過在網(wǎng)絡(luò)中引入“記憶”來解決這個問題,允許網(wǎng)絡(luò)從先前時間步長的激活中轉(zhuǎn)移大部分知識。遺忘門負(fù)責(zé)確定應(yīng)在前一個時間步長中遺忘的單元狀態(tài)的內(nèi)容,在每一個時間步長可使用表達(dá)式計(jì)算新的候選單元狀態(tài),輸入門確定候選單元狀態(tài)的哪些值被傳遞到下一個單元狀態(tài),輸出門負(fù)責(zé)調(diào)節(jié)當(dāng)前單元狀態(tài)允許影響時間步長的激活值的數(shù)量。
NLP是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個重要方向,它研究實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論與方法,涉及所有用計(jì)算機(jī)對自然語言進(jìn)行的操作,包括獲得文本語料和詞匯資源、處理原始文本、文本分類、從文本提取信息、分析句子結(jié)構(gòu)、建立文法、分析語句的含義、語言數(shù)據(jù)管理等。NLP由于其面臨的眾多問題,已成為目前制約人工智能取得更大突破和更廣泛應(yīng)用的瓶頸之一。使用深度學(xué)習(xí)技術(shù)推動NLP的發(fā)展是當(dāng)前的研究熱點(diǎn)和難點(diǎn)。基于深度學(xué)習(xí)的自然語言處理存在的主要問題包含方法與應(yīng)用兩個層面:在方法層面主要存在缺乏理論基礎(chǔ)、 模型缺乏可解釋性、對大量數(shù)據(jù)的需求和對強(qiáng)大計(jì)算資源的依賴,以及難以處理的長尾問題;在應(yīng)用層面通常只報(bào)告最佳性能,很少提及平均水平、變化情況及最差性能。
端到端的深度模型可以避免人工提取特征,減少人工工作量。常用基于深度學(xué)習(xí)的糾錯方法分三種:分別是基于LSTM的糾錯方法、基于Transformer 的糾錯方法以及基于預(yù)訓(xùn)練模型的糾錯方法。最經(jīng)典的NLP模型是序列到序列模型,按時間分為兩種,一種是簡單的RNN模型,在處理長文本序列的時候,會構(gòu)成連乘結(jié)構(gòu)導(dǎo)致梯度消失和梯度爆炸等情況的出現(xiàn);第二種是包含時間信息的,如LSTM采用了三個門結(jié)構(gòu):輸入門控制當(dāng)前結(jié)點(diǎn)的輸入信息、輸出門控制當(dāng)前節(jié)點(diǎn)的輸出信息、遺忘門控制上一個節(jié)點(diǎn)的遺忘信息。Transformer依舊是序列到序列模型,在結(jié)構(gòu)上進(jìn)行了創(chuàng)新,拋棄了傳統(tǒng)的RNN,完全采用注意力機(jī)制進(jìn)行計(jì)算,既解決了序列模型長距離依賴的問題,也解決了序列模型并行程度差的問題。Transformer 用于文本糾錯,與 LSTM 相差不大,都是以錯誤文本為源文本,正確文本為目標(biāo)文本,用于訓(xùn)練深度學(xué)習(xí)模型。
由于預(yù)訓(xùn)練模型在特定場景使用時不需要用大量的語料來進(jìn)行訓(xùn)練,節(jié)約時間效率高效,因此,基于預(yù)訓(xùn)練模型的糾錯方法是目前最好的選擇。選用基于預(yù)訓(xùn)練模型的方法,預(yù)訓(xùn)練模型通過自監(jiān)督的訓(xùn)練方式學(xué)習(xí)文本的表征方式、語義關(guān)系、語法結(jié)構(gòu)等,再將學(xué)習(xí)到的知識遷移到下游任務(wù)中,加快模型收斂速度,提升模型效果。BERT模型是一種預(yù)訓(xùn)練模型,模型使用了全注意力機(jī)制,能夠在預(yù)測時,利用全局的文本信息,是真正的雙向語言模型。BERT在多方面的NLP任務(wù)變現(xiàn)來看效果都較好,具備較強(qiáng)的泛化能力,對于特定的任務(wù)只需要添加一個輸出層來進(jìn)行精調(diào)即可。因此,選用BERT模型作為預(yù)訓(xùn)練模型。
實(shí)驗(yàn)數(shù)據(jù)包括訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。采用深度學(xué)習(xí)的模型,實(shí)現(xiàn)中文語義校對,需要有足量的語義錯誤數(shù)據(jù)集?,F(xiàn)有的專門用于語義錯誤測試的數(shù)據(jù)較少,為實(shí)現(xiàn)語義級中文文本校對,即要求方法從功能上能實(shí)現(xiàn)語義錯誤的校對,而不僅僅限于語義校對,可以使用原有的中文校對數(shù)據(jù)集,向其中加入語義錯誤的數(shù)據(jù),為保證方法的效能,應(yīng)使語義錯誤占比為50%以上。
由于文本數(shù)據(jù)在可用的數(shù)據(jù)中是無結(jié)構(gòu)的,文本內(nèi)部會包含很多不同類型的噪點(diǎn),所以要對文本進(jìn)行預(yù)處理。文本預(yù)處理過程主要是對文本數(shù)據(jù)進(jìn)行清洗與標(biāo)準(zhǔn)化。文本標(biāo)準(zhǔn)化是NLP任務(wù)里的一個數(shù)據(jù)預(yù)處理過程。它的主要目標(biāo)與常規(guī)數(shù)據(jù)預(yù)處理的目標(biāo)一致:提升文本質(zhì)量,使得文本數(shù)據(jù)更便于模型訓(xùn)練。
為擴(kuò)大語義錯誤樣本規(guī)模,擴(kuò)充訓(xùn)練數(shù)據(jù)集,可使用數(shù)據(jù)增強(qiáng)技術(shù):一是增加噪音,即在原始差錯數(shù)據(jù)集中通過增加字詞、刪除字詞、替換字詞等構(gòu)造新的差錯文本數(shù)據(jù);二是采用回譯的方法,如先將中文翻譯成英文,再將英文翻譯成中文,得到的目標(biāo)文本即為構(gòu)造的數(shù)據(jù)。為得到更多的差錯文本數(shù)據(jù),可以采用多語種回譯,翻譯及回譯都可借助翻譯軟件獲得。
基于深度學(xué)習(xí)的文本自動校對,其實(shí)施依賴于模型的預(yù)訓(xùn)練及微調(diào)。對于用戶來說,語義知識庫是不可見的,但對于系統(tǒng)本身,須考慮模型的可靠性以及模型訓(xùn)練的硬件開銷及時間開銷,合理的利用已有的語義知識庫可以大大降低算法的時間復(fù)雜度,同時也可節(jié)省硬件消耗。語義知識庫即針對某類語義差錯問題相應(yīng)的語義匹配知識集。
出現(xiàn)頻次較高的語義錯誤有成語使用錯誤、文本褒貶色彩使用錯誤、敬語與謙詞的誤用、歷史事實(shí)的錯誤、地理知識錯誤、人名-職務(wù)-時間錯誤等。為驗(yàn)證校對系統(tǒng)的語義校對功能,模型訓(xùn)練及測試環(huán)節(jié)都要用到相應(yīng)的知識集。根據(jù)常見語義錯誤,可以逐項(xiàng)構(gòu)建如表1所示的知識集。
表1 語義匹配知識集系列
(續(xù)表)
根據(jù)NLPCC 2018競賽發(fā)布數(shù)據(jù)將三個主要的代表團(tuán)隊(duì)在比賽中取得的成績列為表2,由三個中文校對系統(tǒng)取得的F0.5分?jǐn)?shù)可知,網(wǎng)易有道團(tuán)隊(duì)的Youdao系統(tǒng)為NLPCC 2018 GEC共享任務(wù)冠軍解決方案。表2中獲得的精確率、準(zhǔn)確率及F值為語義校對系統(tǒng)評價(jià)提出了參照指標(biāo)。
表2 系統(tǒng)模型在數(shù)據(jù)集上的F0.5值結(jié)果對比
待模型訓(xùn)練成熟,參數(shù)設(shè)置穩(wěn)定后,基于深度學(xué)習(xí)的語義校對實(shí)驗(yàn)環(huán)節(jié),主要通過測試數(shù)據(jù)驗(yàn)證系統(tǒng)的糾錯功能。目前公開的中文校對測試數(shù)據(jù)有NLPCC2018比賽數(shù)據(jù)集、SIGHAN2015的糾錯數(shù)據(jù)集以及今日頭條在新聞標(biāo)題中自動構(gòu)建的500萬條糾錯數(shù)據(jù)集。但上述數(shù)據(jù)集均為未特定包含語義錯誤的數(shù)據(jù)集,不便與其他測試系統(tǒng)進(jìn)行橫向比較。因此,實(shí)驗(yàn)測試僅關(guān)注在逐步增加迭代次數(shù)和數(shù)據(jù)集規(guī)模中,系統(tǒng)獲得的校對準(zhǔn)確率及召回率變化情況。
針對出版界對于中文文本校對現(xiàn)有產(chǎn)品的語義校對能力薄弱的問題,本文基于深度學(xué)習(xí)的方法,從查錯糾錯模型上對語義級中文文本校對進(jìn)行探索,基于BERT模型,利用現(xiàn)有的開放的數(shù)據(jù)集進(jìn)行模型訓(xùn)練,該方式可以有效提升校對效果。由于硬件實(shí)驗(yàn)平臺條件有限,可用于深度學(xué)習(xí)訓(xùn)練的真實(shí)語義錯誤數(shù)據(jù)集規(guī)模有限,目前僅能實(shí)現(xiàn)若干詞語級別、句子級別語義錯誤的校對,但準(zhǔn)確率還有待提高,且實(shí)驗(yàn)測試數(shù)據(jù)規(guī)模還需擴(kuò)大,這是后續(xù)研究中需要進(jìn)一步努力的方向。