張生盛,龐桂娜,楊麟兒,王辰成,杜永萍,楊爾弘,黃雅平
(1. 北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044;2. 北京語(yǔ)言大學(xué) 國(guó)家語(yǔ)言資源監(jiān)測(cè)與研究平面媒體中心,北京100083;3. 北京語(yǔ)言大學(xué) 語(yǔ)言資源高精尖創(chuàng)新中心,北京 100083;4. 北京工業(yè)大學(xué),信息學(xué)部,北京 100124)
語(yǔ)法糾錯(cuò)(Grammatical Error Correction,GEC)任務(wù)旨在自動(dòng)檢測(cè)文本中存在的標(biāo)點(diǎn)、語(yǔ)序等語(yǔ)法錯(cuò)誤,識(shí)別錯(cuò)誤的類型并對(duì)錯(cuò)誤進(jìn)行自動(dòng)改正。語(yǔ)法糾錯(cuò)系統(tǒng)的輸入是一個(gè)可能有語(yǔ)法錯(cuò)誤的句子,輸出是其相應(yīng)的修改后的句子。如圖1所示,第一行表示系統(tǒng)的輸入,第二行表示系統(tǒng)的輸出,其中加粗部分表示修改的內(nèi)容。隨著人工智能越來(lái)越深入地影響人們的日常生活,自然語(yǔ)言處理作為語(yǔ)言學(xué)和計(jì)算機(jī)科學(xué)完美融合的一門學(xué)科,在人工智能領(lǐng)域扮演著重要的角色。語(yǔ)法糾錯(cuò)任務(wù)是自然語(yǔ)言處理領(lǐng)域的一個(gè)重要分支,無(wú)論是在實(shí)際生活中還是科研領(lǐng)域都有著舉足輕重的地位,吸引了大量的研究者。
圖1 語(yǔ)法糾錯(cuò)系統(tǒng)的輸入輸出示例
Lee和Seneff[1]發(fā)現(xiàn),二語(yǔ)學(xué)習(xí)者犯的語(yǔ)法錯(cuò)誤經(jīng)常是受他們的母語(yǔ)因素的影響。例如,母語(yǔ)是日語(yǔ)且把英語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者常濫用冠詞和介詞。對(duì)母語(yǔ)是日語(yǔ)的二語(yǔ)學(xué)習(xí)者常犯的這類錯(cuò)誤建模,可以有效地提高語(yǔ)言學(xué)習(xí)系統(tǒng)的性能。許多基于深度學(xué)習(xí)的方法[2-3]將語(yǔ)法糾錯(cuò)視為序列到序列(Seq2Seq)的任務(wù),因此神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT)的方法被成功運(yùn)用到語(yǔ)法糾錯(cuò)中,通過(guò)將一個(gè)錯(cuò)誤的句子翻譯為正確的句子來(lái)實(shí)現(xiàn)糾錯(cuò),并且在一般的領(lǐng)域獲得了很好的性能。但是這些基于Seq2Seq的方法在特定的領(lǐng)域并不能獲得魯棒的性能,其主要原因是并未對(duì)特定的領(lǐng)域建模從而出現(xiàn)了領(lǐng)域漂移的現(xiàn)象。例如,Nadejde和Tetreault[4]使用一般領(lǐng)域訓(xùn)練的模型在特定領(lǐng)域做測(cè)試,發(fā)現(xiàn)性能明顯下降。進(jìn)而他們將語(yǔ)法糾錯(cuò)模型適應(yīng)到英語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者的母語(yǔ)和等級(jí)上,發(fā)現(xiàn)語(yǔ)法糾錯(cuò)系統(tǒng)的性能得到了明顯的提升。但是,當(dāng)前針對(duì)漢語(yǔ)的語(yǔ)法糾錯(cuò)方法[5-8]都集中在一般的領(lǐng)域,并未對(duì)特定的領(lǐng)域建模。由于漢語(yǔ)語(yǔ)法與英語(yǔ)語(yǔ)法不同,二者之間沒(méi)有直接的聯(lián)系,故本文面向漢語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者,提出個(gè)性化語(yǔ)法糾錯(cuò),通過(guò)遷移學(xué)習(xí)方法將一般的語(yǔ)法糾錯(cuò)系統(tǒng)適應(yīng)到漢語(yǔ)學(xué)習(xí)者不同的領(lǐng)域,如漢語(yǔ)學(xué)習(xí)者的等級(jí)、母語(yǔ)等,并對(duì)不同等級(jí)、不同母語(yǔ)的漢語(yǔ)學(xué)習(xí)者犯的錯(cuò)誤分別進(jìn)行糾正。
為驗(yàn)證提出的方法是否合理,首先,本文選擇漢語(yǔ)學(xué)習(xí)者的等級(jí)和母語(yǔ)作為領(lǐng)域適應(yīng)的設(shè)置,并構(gòu)建了不同領(lǐng)域漢語(yǔ)學(xué)習(xí)者的數(shù)據(jù)集。然后,本文將語(yǔ)法糾錯(cuò)任務(wù)視為翻譯任務(wù),通過(guò)將一個(gè)錯(cuò)誤的句子翻譯為正確的句子實(shí)現(xiàn)糾錯(cuò),并選擇基于Transformer增強(qiáng)架構(gòu)的中文語(yǔ)法糾錯(cuò)模型[9]作為實(shí)驗(yàn)?zāi)P?。最后,在不同領(lǐng)域的數(shù)據(jù)集上展開(kāi)了實(shí)驗(yàn),將一般的語(yǔ)法糾錯(cuò)系統(tǒng)適應(yīng)到相應(yīng)的領(lǐng)域,并對(duì)不同領(lǐng)域的漢語(yǔ)學(xué)習(xí)者所犯的錯(cuò)誤分別進(jìn)行糾錯(cuò)。實(shí)驗(yàn)結(jié)果表明,語(yǔ)法糾錯(cuò)模型適應(yīng)到學(xué)習(xí)者的各個(gè)領(lǐng)域后,糾錯(cuò)性能得到顯著提升。其中,學(xué)習(xí)者等級(jí)領(lǐng)域適應(yīng)模型、母語(yǔ)領(lǐng)域適應(yīng)模型以及母語(yǔ)-等級(jí)領(lǐng)域適應(yīng)模型分別比基線模型高出1.92、1.73、1.76個(gè)百分點(diǎn)。
本文的主要貢獻(xiàn)如下:
(1) 首次提出面向漢語(yǔ)作為第二語(yǔ)言學(xué)習(xí)者的個(gè)性化語(yǔ)法糾錯(cuò),對(duì)不同等級(jí)、不同母語(yǔ)的漢語(yǔ)學(xué)習(xí)者分別進(jìn)行糾錯(cuò)。
(2) 構(gòu)建了不同領(lǐng)域漢語(yǔ)學(xué)習(xí)者的數(shù)據(jù)集,用來(lái)訓(xùn)練和測(cè)試語(yǔ)法糾錯(cuò)模型適應(yīng)到漢語(yǔ)學(xué)習(xí)者不同領(lǐng)域后的性能。
(3) 將語(yǔ)法糾錯(cuò)模型適應(yīng)到漢語(yǔ)學(xué)習(xí)者不同的領(lǐng)域后,糾錯(cuò)性能得到顯著提升,整體實(shí)驗(yàn)結(jié)果均超越基線模型,驗(yàn)證了本文所提出的方法的合理性。
本文組織結(jié)構(gòu)為: 第1節(jié)介紹使用的語(yǔ)法糾錯(cuò)模型和領(lǐng)域適應(yīng)的方法; 第2節(jié)詳細(xì)介紹實(shí)驗(yàn)設(shè)置;第3節(jié)給出了實(shí)驗(yàn)細(xì)節(jié)和各個(gè)模型對(duì)樣例的糾錯(cuò)結(jié)果;第4節(jié)是相關(guān)工作,主要介紹了與本文有關(guān)的工作;最后是總結(jié)部分。
在給定一個(gè)長(zhǎng)度為M的錯(cuò)誤句子X(jué)={x1,…,xM}和一個(gè)學(xué)習(xí)者的領(lǐng)域d后,基于神經(jīng)機(jī)器翻譯的語(yǔ)法糾錯(cuò)模型使用神經(jīng)網(wǎng)絡(luò)對(duì)輸出句子Y={y1,…,yN}的條件概率建模,如式(1)所示。
(1)
其中,θ是模型的參數(shù)。根據(jù)Madotto等人[10]的工作,首先將模型的參數(shù)θ適應(yīng)到學(xué)習(xí)者的領(lǐng)域d,然后使用錯(cuò)誤的句子對(duì)輸出句子的條件概率建模,如式(2)所示。
(2)
其中,θd是對(duì)學(xué)習(xí)者的領(lǐng)域d建模以后的參數(shù)。學(xué)習(xí)者的領(lǐng)域有多種定義方式,如等級(jí)、母語(yǔ)、母語(yǔ)和等級(jí)的組合等。
本文采用王辰成等人[9]實(shí)現(xiàn)的基于Transformer增強(qiáng)架構(gòu)的中文語(yǔ)法糾錯(cuò)模型,該模型不僅可以捕獲豐富的語(yǔ)義信息,還可以減少因?yàn)榫W(wǎng)絡(luò)過(guò)深出現(xiàn)的梯度消失問(wèn)題。
Transformer[11]模型是基于多頭注意力機(jī)制的Seq2Seq生成模型,如圖2所示,它由編碼器(Encoder)和解碼器(Decoder)組成。其中,編碼器由N個(gè)相同的模塊構(gòu)成,即圖2左側(cè)部分,每個(gè)模塊由兩個(gè)網(wǎng)絡(luò)層構(gòu)成,分別是多頭自注意力機(jī)制和全連接的前饋網(wǎng)絡(luò),兩者之間都使用了歸一化和殘差連接。解碼器同樣是由N個(gè)相同的模塊構(gòu)成,即圖2右側(cè)部分。與編碼器不同的是,解碼器中包含使用編碼器輸出進(jìn)行運(yùn)算的多頭注意力層。編碼器的作用是將輸入序列編碼為高維隱含語(yǔ)義向量,解碼器根據(jù)上一時(shí)間步的輸出,解碼隱含語(yǔ)義向量作為當(dāng)前時(shí)間步的輸出,每個(gè)時(shí)間步的輸出對(duì)應(yīng)序列中的一個(gè)元素,所有時(shí)間步的輸出拼接在一起作為最終的輸出序列。王辰成等人[9]將各個(gè)模塊的輸出動(dòng)態(tài)地結(jié)合到一起,以此來(lái)增強(qiáng)模型對(duì)語(yǔ)義信息的表達(dá)能力。
圖2 Transformer語(yǔ)法糾錯(cuò)模型
為實(shí)現(xiàn)個(gè)性化語(yǔ)法糾錯(cuò),本文采用遷移學(xué)習(xí)方法,將一般領(lǐng)域的語(yǔ)法糾錯(cuò)模型適應(yīng)到學(xué)習(xí)者的特征領(lǐng)域。采用遷移學(xué)習(xí)方法的主要原因是一般領(lǐng)域的數(shù)據(jù)較多,學(xué)習(xí)者特征領(lǐng)域的數(shù)據(jù)較少,一般領(lǐng)域的數(shù)據(jù)與學(xué)習(xí)者特征領(lǐng)域的數(shù)據(jù)可以共享模型的參數(shù),更好地幫助模型適應(yīng)到學(xué)習(xí)者的特征領(lǐng)域。具體做法是: 首先使用一般領(lǐng)域的數(shù)據(jù)對(duì)語(yǔ)法糾錯(cuò)模型做預(yù)訓(xùn)練,再利用學(xué)習(xí)者特征領(lǐng)域的數(shù)據(jù)對(duì)模型進(jìn)行微調(diào),使其適應(yīng)到相應(yīng)的領(lǐng)域,整體的框架如圖3所示。
圖3 語(yǔ)法糾錯(cuò)系統(tǒng)領(lǐng)域適應(yīng)框架
本文首先在Lang-8(1)https://lang-8.com數(shù)據(jù)集上對(duì)模型進(jìn)行預(yù)訓(xùn)練,然后使用HSK(2)http://hsk.blcu.edu.cn/作為領(lǐng)域適應(yīng)的數(shù)據(jù)集。兩個(gè)數(shù)據(jù)集均由漢語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者書(shū)寫,并由母語(yǔ)是漢語(yǔ)的人進(jìn)行了糾錯(cuò)。當(dāng)我們從兩個(gè)數(shù)據(jù)集中抽取平行句對(duì)時(shí),去掉未修改的句對(duì)。使用jieba(3)https://github.com/fxsjy/jieba分詞工具對(duì)所有句子進(jìn)行分詞,并且運(yùn)用字節(jié)對(duì)編碼算法(Byte Pair Encoding, BPE)(4)https://github.com/rsennrich/subword-nmt[12]進(jìn)一步限制詞表大小,以緩解罕見(jiàn)詞和未登錄詞(Out of Vocabulary,OOV)的問(wèn)題。
表1給出了一個(gè)句子經(jīng)過(guò)jieba分詞和BPE以后的結(jié)果,其中“@@”符號(hào)表示當(dāng)前單元與下一個(gè)單元同屬一個(gè)詞語(yǔ)。經(jīng)過(guò)處理后,兩個(gè)數(shù)據(jù)集的詳細(xì)情況如表2所示。
表1 一個(gè)句子經(jīng)過(guò)jieba分詞和BPE的示例
表2 數(shù)據(jù)集詳情
我們?cè)贖SK數(shù)據(jù)集上研究個(gè)性化語(yǔ)法糾錯(cuò),該數(shù)據(jù)集由14種不同母語(yǔ)和4種不同等級(jí)的漢語(yǔ)學(xué)習(xí)者所寫的考試作文組成。我們根據(jù)學(xué)習(xí)者的母語(yǔ)和等級(jí)信息抽取了平行句對(duì),其中各個(gè)等級(jí)所包含的句子數(shù)如圖4(a)所示,各個(gè)母語(yǔ)所包含的句子數(shù)如圖4(b)所示,各個(gè)等級(jí)和母語(yǔ)的句子數(shù)如圖4(c)所示。
圖4 HSK中各個(gè)等級(jí)、母語(yǔ)以及等級(jí)和母語(yǔ)的句子數(shù)分布
實(shí)驗(yàn)中,編碼器詞嵌入矩陣和解碼器詞嵌入矩陣維度為512,解碼器的輸入和輸出詞嵌入矩陣共享權(quán)重。編碼器和解碼器各包含6個(gè)模塊,每個(gè)模塊的多頭注意力層有8個(gè)注意力頭,前饋層的維度大小為2 048。優(yōu)化器使用Adam,動(dòng)量設(shè)置為(0.9,0.98),warm-up為4 000,學(xué)習(xí)率的更新策略初始值是1×10-7,在前4 000步的訓(xùn)練中,線性增長(zhǎng)到5×10-4,之后逐步指數(shù)下降到訓(xùn)練結(jié)束,Dropout為0.3,柱搜索的大小為12,最大的token數(shù)為4 000。在預(yù)訓(xùn)練階段,我們根據(jù)Ren等人[5]的方法,隨機(jī)從Lang-8中抽取5 000個(gè)句對(duì)作為驗(yàn)證集,并選取驗(yàn)證集上最優(yōu)的模型作為最終預(yù)訓(xùn)練的模型。在微調(diào)階段,選取驗(yàn)證集上最優(yōu)的前5個(gè)模型的權(quán)重并計(jì)算權(quán)重的平均值作為領(lǐng)域適應(yīng)模型的權(quán)重。
本文的基線模型有兩個(gè),分別為:
(1)無(wú)微調(diào)[4]: 該方法直接使用預(yù)訓(xùn)練的模型對(duì)各個(gè)領(lǐng)域測(cè)試集中的句子進(jìn)行糾錯(cuò);
(2)隨機(jī)[4]: 該方法隨機(jī)地從HSK數(shù)據(jù)集中抽取與各個(gè)領(lǐng)域相同數(shù)量的訓(xùn)練集和開(kāi)發(fā)集,并使用這些數(shù)據(jù)對(duì)預(yù)訓(xùn)練的模型進(jìn)行微調(diào),然后對(duì)各個(gè)領(lǐng)域的測(cè)試集中的句子進(jìn)行糾錯(cuò)。領(lǐng)域適應(yīng)的各個(gè)模型超越這個(gè)基線模型,可以幫助我們驗(yàn)證: 語(yǔ)法糾錯(cuò)模型性能的提升,不僅是因?yàn)槟P瓦m應(yīng)到HSK數(shù)據(jù)集上,還因?yàn)閷?duì)各個(gè)領(lǐng)域成功地建模。
正如王辰成等人[9]提到的,應(yīng)該重點(diǎn)關(guān)注模型對(duì)錯(cuò)誤編輯的準(zhǔn)確性而非編輯的數(shù)量,所以為了評(píng)價(jià)語(yǔ)法糾錯(cuò)模型的性能,我們采用MaxMatch(M2)工具包計(jì)算F0.5分?jǐn)?shù),根據(jù)F0.5的大小判斷模型的性能。計(jì)算F0.5需要有m2格式的文件,它是根據(jù)原句和修改句生成的最佳編輯集合。因此,我們使用ERRANT(5)https://github.com/chrisjbryant/errant工具包制作了各個(gè)測(cè)試集m2格式的文件。
為了驗(yàn)證提出的方法是否合理,我們構(gòu)建了各個(gè)領(lǐng)域適應(yīng)的數(shù)據(jù)集,根據(jù)Nadejde和Tetreault[4]工作中的實(shí)驗(yàn)設(shè)置,我們將各個(gè)領(lǐng)域適應(yīng)的數(shù)據(jù)集按照8∶1∶2的比例劃分為訓(xùn)練集、開(kāi)發(fā)集和測(cè)試集。
HSK數(shù)據(jù)集將漢語(yǔ)學(xué)習(xí)者的水平分為A、B、C和N(N表示無(wú))四個(gè)等級(jí),我們?yōu)槊總€(gè)等級(jí)隨機(jī)抽取11 000個(gè)平行句對(duì);為隨機(jī)基線模型在不考慮等級(jí)的條件下隨機(jī)抽取8 000個(gè)平行句對(duì)作為訓(xùn)練集,1 000個(gè)平行句對(duì)作為開(kāi)發(fā)集,實(shí)驗(yàn)結(jié)果如表3所示。從表3可以看出,我們的結(jié)果在等級(jí)A上超出隨機(jī)基線模型3.59個(gè)百分點(diǎn),從圖4(a)可以看出,等級(jí)A的句子是HSK中數(shù)量最少的,卻是提升最高的,這表明了個(gè)性化語(yǔ)法糾錯(cuò)是合理且有效的。在等級(jí)C上,相比隨機(jī)基線模型我們的方法提升了0.15個(gè)百分點(diǎn)。
表3 不同等級(jí)上的結(jié)果
從圖4(a)可以看出,等級(jí)C的句子是HSK中數(shù)量最多的,所以在不考慮等級(jí)的情況下隨機(jī)抽到的句對(duì)中等級(jí)C的數(shù)量也是最多的,這很好地解釋了在等級(jí)C上提升是最小的。從整體結(jié)果來(lái)看,我們的方法比隨機(jī)基線模型提高了1.92個(gè)百分點(diǎn)。
HSK數(shù)據(jù)集由14種母語(yǔ)的漢語(yǔ)學(xué)習(xí)者書(shū)寫,本實(shí)驗(yàn)選用其中數(shù)據(jù)最多的4種母語(yǔ): 韓語(yǔ)、日語(yǔ)、新加坡英語(yǔ)、印尼語(yǔ)。我們?yōu)檫@4種不同的母語(yǔ)分別隨機(jī)抽取4 950個(gè)平行句對(duì);為隨機(jī)基線模型在不考慮母語(yǔ)的條件下隨機(jī)抽取3 600個(gè)平行句對(duì)作為訓(xùn)練集,450個(gè)平行句對(duì)作為開(kāi)發(fā)集。
實(shí)驗(yàn)結(jié)果如表4所示,我們的方法在新加坡英語(yǔ)上比隨機(jī)基線模型高出4.98個(gè)百分點(diǎn),超越了其他母語(yǔ)。此外,在新加坡英語(yǔ)上,從無(wú)微調(diào)基線模型到隨機(jī)基線模型的提升為15.51個(gè)百分點(diǎn),低于其他母語(yǔ)。以上結(jié)果說(shuō)明領(lǐng)域適應(yīng)模型性能的提升不僅是因?yàn)閷⒛P瓦m應(yīng)到HSK數(shù)據(jù)集上,還因?yàn)閷?duì)學(xué)習(xí)者的領(lǐng)域進(jìn)行了建模。從整體結(jié)果來(lái)看,我們的方法比隨機(jī)基線模型超出1.73個(gè)百分點(diǎn)。
表4 不同母語(yǔ)上的結(jié)果
HSK數(shù)據(jù)集中包含4種等級(jí)和14種母語(yǔ)的組合,共有56種母語(yǔ)-等級(jí)組合的情況,本實(shí)驗(yàn)選用其中數(shù)據(jù)最多的5種母語(yǔ)-等級(jí)組合: 韓語(yǔ)-C、韓語(yǔ)-N、日語(yǔ)-B、日語(yǔ)-C、日語(yǔ)-N。我們?yōu)檫@5種不同的母語(yǔ)-等級(jí)組合分別隨機(jī)抽取4 950個(gè)平行句對(duì);為韓語(yǔ)和日語(yǔ)每種語(yǔ)言隨機(jī)抽取3 600個(gè)平行句對(duì)作為訓(xùn)練集,450個(gè)平行句對(duì)作為開(kāi)發(fā)集;為B、C、N每種等級(jí)隨機(jī)抽取3 600個(gè)平行句對(duì)作為訓(xùn)練集,450個(gè)平行句對(duì)作為開(kāi)發(fā)集;為隨機(jī)基線模型在不考慮等級(jí)、 母語(yǔ)的條件下隨機(jī)抽取3 600個(gè)平行句對(duì)作為訓(xùn)練集,450個(gè)平行句對(duì)作為開(kāi)發(fā)集。
實(shí)驗(yàn)結(jié)果如表5所示,我們的方法在韓語(yǔ)-N上比隨機(jī)基線模型提升了3.62個(gè)百分點(diǎn),比韓語(yǔ)提升了1.57個(gè)百分點(diǎn),超越了其他母語(yǔ)-等級(jí),是母語(yǔ)-等級(jí)與隨機(jī)、母語(yǔ)相比提升效果最明顯的組合;在日語(yǔ)-N上比等級(jí)N提升了3.60個(gè)百分點(diǎn),是母語(yǔ)-等級(jí)與等級(jí)相比提升效果最明顯的組合。從整體結(jié)果來(lái)看,適應(yīng)到母語(yǔ)-等級(jí)的模型比隨機(jī)基線模型高出1.76個(gè)百分點(diǎn),比適應(yīng)到等級(jí)的模型高出1.46個(gè)百分點(diǎn),比適應(yīng)到母語(yǔ)的模型高出0.93個(gè)百分點(diǎn)。
表5 不同母語(yǔ)-等級(jí)上的結(jié)果
從表3可知,相比隨機(jī)基線模型,領(lǐng)域適應(yīng)的模型性能在等級(jí)A上的提升最明顯。因此本文針對(duì)等級(jí)A的糾錯(cuò)樣例進(jìn)行分析,從而直觀地反映將一般的語(yǔ)法糾錯(cuò)模型適應(yīng)到相應(yīng)領(lǐng)域后糾錯(cuò)能力的表現(xiàn)。如表6所示,給出了各個(gè)模型對(duì)一個(gè)有語(yǔ)法錯(cuò)誤句子的修改結(jié)果,其中加粗部分表示修改內(nèi)容。從表6觀察發(fā)現(xiàn),相比隨機(jī)基線模型,領(lǐng)域適應(yīng)的模型的修改更符合漢語(yǔ)用語(yǔ)習(xí)慣。
表6 不同模型的糾錯(cuò)結(jié)果
因此,將語(yǔ)法糾錯(cuò)模型適應(yīng)到漢語(yǔ)學(xué)習(xí)者的特征領(lǐng)域以后,模型糾錯(cuò)的結(jié)果更接近漢語(yǔ)的習(xí)慣表達(dá)。
傳統(tǒng)的語(yǔ)法糾錯(cuò)方法可以分為兩類: ①基于規(guī)則的方法[13],這些方法只關(guān)注文本中的幾種錯(cuò)誤類型;②基于統(tǒng)計(jì)機(jī)器翻譯的方法[14],這些方法將語(yǔ)法糾錯(cuò)任務(wù)視為翻譯任務(wù),并使用統(tǒng)計(jì)機(jī)器翻譯方法進(jìn)行糾錯(cuò),極大地提升了語(yǔ)法糾錯(cuò)系統(tǒng)的性能。
隨著深度學(xué)習(xí)的發(fā)展,許多序列到序列的方法被成功地應(yīng)用到語(yǔ)法糾錯(cuò)中,這些方法將語(yǔ)法糾錯(cuò)視為一般的Seq2Seq任務(wù),即系統(tǒng)的輸入是一個(gè)序列,輸出也是一個(gè)序列。Yuan和Briscoe[15]第一次將神經(jīng)機(jī)器翻譯模型應(yīng)用到語(yǔ)法糾錯(cuò)任務(wù)中,他們使用雙向的遞歸神經(jīng)網(wǎng)絡(luò)編碼器和一個(gè)基于注意力的解碼器對(duì)錯(cuò)誤進(jìn)行糾錯(cuò),性能超越了基于統(tǒng)計(jì)機(jī)器翻譯的糾錯(cuò)模型。Ji等人[16]使用嵌套注意力神經(jīng)混合模型糾錯(cuò),該模型通過(guò)合并單詞和字符級(jí)別的信息來(lái)糾正兩種類型的錯(cuò)誤。Chollampatt和Ng[2]使用一個(gè)多層卷積編碼器-解碼器神經(jīng)網(wǎng)絡(luò)模型進(jìn)行糾錯(cuò),并結(jié)合語(yǔ)言模型對(duì)糾錯(cuò)的結(jié)果進(jìn)行重排序。Junczys-Dowmunt等人[3]將語(yǔ)法糾錯(cuò)視作低資源的機(jī)器翻譯任務(wù),并使用Transformer作為糾錯(cuò)模型。
針對(duì)英語(yǔ)的語(yǔ)法糾錯(cuò)方法層出不窮,并且取得了很好的效果。但漢語(yǔ)語(yǔ)法糾錯(cuò)方興未艾,自中國(guó)計(jì)算機(jī)協(xié)會(huì)舉辦的國(guó)際自然語(yǔ)言處理與中文計(jì)算會(huì)議(NLPCC)在2018年加入了漢語(yǔ)語(yǔ)法糾錯(cuò)評(píng)測(cè)任務(wù)后,出現(xiàn)了許多漢語(yǔ)語(yǔ)法糾錯(cuò)方法。Fu等人[6]采用簡(jiǎn)單到復(fù)雜的分階段糾錯(cuò)方法,使用語(yǔ)言模型糾正簡(jiǎn)單的錯(cuò)誤,字、詞級(jí)的Transformer模型糾正復(fù)雜的錯(cuò)誤。Zhou等人[7]使用多個(gè)模型糾錯(cuò),分別是基于規(guī)則、統(tǒng)計(jì)和神經(jīng)網(wǎng)絡(luò),通過(guò)模型組合的方式得到最終的糾錯(cuò)結(jié)果。Ren等人[5]使用基于卷積神經(jīng)網(wǎng)絡(luò)的Seq2Seq模型糾錯(cuò),還采用了subword算法[12]來(lái)縮小詞表和緩解未登錄詞的問(wèn)題。王辰成等人[9]提出了基于Transformer增強(qiáng)架構(gòu)的中文語(yǔ)法糾錯(cuò)模型,該模型使用動(dòng)態(tài)殘差結(jié)構(gòu)結(jié)合不同神經(jīng)模塊的輸出來(lái)增強(qiáng)模型捕獲語(yǔ)義信息的能力。Zhao和Wang[8]采用動(dòng)態(tài)掩碼的方式提高模型的糾錯(cuò)性能,在訓(xùn)練步驟中動(dòng)態(tài)地向原始的句子加入掩碼來(lái)增加更多的平行句對(duì)。 但以上這些漢語(yǔ)語(yǔ)法糾錯(cuò)方法均沒(méi)有對(duì)漢語(yǔ)學(xué)習(xí)者的個(gè)性化特征進(jìn)行建模。
周小兵等人[17]在對(duì)漢語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者的教學(xué)研究中發(fā)現(xiàn),母語(yǔ)遷移是造成二語(yǔ)學(xué)習(xí)者語(yǔ)法偏誤的一項(xiàng)主要原因。如有的漢語(yǔ)學(xué)習(xí)者會(huì)寫“*我見(jiàn)面我的老師?!边@樣的錯(cuò)句,因?yàn)榉ㄕZ(yǔ)、韓語(yǔ)、日語(yǔ)、越南語(yǔ)等語(yǔ)言中“見(jiàn)面”可以帶賓語(yǔ),但是漢語(yǔ)中“見(jiàn)面”后面是不可以帶賓語(yǔ)的。此外,Swan和Smith[18]對(duì)二語(yǔ)學(xué)習(xí)者的教學(xué)研究發(fā)現(xiàn),不同母語(yǔ)寫作者會(huì)犯不同類型的錯(cuò)誤,他們將其中的某些錯(cuò)誤歸因于語(yǔ)言之間的“轉(zhuǎn)移”或“干擾”,即母語(yǔ)的“負(fù)遷移”。因此,已有許多針對(duì)二語(yǔ)學(xué)習(xí)者的研究,如Rozovskaya和Roth[19]使用樸素貝葉斯對(duì)不同母語(yǔ)的英語(yǔ)學(xué)習(xí)者所犯的介詞錯(cuò)誤進(jìn)行糾錯(cuò);Mizumoto等人[20]發(fā)現(xiàn)當(dāng)訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)用相同的母語(yǔ)時(shí),語(yǔ)法糾錯(cuò)系統(tǒng)的表現(xiàn)會(huì)更好;Nadejde和Tetreault[4]針對(duì)英語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者提出了個(gè)性化語(yǔ)法糾錯(cuò),發(fā)現(xiàn)將語(yǔ)法糾錯(cuò)模型適應(yīng)到學(xué)習(xí)者的不同特征時(shí)表現(xiàn)會(huì)更好。
本文針對(duì)漢語(yǔ)作為第二語(yǔ)言的學(xué)習(xí)者,首次提出了個(gè)性化語(yǔ)法糾錯(cuò),并將語(yǔ)法糾錯(cuò)任務(wù)視為翻譯任務(wù),使用基于Transformer增強(qiáng)架構(gòu)的中文語(yǔ)法糾錯(cuò)模型對(duì)錯(cuò)誤進(jìn)行糾正。為了驗(yàn)證提出的方法的合理性,構(gòu)建了不同領(lǐng)域的數(shù)據(jù)集,并使用遷移學(xué)習(xí)方法將語(yǔ)法糾錯(cuò)模型適應(yīng)到學(xué)習(xí)者不同的領(lǐng)域,實(shí)現(xiàn)個(gè)性化語(yǔ)法糾錯(cuò),各個(gè)領(lǐng)域測(cè)試集上的平均結(jié)果都超越了未做領(lǐng)域適應(yīng)的基線模型,表明語(yǔ)法糾錯(cuò)系統(tǒng)在對(duì)學(xué)習(xí)者的特征建模以后可以有效地改進(jìn)糾錯(cuò)的效果。