孫曉東,楊東強
山東建筑大學 計算機科學與技術(shù)學院,濟南 250101
語法錯誤是英語學習者常犯的錯誤之一,其主要包括拼寫錯誤、主謂一致錯誤、名詞形式錯誤、動詞形式錯誤、時態(tài)和冠詞錯誤等。隨著自然語言處理技術(shù)的不斷發(fā)展,語法錯誤糾正(grammatical error correction,GEC)的方法也在不斷創(chuàng)新。早期GEC的研究方法以基于規(guī)則和基于統(tǒng)計的模型為主[1-2]。隨后出現(xiàn)了基于機器學習分類的方法[3]、基于語言模型的方法[4]和基于機器翻譯方法[5]等?;诜g的方法又衍生出基于統(tǒng)計的翻譯模型[6](statistical machine translation,SMT)和神經(jīng)機器翻譯模型[7](neural machine translation,NMT)。相比于基于規(guī)則和分類的GEC方法,基于語言模型和機器翻譯的數(shù)據(jù)驅(qū)動方法取得了顯著的應用效果,并逐漸成為主流的GEC方法,但是此類模型的最大挑戰(zhàn)是人工標注的訓練數(shù)據(jù)不足的問題[8]。在面臨數(shù)據(jù)稀缺的情況下,人工合成的訓練數(shù)據(jù)對解決標注訓練語料的匱乏顯得尤為重要。
GEC是通過分析輸入句子成分之間的依賴性和邏輯性,將可能含有語法錯誤的句子作為輸入,在不改變語義的前提下將其轉(zhuǎn)化為語法正確的句子。GEC系統(tǒng)糾正示例如下:
Input:Travel by bus is exspensive,bored and annoying.
Output:Travelling by bus is expensive,boring and annoying.
模型輸出的最佳糾正結(jié)果需要將數(shù)據(jù)優(yōu)化[9-10]、模型優(yōu)化[11-12]與輸出優(yōu)化[13-14]相結(jié)合,主流的英語語法糾錯系統(tǒng)結(jié)構(gòu)圖如圖1所示。其中針對數(shù)據(jù)進行優(yōu)化[15]產(chǎn)生了諸多轉(zhuǎn)移學習和領域自適應學習等策略[16]。遷移學習可以解決真實語料不足的問題,而領域自適應學習是利用與GEC任務相似的合成數(shù)據(jù),通過預訓練的方式使模型獲得較好的泛化能力。目前為止,針對英語語法糾錯領域數(shù)據(jù)增廣方法的文獻十分缺乏。該文首先介紹GEC領域使用的數(shù)據(jù)集和評測GEC系統(tǒng)不同的指標,其次介紹在標注訓練數(shù)據(jù)匱乏的情況下,如何人工合成訓練數(shù)據(jù),之后分析了GEC領域應用現(xiàn)狀。最后對未來利用數(shù)據(jù)增廣方法提高英語語法糾錯性能、使用數(shù)據(jù)增廣的必要性進行了展望與總結(jié)。
圖1 主流英語語法糾錯系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure diagram of mainstream English grammar error correction system
最近深度學習在語言處理方面取得了重要突破,但GEC仍然是一項具有挑戰(zhàn)性的任務,其部分原因是語法錯誤類型的多樣性、語境中共存的多個錯誤之間語義的依賴性和人工標注數(shù)據(jù)的稀缺性。人工標注錯誤文本,將會消耗大量成本。GEC領域的語料庫包括單語語料庫和學習者語料庫。學習者語料庫是由“錯誤-正確”句對構(gòu)成,質(zhì)量高,但是數(shù)據(jù)量較少。單語語料庫種類繁多,數(shù)據(jù)量大,通常使用單語數(shù)據(jù)人工合成訓練句對,將其用于機器翻譯系統(tǒng)或其衍生任務?,F(xiàn)有公開可用的GEC語料庫是有限的,在大規(guī)模的注釋數(shù)據(jù)下GEC系統(tǒng)將會取得良好的糾正效果。現(xiàn)有的公開學習者語料庫如表1所示。其中,標注者數(shù)量為對文本中的錯誤進行標記、糾正的人數(shù);參考數(shù)是錯誤修改的候選參考數(shù)量。
表1 學習者語料Table 1 Learner corpus
1.1.1 GEC學習者語料
(1)FCE語料庫
劍橋?qū)W習者語料庫(Cambridge learner corpus,CLC)收集了全世界不同母語的學習者參加劍橋大學作文考試的語料,其容量大,是一個商業(yè)性的學習者語料庫。CLC中的文本從Upper Main Suite Examinations中選取,背景信息非常全面。CLC方便詞典編撰者檢索、查找學習者用得好的單詞、句式和語法結(jié)構(gòu),或者利用語料庫發(fā)現(xiàn)學習者的學習難點。另外,CLC還應用于書面作文的機器閱卷和評分軟件的開發(fā)。FCE(first certificate in English)語料庫[17]是劍橋?qū)W習者語料庫(CLC)的子集,其中包括了1 244篇出現(xiàn)在FCE考試中的書面答案,包括了7種錯誤類型,9種母語類型。
(2)JFLEG
JFLEG是用來評測GEC系統(tǒng)的常用測試集,包含747個句子,開發(fā)集包括764個句子,由約翰霍普金斯大學(JHU)提供,此語料庫用來評測句子的流利程度。英語語法糾錯不僅僅是對不同錯誤類型的糾錯,最終的目的是達到符合人類思維習慣的母語表達的程度。此語料庫僅在句子級別上進行標注,并沒有在詞粒度層面上進行標注。JFLEG測試集使用GLEU評價指標[18]。
(3)Lang-8學習者語料庫
Lang-8是一個在線的英語學習網(wǎng)站。鼓勵學習者相互糾正自己的錯誤,它將用戶在學習過程中的外語寫作文章,交給以此種外語為母語的國人批改。用戶自身也可以修改其他國人所寫的文章。網(wǎng)站提供需付費的高級服務,可以保存歷史文章、優(yōu)先在網(wǎng)站上顯示自己的作文等。Lang-8學習者語料庫[19]是從此網(wǎng)站爬取的部分語料,包含80多種語言和大量的“錯誤-正確”平行句對。Lang-8語料庫的英語語料嘈雜,沒有明確的標注規(guī)則。此語料庫為GEC公開預料庫中最大的一組[19],包含了200萬條句子對。
(4)NUCLE語料庫
NUCLE(National University of Corpus of learner English)數(shù)據(jù)集[20]是新加坡國立大學(NUS)標注的英語學習者語料庫,它包含了國立大學大學生撰寫的1 400篇論文,主題涉及到環(huán)境污染、醫(yī)療保健等不同方面。該語料庫由專業(yè)英語教師進行錯誤注釋,用于對GEC系統(tǒng)的訓練與性能評測,是第一個提供錯誤注釋并且可以免費使用的學習者語料庫。其中,共包括27種錯誤類型,比例最高的5種是Wcip(搭配錯誤、短語錯誤、介詞錯誤)、Rloc(冗余錯誤)、ArtOrDet(定冠詞錯誤)、Nn(名詞單復數(shù)錯誤)和Mec(格式錯誤)。5種錯誤類型注釋數(shù)量占所有注釋數(shù)量的57.83%。
(5)W&I+LOCNESS語料庫
BEA2019共享任務[21]中,發(fā)布了兩種新的數(shù)據(jù)集。分別是CEWI(Cambridge English write&improve)數(shù)據(jù)集和LOCNESS數(shù)據(jù)集[22]。W&I+LOCNESS語料庫包括了來自CEWI的3 600篇帶有人工注釋的文章和來自LONCESS的100篇注釋文章。
CEWI是英國劍橋大學研究員研究出的一個在線的英語學習系統(tǒng)。眾多的學習者可以通過該系統(tǒng)進行英文書面語的在線糾錯。通過輸入需要糾正的源語句,系統(tǒng)會及時、自動給出每句話的修改建議并對其合理性評分。CEWI數(shù)據(jù)庫是由英語測試試卷中的文本組成,這些文本來自148種不同語言的母語學習者。
LONCESS語料庫是由一些以英語作為母語的學生撰寫的論文組成。語料庫的每一條注釋數(shù)據(jù)有一個特殊的標記區(qū)分不同英語學習者的英語水平:A(初級,beginer)、B(中級,intermediate)、C(高級,advanced)。
(6)GMEG Wiki和GMEG Yahoo
近年來,GEC評測數(shù)據(jù)集主要由非母語的英語學習者所寫的論文組成,當測試集遷移到其他領域,GEC的系統(tǒng)可靠性便無法評估。GMEG數(shù)據(jù)集[23]是以英語為母語的學習者所寫的句子組成,包括了來自3個不同領域的GEC系統(tǒng)對該數(shù)據(jù)產(chǎn)生的糾正結(jié)果進行人工評級。GMEG Wiki是基于維基百科修訂歷史編輯而設定的語料庫,GMEG Yahoo是由雅虎的Web郵件中收集的答案組成,GMEG FCE是為FCE語料庫建立的新的錯誤標注。
(7)AESW
AESW[24]是科學寫作的自動評估共享任務automatic evaluation of scientific writing的測試集,但沒有廣泛使用。
(8)CLEC中國英語學習者語料庫
中國學習者語料庫包括了5種英語水平學生產(chǎn)生的英文語料,涉及中學英語、大學英語、大學四六級英語、專業(yè)英語低級和高級等層面,對其包含在內(nèi)的多種言語失誤進行標注,將言語失誤共分成61種類型。此語料庫還統(tǒng)計了失誤的頻數(shù)、占比,最常見的失誤類型,最常見的拼寫失誤單詞匯總等等。
1.1.2 單語語料庫
單語語料庫可以幫助模型進行預訓練,建立一個初始化良好的英語語法檢測與糾正系統(tǒng)。通過預處理、人工數(shù)據(jù)集合成等操作,模型可以充分利用一些非人工注釋的數(shù)據(jù)集來緩解訓練數(shù)據(jù)不足的問題。如今存在許多高質(zhì)量的英語語料庫,比如One-billion word benchmark[25]、Gutenberg語料庫[26]、Tatoeba語料庫[27]和維基百科語料庫[28]等。
(1)one-billion word benchmark
one-billion word benchmark是一套基準語料庫,數(shù)據(jù)集由康奈爾大學在2013年發(fā)布,數(shù)據(jù)來源于網(wǎng)頁,憑借近10億單詞規(guī)模的訓練數(shù)據(jù),該測試基準可以快速評估新的語言建模技術(shù)。
(2)Gutenberg
古騰堡工程(project Gutenberg,PG)是由志愿者參與、收集、整理的電子化資料,是一個電子文學圖書館,收錄包括德語、法語、意大利語以及中文在內(nèi)的不同語言著作。而Gutenberg語料庫[26]是古騰堡工程語料庫中的一個子集,包含142位作者的若干篇英、美著名作品,語言風格偏書面語,約1.2 GB。
(3)Tatoeba
Tatoeba語料庫是為機器翻譯發(fā)布的一個新的基準語料庫,該基準包含多種語言和用于從該數(shù)據(jù)集中創(chuàng)建最先進機器翻譯模型的工具,當前版本包含超過500 GB的壓縮數(shù)據(jù),涵蓋555種語言。該數(shù)據(jù)集提供了并行語料和單語語料,其中單語語料來源于Wikimedia中的公共數(shù)據(jù),為數(shù)據(jù)增廣方法提供數(shù)據(jù)來源支持。
(4)維基百科
Wikipedia是一個基于維基技術(shù)的在線百科全書,以多種語言編寫,超過4 700萬頁。Simple Wiki與通常的Wikipedia相比,只使用大約1 500個常見的英語單詞,這使得信息在語法和結(jié)構(gòu)上更容易理解。
數(shù)據(jù)增廣(data augmentation)可以看作是一種對訓練集數(shù)據(jù)的預處理方式。為了提高數(shù)據(jù)的質(zhì)量,在進行數(shù)據(jù)增廣、模型訓練等任務之前需要對數(shù)據(jù)進行清理,比如使用Lang-8數(shù)據(jù)[29]之前,需要對訓練數(shù)據(jù)進行清理,數(shù)據(jù)清理過程中可以使用moses[30]官方提供的處理腳本,腳本提供標點的規(guī)范化,控制有效句子長度,需要大寫的地方進行轉(zhuǎn)換、保留等。常見的處理方法包括:
(1)去重。訓練過程中,大量重復的數(shù)據(jù)使得訓練結(jié)果有一定偏差,可以將完全相同的句對清除。
(2)去空行。對于訓練文本中的空行,不會為模型的訓練提供任何信息。
(3)特殊符號處理。確定特殊符號列表,對于含有特殊符號的語句對刪除特殊符號或者直接刪除該語句對。
(4)長度控制。語句對的長度影響模型的訓練,長度太短的句子可能對模型的訓練沒有幫助;長度太長的句對,在送入模型之后需要對句對進行拆分截斷處理。
(5)Tokenize操作。SentencePiece、WordPiece是兩種tokenization的方法。掃描一遍訓練文本后構(gòu)建一個詞表,通過詞表對輸入的文本進行tokenize。tokenize就是對文本進行分詞并對詞語的數(shù)值化;tokenize操作同時完成了對英語句子和標點的切分。
(6)全半角轉(zhuǎn)換。對于訓練文本中的全角符號需要轉(zhuǎn)換成半角。
(7)標點的正則化。英文語料庫中不應該出現(xiàn)中文的標點符號,需要將中文的標點符號轉(zhuǎn)換成英文。
(8)Truecase。將每個單詞中存在的大小寫形式轉(zhuǎn)換成原本的寫法。
近年來英語語法糾錯在自然語言處理領域取得重要突破,產(chǎn)生了多種對GEC系統(tǒng)的評測方法。評測方法通常將輸出序列與黃金標準序列(人工標注的目標句)進行比較,比較過程中需要將輸出的原句和目標句進行詞對齊。GEC評價指標的發(fā)展趨勢如圖2所示,先前GEC模型的性能只通過精確度度量,后來M2、I指標的產(chǎn)生,通過召回率衡量GEC系統(tǒng),現(xiàn)如今GLEU、ERRANT錯誤工具包的產(chǎn)生,使評測結(jié)果更加公平。不同評測指標對比如表2所示。
表2 GEC評測指標優(yōu)缺點對比綜述Table 2 Comparison of advantages and disadvantages of GEC evaluation indicators
圖2 GEC評價指標發(fā)展趨勢Fig.2 GEC evaluation development trend
1.3.1 最大匹配分數(shù)
最大匹配分數(shù)[31](max match score,M2score),計算的是模型的輸出修改和標準修改在字、詞或短語級別的最大覆蓋,是評估英語語法糾錯模型常用的評測方法。此度量方法首先將GEC系統(tǒng)輸出的糾正句與人工標注的標準句進行單詞對齊,采用基于Levenshtein距離的對齊策略,計算將一個句子轉(zhuǎn)換成另一個句子后所需要的單詞基礎上的編輯(插入、刪除、替換)數(shù),以精確度、召回率、F值評估系統(tǒng)。
1.3.2 GLEU
Napoles等人[18]提出GLEU(generalized language evaluation understanding)評價句子的流利度,這是BLEU[32]的一種變體。原始輸入的錯誤語句簡稱源句,人工標注修改的句子稱為參考句。GEC系統(tǒng)輸出的糾正句子為假設句。計算假設句相對于參考句的N-gram精度,并對假設句中本改糾正卻沒有被糾正的N-gram進行懲罰。
1.3.3 I指標
I指標[33]在源句、系統(tǒng)輸出和參考句三者之間應用基于標記(token)級別的多序列對齊優(yōu)化算法。與M2不同的是此方法為錯誤檢測和糾正都提供了相應的分數(shù)。此方法定義了一種特殊的格式:每個句子都包含注釋和可能的修改,一個句子可以包含零個及多個錯誤。每個可以選擇的候選糾正必須是互斥的。
1.3.4 ERRANT
ERRANT[34]語法錯誤注釋工具包,從源語句和糾正后的句子中提取編輯數(shù)量,并對錯誤類型進行分類,有助于不同類型錯誤級別的評估。該工具使用Felice等人[35]提出的源句和修正句之間的對齊算法,然后為提取的編輯使用基于規(guī)則的錯誤類型框架分配錯誤類型??蚣芘c數(shù)據(jù)集無關(guān),僅依賴于自動獲取的如詞性標記等信息。
使用足夠多的無錯誤數(shù)據(jù)通過噪聲函數(shù)對其注入噪音,然后將合成的訓練數(shù)據(jù)用于模型的預訓練,由此提高了GEC模型的性能。對于不同數(shù)據(jù)增廣的方法、不同語料庫所屬的風格及其對不同風格的語料庫進行合并時如何進行優(yōu)化以至于獲得更好的預訓練模型等,均未生成共識。使用不同風格的語料庫、不同的數(shù)據(jù)合成方法、不同的數(shù)據(jù)集規(guī)模等均對模型的結(jié)果產(chǎn)生不同的影響[36]。GEC面臨的挑戰(zhàn)包括數(shù)據(jù)集的領域適用和低錯誤密度下將產(chǎn)生更低的精確度。同時,不同的錯誤概率分布、錯誤密集程度、錯誤的種類、語料庫所包含的語義變化都會影響到GEC系統(tǒng)的性能。相比于語言學習領域的數(shù)據(jù)集,使用其他領域數(shù)據(jù)集訓練過的監(jiān)督系統(tǒng)對于語法錯誤糾正可能沒有效果,還有可能表現(xiàn)出較低的精度。這也表明先進的糾錯系統(tǒng)偏向使用較高錯誤密度的數(shù)據(jù)集[26]。
對于一個低資源的機器翻譯任務,機器翻譯的加噪方法通常根據(jù)種子語料庫得出的錯誤頻率分布,使用隨機的替換、取代、刪除、插入等規(guī)則引入錯誤。但是,適合機器翻譯的噪聲函數(shù)不一定適合GEC。英語學習者常犯的錯誤類型中,發(fā)生單詞順序的錯誤概率比發(fā)生其他類型的錯誤概率都要低。因此,不同的數(shù)據(jù)增廣策略不斷提出,合成的訓練數(shù)據(jù)質(zhì)量也在不斷提高。有學者提出通過反向翻譯的數(shù)據(jù)增廣方法以此來充分利用單語數(shù)據(jù),但是高質(zhì)量的訓練句對往往耗費大量的勞動力,如何人工合成更加接近人類真實情景下常犯的英語錯誤對提高GEC模型的性能至關(guān)重要[37]]。初次之外,為了提高合成數(shù)據(jù)的質(zhì)量,往往引入合成數(shù)據(jù)的質(zhì)量控制。不同數(shù)據(jù)增廣方法間的優(yōu)缺點基合成示例,如表3所示。
表3 不同數(shù)據(jù)增廣方法優(yōu)缺點對比及合成示例Table 3 Comparison of advantages and disadvantages of different data augmentation methods and synthesis examples
2.1.1 基于規(guī)則的數(shù)據(jù)增廣方法
基于規(guī)則的數(shù)據(jù)增廣方法是使用限制性的語法規(guī)則針對特定語法錯誤對數(shù)據(jù)進行處理,其成為提高數(shù)據(jù)質(zhì)量的一種重要手段,使用特定的限制性規(guī)則在數(shù)據(jù)清理和數(shù)據(jù)合成任務中也具有重要意義。人為規(guī)則不限于增加、刪除、取代、交換及其相應的衍生變種,以此更加精確的生成標記(token)級別的錯誤,插入、刪除、交換可以在token級別和chatacter級別上進行操作,越來越多的工作面向替換規(guī)則,與簡單的從詞表中隨機挑選單詞進行替換,融入拼寫混淆集和同類型不同詞性單詞的替換,提高了模型的性能,如圖3所示。對于特定的、不易生成的語法錯誤,在自然語言處理領域中使用人為限制性的規(guī)則進行邏輯性的處理從而彌補此缺陷。
圖3 基于規(guī)則的數(shù)據(jù)增廣方法示例Fig.3 Examples of rules-based data augmentation methods
使用特定規(guī)則進行單語語料處理的方法很多,以一定的概率刪除、增加語句中的標記(token),對選中的單詞從詞典中隨機的選擇一個單詞進行替換及其進行單詞與單詞之間、單詞內(nèi)部的重排序操作[38]。使用基于規(guī)則的數(shù)據(jù)增廣方法過程簡單,但是預先定義的規(guī)則有限,比如使用“選中的單詞”與“臨近的單詞”進行替換,這樣有點欠缺,因為詞序錯誤發(fā)生的概率比名詞單復數(shù)、冠詞、動詞時態(tài)等錯誤發(fā)生的概率小得多,只涵蓋了英語學習者語法錯誤類型中的一小部分。也可以使用手動創(chuàng)建的規(guī)則,通過改變量詞、生成復數(shù)形式單詞、插入冗余的限定詞來擴大訓練數(shù)據(jù)[39],將句子轉(zhuǎn)換成不符合語法規(guī)范的語句,然后使用合成的訓練數(shù)據(jù)訓練基于短語的SMT系統(tǒng)進行語法錯誤糾正。例如:
規(guī)則1much→many:much advice→many advice
規(guī)則2some→a/an:some advice→an advice
規(guī)則3advice→advices:much good advice→many good advices
將特定的錯誤類型生成固定的模板,使用預先定義好的錯誤類型引入模板作用于單語語料庫人工生成訓練數(shù)據(jù)[40],也是用于GEC領域處理數(shù)據(jù)的方法之一。
2.1.2 融合標記、類別的數(shù)據(jù)處理方法
加單的使用人為定義的規(guī)則將語法錯誤注入到單語數(shù)據(jù),一定程度上改善GEC的性能[37],但是引入的錯誤并不接近英語學習者產(chǎn)生的真實錯誤。將人為定義的規(guī)則與單詞的詞性、形態(tài)相結(jié)合,將會更加接近英語語法糾錯數(shù)據(jù)集中的真實錯誤。
在基于標記和基于類別的加噪方法中[41],引入英語學習者最常犯的錯誤?;跇擞浀姆椒ㄊ紫葟膶W習者語料中提取人類的編輯和頻次。通過構(gòu)建的含有常見錯誤編輯的字典,隨機的將錯誤編輯應用于語法正確是句子?;陬悇e的噪聲方法,不會改變原始單詞的類別,比如更換不同的介詞、名詞單復數(shù)、動詞時態(tài)等。Yuan和Felice[42]從NUCLE學習者語料庫中提取錯誤標記應用于單語數(shù)據(jù),從而進行訓練數(shù)據(jù)的人工合成。
2.2.1 基于反向翻譯的數(shù)據(jù)增廣方法
基于反向翻譯的數(shù)據(jù)增廣方法,其思想是訓練一個反向模型(錯誤生成模型),以正確的句子作為輸入,輸出涵蓋語法錯誤的原句。Sennrich等人[9]首次提出反向翻譯模型,將反向模型的輸入與束搜索的輸出作為訓練句對來增加平行訓練語料的數(shù)量。方法還包括訓練反向模型并在集束搜索過程中加入噪音來合成偽數(shù)據(jù)[43]?;诜聪蚍g的數(shù)據(jù)增廣方法能夠覆蓋不同種類的錯誤類型,但是訓練性能高的反向翻譯模型往往需要大量的帶有注釋的糾錯數(shù)據(jù),也面臨著標注數(shù)據(jù)短缺的問題。反向翻譯模型輸出時不能保證系統(tǒng)輸出的句子中已經(jīng)注入錯誤,因此需要進行句子的“質(zhì)量控制”:結(jié)合外部的語言模型,將低于源句概率的輸出句子與源句構(gòu)成“錯誤-正確”句子對用于訓練。
還可以使用基于貪婪搜索策略的反向翻譯模型解碼生成合成數(shù)據(jù)[44],分析表明通過取樣生成的數(shù)據(jù)比集束搜索或貪婪搜索生成的合成數(shù)據(jù)將會產(chǎn)生更高的性能。在此之后基于反向翻譯的變體模型出現(xiàn)。Kiyono等人[36]將反向翻譯數(shù)據(jù)用預訓練,并通過直接注入噪聲的方法,對句子中的每個標記執(zhí)行隨機的掩碼、刪除、插入和保持不變操作來人工合成訓練數(shù)據(jù)。
Zhou等人[45]提出利用性能不同的機器翻譯模型合成訓練數(shù)據(jù)。首先,使用神經(jīng)機器翻譯模型生成高質(zhì)量的翻譯語句。其次,使用基于短語的統(tǒng)計機器翻譯模型生成低質(zhì)量的翻譯語句。將單語數(shù)據(jù)中同一個句子的不同質(zhì)量的翻譯作為訓練句對。實驗結(jié)果表明,使用合成的數(shù)據(jù)訓練無監(jiān)督的GEC模型可以獲得理想的性能。
Yuan和Felice[42]從NUCLE學習者語料中提取標注錯誤的所有可能編輯將其應用于標記(token)和詞性標注兩個方面(標記:has→have,to be used→to be use;詞性標記:NN→NNS,DT NNP→NNP)。在注入人為錯誤過程中,token模式優(yōu)先于詞性標注模式,使用合成的訓練數(shù)據(jù)集訓練多個基于短語的統(tǒng)計機器翻譯模型(phrase-based statistical machine translation,PB-SMT),選擇性能最好的進一步完善提高。
2.2.2 基于往返翻譯的單語數(shù)據(jù)處理方法
基于往返翻譯的數(shù)據(jù)增廣方法,其思想是訓練兩種機器翻譯模型,一種為英語翻譯到非英語的橋語言的模型,另一種是非英語的橋語言翻譯到英語的模型。源語句是單語數(shù)據(jù),往返翻譯生成的是目標語句。使用往返翻譯合成的偽數(shù)據(jù)體現(xiàn)多種語言的可擴展性,并且不需要大量的標注數(shù)據(jù),但是根據(jù)翻譯模型性能的優(yōu)劣,得到的源語言的質(zhì)量也隨即不同。性能高的機器翻譯模型得到的源語句將不存在語法錯誤,性能低的機器翻譯模型結(jié)果產(chǎn)生很大的語義差異,可能改變語句原本的表達意思,導致更多的信息丟失。
NMT不適合低資源的任務,因此需要大量的合成數(shù)據(jù)彌補差距。維基百科提供了所有維基百科修訂歷史的頁面。不同的頁面包括的數(shù)據(jù)量也是不盡相同,從頁面中提取連續(xù)的數(shù)據(jù)作為“源-目標”句子對。其中源句是較舊的連續(xù)修訂歷史頁面提供,目標句是對應較新的連續(xù)修訂歷史頁面提供。使用最小過略的啟發(fā)式算法從維基百科編輯歷史中提取訓練句子對[46],從而生成大規(guī)模的語料庫。與往返翻譯相比,此方法生成的數(shù)據(jù)相對嘈雜。Zhou等人[45]從維基百科的修訂歷史中提取修訂的錯誤編輯合成訓練數(shù)據(jù),使用此方法可以收集到人為的修正錯誤編輯,更加接近英語學習者在學習過程中常犯的英語語法錯誤。但是大多數(shù)的糾正不是語法錯誤修正,并且合成的數(shù)據(jù)需要經(jīng)過過濾處理。
Felice等人[47]首次利用語言信息推導錯誤發(fā)生的概率。實驗過程中,分析了一組對于適合錯誤注入的文本非常重要的變量,包括主題、題材類型、風格、文本的復雜程度等。結(jié)果表明犧牲精度可以提高召回率,不同的語言信息影響不同類型的錯誤糾正。
從應用特定的學習者語料庫到如今使用數(shù)據(jù)增廣方法合成的訓練集,GEC性能逐漸的提高。本文按時間順序整理了常見的基于數(shù)據(jù)增廣方法的GEC模型性能上的對比,如圖4所示[10,14,41,43,45-46,48-65]。
圖4 數(shù)據(jù)增廣方法的系統(tǒng)表現(xiàn)Fig.4 System performance using data augmentation methods
與早期的基于規(guī)則、分類、語言模型等英語糾錯方法相比,目前GEC任務的主流應用是采用基于機器翻譯的方法。本文從基于統(tǒng)計的機器學習方法與基于深度學習的英語語法糾錯方法兩方面詳細介紹GEC領域應用現(xiàn)狀并對其優(yōu)缺點進行對比。不同GEC應用現(xiàn)狀的優(yōu)缺點如表4所示。
表4 GEC領域應用現(xiàn)狀優(yōu)缺點分析綜述Table 4 Summary of advantages and disadvantages of application status in GEC field
3.1.1 基于規(guī)則
基于規(guī)則[1]的最典型GEC方法就是將語言知識總結(jié)、抽象,以特定的形式存儲。在糾錯過程中,結(jié)合待糾正的輸入,選擇相應的規(guī)則性知識進行推理或變換。規(guī)則包括源語言的分析規(guī)則、源語言內(nèi)部表示形式向目標語言內(nèi)部表示形式的轉(zhuǎn)換規(guī)則,以及目標語言的內(nèi)部表示轉(zhuǎn)換為目標語言的規(guī)則。
3.1.2 基于分類
基于分類[3,65]的英語語法糾錯方法主要將糾錯任務視為分類問題,早期主要針對冠詞和介詞錯誤。其主要思想是人工進行特征選取,對每種語法錯誤類型標記不同的分類標簽,比如冠詞,可以分為a、an、the、沒有冠詞4種情形,分別標記0、1、2、3標簽。分類器通過特征對目標單詞進行預測,目標單詞最可能的預測結(jié)果作為最終的分類輸出。例如,F(xiàn)elice等人[66]通過提取18個定冠詞和13個介詞的上下文特征進行訓練,最終冠詞和介詞的糾正精確度分別達到70.6%和92%,取得了良好的效果。
3.1.3 基于N-gram語言模型
許多GEC應用基于語言模型[67],語言模型定義了關(guān)于自然語言中的字、字符或字節(jié)序列的概率分布。N-gram是一種基于統(tǒng)計語言模型的算法,基本思想是將文本里面的內(nèi)容按照字節(jié)進行大小為N的滑動窗口操作,形成了長度為N的字節(jié)片段序列。每個字節(jié)片段為gram,對所有g(shù)ram的出現(xiàn)頻度進行統(tǒng)計,并按照事先設定好的閾值進行過濾,形成關(guān)鍵的gram列表,列表中的每一種gram為一個特征向量的維度。N-gram模型最終按照前N個詞語預測當前的詞語。
3.1.4 基于統(tǒng)計機器翻譯
統(tǒng)計機器翻譯[6]是一種參數(shù)學習方法,統(tǒng)計翻譯模型利用實例訓練模型參數(shù),其本質(zhì)是帶參數(shù)的機器學習。因此,模型適用于任意語言對,也方便遷移到不同應用領域。
其中,基于短語的統(tǒng)計機器翻譯的GEC模型[39]應用較廣,其基本思想是在詞語對齊的預料庫上,尋找并記錄所有的互為翻譯的雙語短語,并在整個語料庫上統(tǒng)計這種雙語短語的概率。解碼(翻譯)的時候,只將被糾正的句子與語庫中的源語句短語進行匹配,找出概率最大的短語組合,并適當調(diào)整目標短語的語序。
3.2.1 基于神經(jīng)語言模型的方法
傳統(tǒng)的N-gram模型由于參數(shù)空間的爆炸式增長,通常僅能對長度為兩三個詞的序列進行評估,其次,N-gram模型沒有考慮詞與詞之間內(nèi)在的聯(lián)系性?;谏窠?jīng)語言模型的GEC方法[37],其思想是:通過嵌入一個線性的投影矩陣,將原始的獨熱編碼向量映射為一個個稠密的連續(xù)向量,并通過訓練一個神經(jīng)語言模型,去學習這些向量的權(quán)重,使用詞向量預測可能出現(xiàn)在目標詞后面的詞。隨著訓練次數(shù)的增加和反向傳播調(diào)整,網(wǎng)絡逐漸獲得了將上下文相似的詞映射為相似的詞向量的能力。
3.2.2 基于神經(jīng)機器翻譯的方法
機器翻譯是讀取一種自然語言句子并產(chǎn)生等同含義的另一種語言的句子。機器翻譯系統(tǒng)可能提出多個候選翻譯,由于語言之間的差異性,這些翻譯中的許多候選句是不符合語法的,例如:許多翻譯的候選句在名詞后放置形容詞(sky blue),目標結(jié)果為(blue sky),但也為數(shù)據(jù)增廣方法提供解決思路。其次,還需要語言模型評估翻譯系統(tǒng)輸出候選句。
端到端的神經(jīng)機器翻譯[7],直接利用神經(jīng)網(wǎng)絡實現(xiàn)源語言文本到目標語言文本的映射。主要以“編碼-解碼”思想:給定一個源語言句子,首先使用編碼器將其映射為一個連續(xù)、稠密的向量,然后再使用一個解碼器將該向量轉(zhuǎn)化為一個目標語言的句子。此外,還可以將遞歸神經(jīng)網(wǎng)絡(recursive neural network,RNN)、卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)、長短期記憶(long short term memory,LSTM)、注意力機制引入端到端的神經(jīng)機器翻譯。其中,使用遞歸神經(jīng)網(wǎng)絡能夠捕獲歷史信息和處理變長字符串的優(yōu)點。使用LSTM可以較好的捕獲長距離依賴,解決了遞歸神經(jīng)網(wǎng)絡訓練時“梯度消失”和梯度爆炸“梯度爆炸”的問題。注意力,是指當解碼器在生成單個目標語言詞時,僅有小部分的源語言詞是相關(guān)的,絕大多數(shù)源語言詞都是無關(guān)的。注意力機制的引入,能夠更好地處理長距離依賴,提升端到端神經(jīng)機器翻譯模型的性能。
3.2.3 預訓練模型
遷移學習是利用在一個場景中已經(jīng)學習到的內(nèi)容去改善另一個情景中的泛化情況,預訓練方法屬于遷移學習領域的應用。使用海量、無標簽的數(shù)據(jù)預先訓練模型,使模型學習到通用的語言表示。通過學習每個輸入句子中每個單詞的上下文相關(guān)表示,從而提升下游任務效果。現(xiàn)如今,優(yōu)異的語言模型基于Transformer[68]構(gòu)建,比如GPT、BERT、RoBERTa、XLNET等。Zhao等人[38]通過改進Transformer模型,在注意力模型中使用Copy-Augmented Tarnsformer,即將原句中未改變的單詞復制到目標語句,每條語句需要糾正的僅僅幾個單詞?;趶椭茩C制的Transforner模型能夠判斷復制還是從詞表空間中生成。研究表明,使用Transformer及其衍生變種模型可能成為下一個關(guān)鍵技術(shù)。
目前,基于數(shù)據(jù)驅(qū)動的GEC方法面臨諸如需要大量注釋訓練數(shù)據(jù)、人工標注錯誤數(shù)據(jù)消耗昂貴成本等問題。例如,基于規(guī)則的方法完全靠人工編纂糾錯規(guī)則;基于統(tǒng)計的方法能夠從數(shù)據(jù)中自動學習翻譯知識,但仍需要人工設計翻譯過程的隱結(jié)構(gòu)和特征。近年來,GEC領域未來的研究方向可能集中在以下幾個方面:
(1)模型訓練數(shù)據(jù)。通過降低訓練的復雜度,有效地提高模型糾錯的質(zhì)量。近期的工作表明[52,69],直接優(yōu)化數(shù)據(jù)增廣方法、合成更加真實的加躁數(shù)據(jù)可以顯著提升模型的糾錯性能。
(2)評價指標。在GEC評價指標中,由于存在候選編輯序列對齊的多樣性及歧義性問題,如何建立視為有效、正確的糾正句編輯集合,從而綜合客觀的評價系統(tǒng)的性能具有重要意義。
(3)模型應用架構(gòu)。如何設計表達能力更強的新架構(gòu),充分相鄰句子甚至段落級的上下文語義信息。例如近期提出的BERT、Transformer及其衍生變種可能成為下一個關(guān)鍵技術(shù)。
本文主要梳理了近年來數(shù)據(jù)增廣策略在英語語法糾錯過程中的應用。首先介紹的GEC領域的背景知識并探討GEC評測指標的難點及解決方案。然后,詳細說明了數(shù)據(jù)增廣方法,最后描述了在GEC領域中的應用。文中通過對評測指標、數(shù)據(jù)增廣方法、相關(guān)應用進行橫向?qū)Ρ?,指出了各類方法的?yōu)缺點。同時,對數(shù)據(jù)增廣方法、模型架構(gòu)、評測指標等未來發(fā)展方法進行分析,為后續(xù)進一步研究提供指導工作。
由于GEC領域沒有單一的評價指標,指標的有用性取決于應用領域和研究目標。其次,主流的基于機器翻譯的GEC模型對其在不同錯誤類型上的準確性和覆蓋率,在實踐中并不完全令人滿意。性能優(yōu)異的模型得益于大量的學習者語料數(shù)據(jù)。不幸的是這些數(shù)據(jù)需要大量的專業(yè)知識,構(gòu)建相應的語料庫成本很高,一種有效的數(shù)據(jù)擴充方式使GEC的性能進一步提高??傊?,近年來基于數(shù)據(jù)增廣的英語糾錯方法在自然語言處理領域取得重要的成就,具有較高的應用價值和發(fā)展前景。