張 明,盧慶華,黃元忠,李瑞軒
1.華中科技大學 計算機科學與技術(shù)學院,武漢 430074
2.深圳市方直科技股份有限公司 木愚部,廣東 深圳 518000
語法糾錯(grammatical error correction,GEC)旨在自動檢查和糾正語句中的語法錯誤,提高文本的語法性能和可讀性,規(guī)范語句表達[1-2]。語法糾錯在自然語言處理中具有廣泛的應用場景,包括寫作助手、搜索引擎、語音識別和語言翻譯等[3]。
GEC研究開展時間并不短,大致可追溯至1982年的語法工具Writer’s workbench,其能夠識別、修改簡單的語法錯誤[4]。到1993年左右,微軟推出的MS word也具備了語法糾錯能力,主要是拼寫檢查和矯正[5]。2003年Naber等人采用基于規(guī)則的方法進行語法檢查[6],以及2006年Chris等人嘗試采用統(tǒng)計機器翻譯(statistical machine translation,SMT)方法將無語法文本轉(zhuǎn)化為相似結(jié)構(gòu)的語法文本[7]。2010年開始,GEC真正引起學術(shù)界興趣,GEC各方面進入快速發(fā)展期。2012年前后,Lang-8、NUCLE、FCE等語料庫相繼公開,在后來的語法研究中被廣泛使用[8-10]。2011—2014年,GEC共享任務CoNLL(conference on natural language learning)連續(xù)發(fā)布[11-14],至今仍作為算法的評估數(shù)據(jù)使用。2019年,Bryant等發(fā)布了GEC共享任務building educational applications(BEA)[15],同樣是近幾年GEC效果評估的重要參考,語法糾錯發(fā)展歷史如圖1所示。
圖1 語法糾錯發(fā)展歷史Fig.1 History of grammatical error correction
早期的研究中,人們采用基于規(guī)則的方法檢查語法錯誤,使用分類器識別錯誤類型,只對非常簡單的拼寫和語法錯誤有效。SMT在2014年參與CoNLL共享任務時取得了最佳結(jié)果[16-18],其具有訓練容易、可同步糾正所有錯誤類型等特點,引起大量學者關(guān)注。隨著各種機器學習和深度學習方法的興起,神經(jīng)網(wǎng)絡機器翻譯(neural machine translation,NMT)展現(xiàn)了獨特的優(yōu)越性,成為了GEC主要方法之一。神經(jīng)網(wǎng)絡模型包括sequence-to-sequence(seq2seq)、transformer等被廣泛地用于GEC任務中,已經(jīng)證實了神經(jīng)網(wǎng)絡的有效性[17,19-21]。機器翻譯要求大量數(shù)據(jù),而絕大多數(shù)語言的數(shù)據(jù)量并不足以支持相關(guān)研究征程訓練模型。數(shù)據(jù)擴增是解決上述的方法之一,研究人員利用人工智能方法合成了大量的偽數(shù)據(jù)(pseudo data),以糾正文本中的語法錯誤[22-23]。近兩年的研究顯示,掩碼語言模型(masked language model,MLM)、遷移學習(transfer learning)和GAN(generative adversarial network)等方法在GEC中效果顯著[24-26],具有較大的潛力。研究人員還對GEC模型的推理能力不斷優(yōu)化,相比于seq2seq,最新研究成果將模型的推理速度提升了幾倍到十幾倍不等[3,27]。
如何有效評估GEC效果是語法研究過程中的常見問題。目前評估GEC效果的指標有許多,不過研究人員使用最多的是MaxMatch(一般采用F0.5計算方法)和GLEU[28-31]。這兩個指標在公開數(shù)據(jù)集上給出了具體評分,前者主要是BEA-2019和CoNLL-2014公開任務的數(shù)據(jù)集,后者一般在JFLEG上計算而來。這些指標各有優(yōu)缺點,研究人員正在探索新的、更科學的評價方法和指標。
語法糾錯研究開展以來,相關(guān)學者進行了一些審查和概述工作。Rauf等人在2017年調(diào)研了常見的英語語法錯誤,介紹了常用的語法糾錯方法如規(guī)則方法、生成方法和機器翻譯等[32]。同期,Bhirud等學者研究了各語言的語法檢查器,對常規(guī)的語法錯誤、語法檢查流程和語法檢查工具做了分析和總結(jié)[33]。2018年,Madi和Soni等人也針對語法檢查工作做了進一步的整理,對基于規(guī)則、句法、統(tǒng)計、分類和神經(jīng)網(wǎng)絡等方法的語法檢查系統(tǒng)做了詳細介紹[34-35]。而López-Hernández針對醫(yī)療領域的拼寫檢查和糾錯進行調(diào)研,闡述了具體的技術(shù)手段和資源,分析了已有方法的局限性和面臨的挑戰(zhàn)[36]。Wang等對語法糾錯進行了比較全面的歸納總結(jié),詳細說明了語法糾錯涉及的一些基本概念和基本方法,其主要對2019年及之前的工作進行了回顧和討論[37]。上述研究工作對語法糾錯進行了較好的總結(jié)和探討,不過主要針對某一語言或語法的某一項應用展開,屬于語法糾錯分支方向研究,且所述方法和手段的時效性已經(jīng)不足。本文立足已有的研究工作,重點分析和總結(jié)近兩年取得的關(guān)鍵研究成果,分類、整理相關(guān)的研究資源,并討論當前研究中遇到的問題和挑戰(zhàn),為相關(guān)的研究和工程人員提供參考和建議。
受益于自然語言處理的蓬勃發(fā)展,越來越多的研究人員開始關(guān)注自然語言的語法糾正問題。研究的語言對象不僅從英語擴展到中文、法語、德語等多語言,語法糾錯方法也更加新穎,在數(shù)據(jù)處理、多語言模型、評估方法和實時性等方面取得了豐富成果,也由此產(chǎn)生了大量的公開數(shù)據(jù)和開源應用?;诖?,為了系統(tǒng)地描述語法糾錯的發(fā)展狀況,本文具體安排如圖2所示。其中,國內(nèi)研究主要集中在中英文語法糾錯,本文單獨列出并重點對中文語法糾錯的研究工作進行概述。
圖2 論文結(jié)構(gòu)Fig.2 Outline of this paper
本章將介紹語法糾錯的關(guān)鍵研究內(nèi)容和最新進展,包括數(shù)據(jù)合成與優(yōu)化、算法模型研究和GEC效果評估三部分。
數(shù)據(jù)是GEC的研究基礎,神經(jīng)網(wǎng)絡模型尤其依賴數(shù)據(jù)的質(zhì)量和規(guī)模。GEC中的可用數(shù)據(jù)還比較有限,各語種數(shù)據(jù)規(guī)模差距極大。當前,公開數(shù)據(jù)集涵蓋的語法錯誤類型還不夠全面,噪聲數(shù)據(jù)較多,數(shù)據(jù)量也不足以實施某些深層神經(jīng)網(wǎng)絡算法[23,38-40]。比如,在最大且最廣泛使用的數(shù)據(jù)集之一Lang-8中,其囊括了80余種語言,但僅有英語和日語具有超過百萬的語句對,超過萬條語句對的只有10種語言,分布極不均衡[2]??梢?,英語、日語之外的數(shù)據(jù)嚴重不足。已有許多研究者探索GEC提高數(shù)據(jù)量的解決方法,比如數(shù)據(jù)擴增、遷移學習等,成果顯著。
1.1.1 數(shù)據(jù)擴增
數(shù)據(jù)擴增是常用的提高數(shù)據(jù)量手段之一。GEC模型如Encoder-Decoder等通過數(shù)據(jù)擴增得到的偽數(shù)據(jù)可以提高模型性能,不僅在單個語言模型中有效,對于多語言語法糾錯也能起到明顯的作用[41]。生成語料數(shù)據(jù)的方法大致可分為直接噪聲法(direct noise)和反譯法(back translation)兩種,前者通過編輯文本如刪減、擴增或反轉(zhuǎn)等方法引入噪聲語料到原始語句中,然而這種方法產(chǎn)生的語句往往不具備可讀性,與人產(chǎn)生的真實數(shù)據(jù)相差甚遠[42-44]。后者利用特定的翻譯模型(clean to noise模式)產(chǎn)生噪聲數(shù)據(jù),很難生成訓練數(shù)據(jù)集以外的錯誤數(shù)據(jù),涵蓋的語法錯誤類型不足[43]。不過,從效果上看反譯法生成的偽數(shù)據(jù)優(yōu)于直接噪聲法[45]。
對于如何更好地生成和使用偽數(shù)據(jù),研究人員開展了針對性的實證研究,通過大量實驗,他們發(fā)現(xiàn)將Gigaword作為種子語料,同時使用優(yōu)化后的反譯法BACKTRANS(NOISY)生成的數(shù)據(jù)質(zhì)量更高[45]。結(jié)合合成的拼寫錯誤(synthetic spelling error)和右左重排序(right-to-left re-ranking)方法,GEC在BEA-2019和CoNLL-2014上取得了69.8和65.0的高分[42,45]。該論文在數(shù)據(jù)合成研究中具備良好的參考價值,能夠針對純凈數(shù)據(jù)生成對應的噪聲數(shù)據(jù),一定程度上解決數(shù)據(jù)稀疏性問題,但BACKTRANS(NOISY)模型本身在訓練時就要求大量的clean和noise數(shù)據(jù)對,因此模型生成的數(shù)據(jù)在錯誤類型和可讀性存在不足之處。
受對抗性訓練啟發(fā),Wang等人提出了一種對抗性(adversarial)的文本生成方法,通過對抗性攻擊不斷識別模型的弱點生成對抗性樣本并不斷加入到訓練集中[43]。其利用seq2seq框架預訓練模型找出生成概率低且易受攻擊的文本,然后用真人可能產(chǎn)生的語法錯誤替代該文本。實驗表明,這種方法生成的偽數(shù)據(jù)質(zhì)量和價值更高,GEC模型的泛化能力和魯棒性也進一步改善。不過,論文中的文本或字符替換采用了有限映射方法,有待進一步提升。
GEC模型的挑戰(zhàn)之一在于語法錯誤的識別類型有限,這與訓練數(shù)據(jù)中語法錯誤的多樣性有極大關(guān)系。受對抗型樣本生成方法啟發(fā),Wan等人提出了一種新的數(shù)據(jù)增強方法,通過編輯語法句子的隱式表達可以生成具有各種錯誤類型的語料樣本。具體地講,根據(jù)給定目標語法錯誤類型和相應的語法錯誤類型分類器,該方法在模型的隱空間中得到一個擾動向量。然后將擾動向量添加到輸入的句子中,并使用解碼器生成具有目標語法錯誤類型的句子。由此,分配不同的目標錯誤類型就可以生成不同的錯誤。結(jié)合預先定義的規(guī)則輔助生成局部語法錯誤,如標點錯誤、拼寫錯誤等,該方法可以大大提高語法糾錯的多樣性和魯棒性[23]。然而,如果語句中同時存在多個錯誤,這種方法很難起到作用。
理論上講,通過隨機生成語法錯誤,數(shù)據(jù)集有可能包含所有的錯誤類型。然而受限于數(shù)據(jù)規(guī)模和計算資源,這種方法很難實現(xiàn)。因此,如何利用真實的語法錯誤生產(chǎn)規(guī)模和類型充足的語料庫成為難點。Takahashi等人生成偽數(shù)據(jù)時考慮了語言學習者語法錯誤,并驗證了這些偽數(shù)據(jù)的實際效果。他們首先從單語言數(shù)據(jù)中提取與學習者句子相似的句子,生成用于預訓練的偽數(shù)據(jù);然后分析了學習者的錯誤傾向,并考慮到學習者在英語和俄語中容易犯的錯誤,在偽數(shù)據(jù)中添加了偽錯誤[22]。實驗表明,數(shù)據(jù)提取和插入真實錯誤的方法提高了GEC任務中的F0.5評分。
為了生成更豐富的語料數(shù)據(jù),并與真人的語法錯誤盡量接近,Stahlberg等嘗試錯誤類型標簽指導數(shù)據(jù)合成。他們使用多個特定模型生成了含有錯誤標記的新數(shù)據(jù)集,在BEA-19和CoNLL-14中取得了最新成果,評分分別高達74.9和68.3。同時,該數(shù)據(jù)集適用于在母語和非母語英語混合訓練的GEC系統(tǒng),其效果甚至超過高質(zhì)量的真實數(shù)據(jù)[46]。
1.1.2 遷移學習
合成的語料數(shù)據(jù)量大,固然能夠提高GEC模型的準確率,但需要針對目標語言進行多級調(diào)參,很難將模型效果完全體現(xiàn)出來。遷移學習一定程度上可降低對數(shù)據(jù)的要求。一些學者開始研究少量數(shù)據(jù)或無數(shù)據(jù)要求的遷移學習方法,利用源語言的已有語法模型改善目標語言的GEC性能。
如果GEC模型在語法上具有泛化能力,那么就有可能不需要大量的訓練數(shù)據(jù),進而降低數(shù)據(jù)依賴。Mita等人分別采用人工生成的和真實的語法數(shù)據(jù)評估GEC模型是否可泛化到新的語法錯誤,不過最后只證明了基于transformer的GEC模型缺少這樣的泛化能力[47],還需進一步研究。
遷移學習在圖像、語音等領域早已廣泛應用,其在GEC中的效果和潛力也得到證實。Yamashita等學者驗證了GEC模型的遷移學習能力,證明模型可以從高資源語言遷移到低資源語言,并有可能提高模型的準確率[48]。Hinson等人集成NMT模型、序列編輯模型和拼寫檢查器用于中文GEC,在實驗中優(yōu)化了模型組合順序和語法矯正輪數(shù),在GEC中取得了驚人的效果。值得注意的是,該方法未曾采用數(shù)據(jù)擴增或更改GEC模型為特定架構(gòu)[49]。
對大模型或優(yōu)質(zhì)模型進行遷移或微調(diào),使其適應新的語法糾錯任務,正在成為研究趨勢之一。模型遷移在數(shù)據(jù)擴增中的潛力巨大,但相關(guān)研究還不充足,對模型遷移的方法、應用和效果等方面還需進一步深入探討。
1.1.3 高質(zhì)量數(shù)據(jù)
除上述方法之外,研究人員還探索了低數(shù)據(jù)需求的建模方法,發(fā)現(xiàn)高質(zhì)量的語料能夠獲得更好的結(jié)果。如Bryant公布的一個高質(zhì)量注釋語料庫(BEA-2019)[15],雖然數(shù)據(jù)量尚不足35 000條,但在該數(shù)據(jù)集上訓練的很多模型準確率更高,超過了其他數(shù)據(jù)集[50-52]。
NMT研究過程中,人們已經(jīng)發(fā)現(xiàn),模型對訓練數(shù)據(jù)中的噪聲十分敏感[53]。盡管已有濾波或降權(quán)重等方法試圖解決該問題[54-55],但效果仍不甚明顯,還未能引起更多注意和研究興趣。
在近期的相關(guān)研究中,Wang等人提出了一種模型訓練方法,通過使用較小但質(zhì)量更高的“可信”數(shù)據(jù)集來對訓練數(shù)據(jù)的“噪聲”進行評分。作者描述了在評分數(shù)據(jù)上進行的課程式訓練,能夠極大地改善整個GEC基線[56],該方法被稱為delta-log-perplexity。受此研究啟發(fā),Lichtarge等人從多個維度對GEC的訓練策略進行實證。他們一方面按照原有方法(無評分)探索GEC語料庫在預訓練和微調(diào)過程中的最優(yōu)配置,建立新基線。另一方面,將delta-log-perplexity應用于GEC任務,驗證其對樣本質(zhì)量的價值。通過多個已有的模型在數(shù)據(jù)上訓練,研究人員發(fā)現(xiàn)采用delta-log-perplexity后模型獲得顯著的性能提升[57]。
綜上,GEC數(shù)據(jù)生成和優(yōu)化是利用各種方法處理語料庫,使得這些數(shù)據(jù)在數(shù)量和質(zhì)量上滿足模型的要求。表1列出了具體的語法數(shù)據(jù)處理方法和相關(guān)研究工作,涵蓋了本領域的主要方法。
表1 數(shù)據(jù)預處理研究Table 1 Research on data preprocessing
目前,神經(jīng)網(wǎng)絡是語法糾錯的最主要方法,相對非神經(jīng)網(wǎng)絡方法更加有效,也更有前景。常用方法是將GEC任務看作文本到文本(text-to-text)的重構(gòu),然后直接利用encoder-decoder、Transformer神經(jīng)網(wǎng)絡糾正語法錯誤[38,59]。不過這些方法對數(shù)據(jù)的要求普遍較高[26,60-61]。近期研究中,語言相關(guān)的預訓練模型、序列標記方法、推理性能等方向得到了較多關(guān)注。
1.2.1 算法模型
預訓練掩碼語言模型(pre-trained MLM)如BERT(bidirectional encoder representations from transformers)等展示了其在NLP各個領域的巨大潛力和價值,不僅用于文本分類、序列標記、語言生成任務,還在語法研究中起到重要作用[1,50,62-63]。結(jié)合預訓練掩碼語言模型與編碼解碼模型進行語法糾錯是當前研究的熱點方向之一,現(xiàn)有的很多方法利用預訓練MLM參數(shù)初始化任務模型,或?qū)LM的預訓練參數(shù)作為任務模型的附加特征[44,59,64]。前者對數(shù)據(jù)量要求極大,后者可能減弱MLM模型性能。已有的研究成果表明,利用預訓練BERT對encoder-decoder GEC模型初始化后,再將BERT的輸出作為附加特征融合于GEC模型能夠取得較高的評估分數(shù)。Kaneko等實驗驗證了這種方法優(yōu)于單獨使用初始化或融合方法,在BEA-2019和CoNLL-2014上取得了不錯的效果[1](F0.5分別為69.8和65.2)。
seq2seq神經(jīng)網(wǎng)絡已經(jīng)非常成功[65-67],但推理速度遠不如序列標簽(sequence labelling或tagging)。序列標簽的典型方法是在迭代過程中標記和改正語句。對于給定語句,在每一輪推理中錯誤逐漸減少,也就是錯誤率在不斷變化。前期的研究中多使用固定的錯誤率,雖然也取得一定效果,但可能導致訓練數(shù)據(jù)與測試數(shù)據(jù)不匹配[68-69]。受到GAN模型的啟發(fā),研究人員嘗試采用對抗性模型改進了GEC。給定錯誤語句,直接使用GAN生成語法正確的句子,提升了模型訓練速度[70],不過該方法直接將GAN作為糾錯模型使用,僅利用了GAN的部分性能。在最新的研究成果中,Parnow等充分利用GAN結(jié)構(gòu),設計了含有編碼器、語法錯誤探查器和語法錯誤標記器的GEC模型,不僅可以持續(xù)提升錯誤檢測和生成能力,還可以控制參數(shù)、設置錯誤率[26]。
Omelianchuk等人提出了一種高效推理方法GECToR,其基本思路是利用Transformer編碼器設計一種簡單而高效的序列標簽模型。他們首先將GEC模型在合成的數(shù)據(jù)集上進行了預訓練,然后分兩個階段優(yōu)化模型:第一階段在錯誤語料庫上進行微調(diào),第二階段在同時含有錯誤和無錯語料的組合庫上進一步調(diào)優(yōu)。研究人員還設計了token級別的變換模式,可以將輸入令牌映射到糾正目標中[71]。實驗結(jié)果表明,BERT、RoBERTa和XLNet集成模型在該方法下取得了更好的結(jié)果,BEA-2019和CoNLL-2014評分高達73.6和66.5。此外,該方法推理時并行執(zhí)行,速度最多能夠達到seq2seq方法的10倍。GECToR很好地解決了單復數(shù)、時態(tài)等語法問題,通過迭代能夠糾正單個語句中的多個語法錯誤,但對訓練數(shù)據(jù)以外的錯誤類型(如單詞粘連)仍然無能為力。
來自谷歌的團隊Rothe等人提出了一個多語言語法糾錯的簡單秘訣。他們在句子級別對mC4數(shù)據(jù)集(101種語言)預處理處理,并在mT5(multilingual Text-to-Text Transfer Transformer)的基礎上訓練了130億參數(shù)的新模型gT5[2,72]。對數(shù)據(jù)集微調(diào)后,在捷克語、德語和俄語上取得了最高的F0.5評分(83.15、75.96、51.62),但在英文共享任務CoNLL-14和BEA test上評分稍差(65.65、69.83)。經(jīng)過對英文數(shù)據(jù)集的優(yōu)化處理,Rothe等發(fā)布了新數(shù)據(jù)集cLang-8并訓練了110億參數(shù)的gT5模型,在CoNLL-14和BEA test上取得了最新成果,分別為68.87和75.88。
seq2seq模型的推理效率差、解碼慢,在某些應用中(Microsoft Office Word、Google Doc、Grammarly)難以滿足用戶對實時反饋語法錯誤的要求[27,71,73]。不同于前文提到的序列標簽法,研究人員提出了淺層積極解碼(shallow aggressive decoding,SAD)方法優(yōu)化在線推理性能[3],一方面盡可能多地并行解碼令牌,而不是在每一步只解碼一個;另一方面,SAD使用了淺層解碼策略,而不是以往的卷積Transformer結(jié)構(gòu),有效降低了時間消耗。與GECToR相比,SAD雖然推理速度略有不如,但效果相對于GECToR下單一模型稍勝一籌,而且容易遷移到其他語言(如中文)的GEC任務中。
另一種提高推理效率的方法是將GEC分為兩個子任務:語法錯誤的跨度檢測(erroneous span detection,ESD)和跨度糾正(erroneous span correction,ESC)[27]。前者采用高效的序列標記模型檢測語法錯誤在文本中的跨度,后者將標注錯誤的句子作為輸入,并僅輸出更正后的語句。在中英文的GEC實驗中,該方法在推理時相比于傳統(tǒng)seq2seq方法效率大大提高,但模型語法糾錯的性能一般,沒有提升很多。
表2列出了關(guān)于GEC模型的最新研究成果。目前為止,gT5取得的F0.5和GLEU分數(shù)最高,表現(xiàn)最好。
表2 GEC模型Table 2 GEC models
1.2.2 機理研究
網(wǎng)絡上每時每刻都在產(chǎn)生海量的文本數(shù)據(jù),而GEC對種各開放域的文本具有重要的規(guī)范作用。過去的研究主要針對某一特定領域內(nèi)容的高密度語法錯誤,對多領域的網(wǎng)絡數(shù)據(jù)很少提及。對此,F(xiàn)lachs等人探討了網(wǎng)絡數(shù)據(jù)GEC的兩大難題:對不同領域內(nèi)容的適應能力和處理低錯誤率下的低精度文本。他們發(fā)現(xiàn)即使是最先進的GEC模型,在原數(shù)據(jù)領域之外也只有極低的精度。為了進一步分析這種現(xiàn)象,他們設計了新的低錯誤密度網(wǎng)絡數(shù)據(jù)集,并對當前最先進的GEC方法進行基準測試,證明它們明顯偏向于具有高錯誤密度的已有數(shù)據(jù)集,即使在目標數(shù)據(jù)上微調(diào)也是如此。一個可能的原因是GEC在低錯誤密度數(shù)據(jù)中不能有效利用其語言模型[74]。
基于transformer的多語言模型BERT(multilingual BERT,mBERT)具有零樣本、跨語言遷移的能力,并在多個下游任務中表現(xiàn)良好[75-76]。Chi等人探索了mBERT在多語言中有效的原因,證明mBERT表達了多語言共有的句法特征,也就是含有多語言共有的內(nèi)在表達。同時發(fā)現(xiàn)在一種語言上訓練的結(jié)構(gòu)探針可以零樣本地恢復其他語言的一些語法,表明在語言的句法子空間中采用了BERT跨語言特征[77]。論文分析了mBERT的跨語言特性,也基本解釋了為何在一種語言上預訓練的BERT語法糾錯模型在另一種語言上依然可以使用。
Yin等人研究了多個預訓練語言模型(ELMo、BERT和RoBERTa)在處理語法錯誤時的行為與魯棒性。他們從非母語人士收集真實的語法錯誤,并在高質(zhì)量的文本數(shù)據(jù)上進行對抗性攻擊模擬這些錯誤。結(jié)果證實,所有測試模型的性能都受到了影響,不過影響程度各不相同。為了解釋模型行為,Yin等人進一步設計了語言任務以了解他們識別語法不當?shù)木渥雍推溴e誤位置的能力。實驗表明,采用編碼器和一個簡單的分類器就能夠定位錯誤位置,且語言編碼器的上下文層(contextual layer)在識別和定位語法錯誤方面比令牌嵌入層(token embedding layer)具有更強的能力。以BERT為例,他們設計了一個完形填空評估其作為掩碼語言模型(MLM)的內(nèi)在功能特性,發(fā)現(xiàn)BERT成功發(fā)現(xiàn)了語法錯誤和特定令牌間的聯(lián)系,尤其是與相鄰的錯誤令牌的聯(lián)系[24]。該研究比較明確地闡明了語言編碼器遇到語法錯誤時的處理行為。
在語法糾錯過程中,通常會重寫句子的所有令牌。這種處理方式會產(chǎn)生語法錯誤的句子,因為它們會強制改變整個語句,而這種改變可能產(chǎn)生新的錯誤;或者通過弱化約束來避免生成不合語法的句子,導致語法糾正的非多樣化結(jié)果。為了解決這個問題,Hotate等人提出了多樣化局部波束搜索(diverse local beam search)方法判斷一個令牌是否需要糾正。通過調(diào)整波束中的搜索令牌,該方法只重寫需要糾正的令牌并可生成多樣化的語法糾錯文本[78]。實驗證明,該方法在保證準確率的前提下解決了多樣化問題。
GEC的評估指標很多,有HOO(help our own)、Imeasure、MaxMatch、GLEU(generalized language evaluation understanding)、ERRANT(ERR or annotation toolkit)等[12,28,30,79-80]。其中HOO對齊語料時不符合人的評估特點,已不再使用;I-measure與人的判斷無關(guān),且權(quán)重任意不可控,使用極少;基于Dahlmeier和Ng等人在2012年提出的MaxMatch評分器,計算源語句和系統(tǒng)輸出的短語級序列評分Fβ(一般取β=0.5將精度加權(quán)為召回率的兩倍,即取F0.5)[80],是目前GEC系統(tǒng)常用的評價指標之一;GLEU是Napoles等人在2015年提出的一種評估方法[29],該方法評估語法糾正效果時更貼近人的判斷標準,也是常用指標之一;ERRANT是MaxMatch的變種,是BEA-2019共享任務的常用評估指標[28]。F0.5和GLEU等方法都基于參考(reference-based)語句計算而來,廣泛用于GEC的自動評估中。
上述方法中,由于參考語句便難以涵蓋所有可能的語法錯誤,如果有字、詞不在其中就會受到懲罰(即使他們表達正確)。很顯然,這種懲罰機制并不合理。Asano等人2017年利用語法、流暢度和語義三個無參考(referenceless)指標評估GEC,克服了上述限制,指標也更符合真人的評估要求[81]。Yoshimura等人在Asano基礎上更進一步,利用三個不同的BERT模型優(yōu)化上述三個參數(shù),表明優(yōu)化后的指標在系統(tǒng)和句子級別均達到了最高的相關(guān)度(與人工評估)[82]。這種方法細粒度不足,三個參數(shù)也不足以全面評估語句的糾錯效果,沒有普及開來。
另一方面,F(xiàn)0.5和GLEU指標對所有的語法錯誤一視同仁,忽略了糾正不同語法錯誤的難易程度。為了更全面地評估不同模型的GEC效果,Gotou等人研究了語法糾正難度,提出了一種衡量難度的方法[83]。簡單來說,就是系統(tǒng)對一個錯誤糾正的次數(shù)越多,就認為該錯誤的糾正難度越低。通過一系列難度計算和權(quán)重算法,研究人員在某種程度上反應了語法糾正難度,對后續(xù)的效果評估和處理難以校正的語法錯誤具有參考意義。
國內(nèi)的語法糾錯研究水平位居世界前列,來自上海交通大學、哈工大、科大訊飛、阿里等機構(gòu)的學者對中、英文自然語言語法問題進行了比較深入的研究。對于英文語法糾錯,前文已經(jīng)有所闡述,這里重點闡述中文相關(guān)的研究工作。
1.4.1 算法和模型研究
中文是最復雜的語言之一,和英語相比,沒有單復數(shù)和時態(tài)變化,也沒有清晰的字詞邊界,再加上詞性、語義等帶來的歧義和兼類,語法診斷和糾錯難度極大。中文語法糾錯可追溯至早期的文本自動校對研究,對錯別字和標點符號等進行矯正,主要采用了規(guī)則和統(tǒng)計的方法[84]。早期的基礎理論和技術(shù)并不成熟,模型方法簡單,文本自動較對效果并不理想。
中文語法糾錯研究大致從2012年正式開展,研究人員提出了多種方法進行錯誤診斷和糾正,如統(tǒng)計模型、規(guī)則模型和集成學習等[85]。Wu等人集成了基于規(guī)則的模型和n-gram統(tǒng)計模型檢測中文語法錯誤,識別錯誤類型并指出具體位置[86]。由于模型規(guī)則由人工設計,比較簡單且存在規(guī)則沖突,該方法取得的錯誤檢測效果并不顯著。Chen等人利用條件隨機場(CRF)識別錯誤類型,即冗余、缺失、亂序和錯詞四種,并在2015年的語法診斷任務中取得了較好的準確度和精確度[87]。受限于特征和數(shù)據(jù)量,實驗結(jié)果顯示這種方法對冗余和用詞不當?shù)惹樾稳菀桩a(chǎn)生誤判,因此單獨采用CRF還不足以對中文語法錯誤進行準確判斷。
此后,神經(jīng)網(wǎng)絡方法包括機器翻譯、transformer模型等開始廣泛用于語法糾錯領域?;贑RF,研究人員相繼開展了CRF-LSTM(long short-term memory,長短時記憶)、CRF-BiLSTM(bidirectional LSTM)、BERT-CRFBiLSTM等多項研究[85,88-89],對中文語法的特征和模型有了更加深入的認識。楊勁南等進行了神經(jīng)網(wǎng)絡在中文語法糾錯中的關(guān)鍵技術(shù)研究,采用詞向量為特征,設計了CRF-LSTM模型,避免了人工標注特征,并解決了中文分詞帶來的歧義問題[90]。鄧永康等人將神經(jīng)機器翻譯用于中文文本糾錯,結(jié)合注意力機制,采用了多個嵌入層參數(shù)初始化方法,提升了糾錯性能,也表明了該方法優(yōu)于n-gram[91]。不過,由于模型訓練采用的數(shù)據(jù)量有限,且實驗還不夠充分,相關(guān)結(jié)論有待進一步驗證。
參考序列模型和transformer模型在英語中的成果,國內(nèi)研究人員同樣開展了相關(guān)的中文研究。王辰成基于seq2seq序列架構(gòu),結(jié)合注意力機制和數(shù)據(jù)增強方法提升了糾錯模型性能[92]。該模型具有良好的泛化能力,但對特定領域和特定情形下的錯誤缺乏有效的糾錯能力。湯澤成等人進行了字、詞粒度分類,提出了融合字詞粒度噪聲的數(shù)據(jù)增強方法,提升了糾錯模型性能,但噪聲語句的語義可能極不合理[93]。更進一步地,研究人員參考模型集成bagging方法,將n-gram、seq2seq和transformer集成到一起,對各模型輸出結(jié)果打分,取分數(shù)最高者作為最終輸出[94]。這種組合方式比較粗糙,雖然在糾錯性能上有所進展,但模型計算量大增,對隱蔽的、遠距離語法錯誤沒有起到很好的效果。為了加強對錯誤語法的信息提取,段建勇等人在transformer的基礎上增加了偏置矩陣,提高局部信息的關(guān)注程度,并使用ON_LSTM模型提取對應的語法結(jié)構(gòu),在拼寫糾錯任務中表現(xiàn)良好[95]。Wang等人利用預訓練模型BERT獲取中文詞向量,利用CRF等方法將中文語法糾錯看作序列標記問題,在冗余和錯詞兩種錯誤類型中較為有效,證明了其方法的可行性[96],但還遠遠達不到實用目的。孫邱杰等人針對標注數(shù)據(jù)有限的問題,提出一種基于BART(bidirectional and auto-regressive transformers)噪聲器的中文語法糾錯模型,并使用BERT對模型的編碼參數(shù)進行初始化,該方法能夠生成多樣化的噪聲數(shù)據(jù),具有更快的收斂速度[97],還有潛力可挖。
1.4.2 會議和開放任務
中文語法糾錯研究與英語類似,經(jīng)歷過前期的規(guī)則模型和統(tǒng)計方法研究,然后在神經(jīng)網(wǎng)絡的基礎上快速發(fā)展,在序列建模、transformer架構(gòu)和預訓練模型等方法上取得了顯著進展。不過,中文語法糾錯研究的發(fā)展很大程度上得益于相關(guān)的會議和共享任務,為廣大研究人員提供了重要的數(shù)據(jù)基礎和全球性的交流平臺。
在國內(nèi),國際自然語言處理和中文計算會議(Natural Language Processing and Chinese Computing,NLPCC)是中國計算機聯(lián)合會及自然語言處理技術(shù)委員會的年會,其在2018年增加了中文語法糾錯任務[98],吸引大量學者投身中文語法研究中,涌現(xiàn)了大量的研究成果。此外,還有由中國人工智能學會主辦中文文本糾錯比賽,也為中文語言研究人員提供了良好的交流平臺。
國際上,面向教育技術(shù)的自然語言處理研討會(Natural Language Processing Techniques for Educational Applications,NLPTEA)自2014年起已發(fā)布多個中文語法糾錯共享任務,這也激發(fā)了國內(nèi)研究人員的熱情,使得語義、語法錯誤的識別和糾正能力越來越高。國際自然語言處理聯(lián)合會議(International Joint Conference on Natural Language Processing,IJCNLP)在2017年也舉辦了中文語法糾錯比賽,發(fā)布了中文語法診斷任務[99]。
需要指出的是,目前各大共享任務所提供的語料數(shù)據(jù)大都由將中文作為外語的學習者產(chǎn)生,與國人的語法錯誤有所差異。此外,不論將中文作為母語還是第二語言,相關(guān)的語法糾錯語料還比較有限,需要補充。
本文整理了GEC相關(guān)的重要文獻資源、開源應用和公開數(shù)據(jù),如表3~5所示。表中僅列了部分重要的資源數(shù)據(jù),更多資源可在互聯(lián)網(wǎng)上獲取。
表4 開源代碼和應用Table 4 Open source code and implementation
表5 公開數(shù)據(jù)庫Table 5 Public corpus
研究人員在語法糾錯領域取得了顯著的成果和進展,但仍面臨諸多問題和挑戰(zhàn)。下面列出幾個具體的問題,也是未來研究的重點方向。
糾正一句多錯。一個語句中可能出現(xiàn)多個錯誤,且錯誤類型多樣化?,F(xiàn)有方法采用迭代的方式依次解決各個語法錯誤,但迭代過程中可能產(chǎn)生新的錯誤,尤其是語義錯誤,而且該方法對于訓練集外的語法錯誤無能為力。如何高效地解決多錯誤問題已成為語法糾錯的挑戰(zhàn)之一。
長距離依賴錯誤。長距離包括跨語句依賴在論文等文本中很常見,一旦出現(xiàn)錯誤,很難察覺并糾正。當前語法研究大多集中在單個語句的語法檢查和糾錯,很少涉及長距離語法問題,相關(guān)數(shù)據(jù)集和模型方法缺失,是語法糾錯的難題之一。
非監(jiān)督、低資源語言的語法糾錯。在相當長的一段時間內(nèi),除極少數(shù)語言外,有效的語料數(shù)據(jù)都比較有限。如何在現(xiàn)有的數(shù)據(jù)資源上創(chuàng)新方法和理論,使得非監(jiān)督、低資源語言的語法糾錯得到改善,也是一個挑戰(zhàn)。
語義錯誤。語義錯誤不同于拼寫、標點、詞性等錯誤類型,前者更難判斷和糾正,隱蔽性更強。語義表達的多樣性和層次化為語義糾錯增加了難度,此外糾正語義錯誤時還容易帶來新的語法錯誤,亟待解決。
構(gòu)建優(yōu)良的非英語語料庫。如前文所述,英文語料數(shù)據(jù)豐富,容易開展各種各樣的算法和工程應用。中文、日語、俄語等少數(shù)幾種語言的語料庫相比英文遜色很多,其他語言的語料數(shù)據(jù)就更少了。因此,構(gòu)建多語言、多樣化的有效數(shù)據(jù)已成為一大挑戰(zhàn)。
語法模型的泛化能力不足。語法錯誤的類型和分布狀況在不同數(shù)據(jù)庫和語言中差異巨大,如何讓GEC模型具備優(yōu)異的泛化能力,已有研究表明,許多語法糾錯模型在特定的數(shù)據(jù)集上表現(xiàn)良好,但更換新數(shù)據(jù)時,F(xiàn)0.5或GLEU分數(shù)就會下降,這種情況在模型跨語言遷移過程中更為常見。因此,保持甚至提高模型的泛化能力,是GEC研究的重點之一。
科學的評估方法和指標:科學、全面、客觀的評價GEC效果,也是一大研究方向。開發(fā)更符合人因的評估方法和評估指標,能夠促使相關(guān)研究貼近人的語法知識和認知,更具實際價值。
本文主要調(diào)研了語法糾錯領域的最新進展,對GEC研究的熱點問題進行了分析和總結(jié),包括語法數(shù)據(jù)預處理、語法錯誤糾錯算法模型和效果評估三部分內(nèi)容。在表格中,列出了一些代表性的方法和研究資料。不過,受篇幅所限,文中主要介紹了比較重要的理論和算法,讀者可自行閱讀GEC相關(guān)的其他文獻資源。
語法糾錯是自然語言處理的重點問題。構(gòu)建高效、準確、廣覆蓋度的多源多目標語法糾錯模型是本領域的最終目標,目前還在探索之中。本文針對語法糾錯最新的研究成果做了簡要總結(jié)和匯報,并指出了存在的問題和挑戰(zhàn)??傮w上看,語法研究雖然還有較多問題亟待解決,但發(fā)展極快,未來可期。