李嘉誠,沈嘉鈺,龔 晨,李正華,張 民
(蘇州大學 計算機科學與技術學院,江蘇 蘇州 215006)
中文文本糾錯任務可分為兩類: 拼寫糾錯和語法糾錯。對于拼寫糾錯,錯誤句子只存在替換類錯誤;而對于語法糾錯,除了替換類錯誤,錯誤句子還存在冗余、缺失以及亂序等錯誤類型。本文聚焦于中文語法糾錯(Chinese Grammatical Error Correction,CGEC)任務,該任務旨在通過自然語言處理技術,自動糾正包含語法錯誤的中文句子。中文語法糾錯任務的示例如表1所示,其中,X是一個可能包含語法錯誤的句子,Y是糾正錯誤后的句子。
表1 中文語法糾錯任務的示例
不像之前的很多研究[1-2]把語法糾錯看作自回歸的翻譯任務,本文以Seq2Eidt語法糾錯模型[3-4]為基準模型,該模型把語法糾錯看作非自回歸的序列標注任務,從而大幅提升了解碼速度。Seq2Edit語法糾錯模型以BERT[5]為上下文特征提取器,糾錯過程如表1所示。首先,它為輸入句子X預測一組字級別的編輯序列Z;進而把編輯序列Z作用于輸入句子得到目標句子Y。在訓練前,該模型需要把訓練集中平行句對的正確句子預處理成一組與錯誤句子對應的編輯序列。
如表2所示,本文列出了不同錯誤類型在NLPCC 2018 GEC任務測試集中的數(shù)量[6],可以看出替換類錯誤在所有錯誤類型中的占比最多,大約占了50%。同時,Liu等[7]的工作表明,中文中超過90%的替換類錯誤由音近或形近字之間的誤用導致。因此,字符之間的音近、形近知識對解決替換類錯誤非常重要。
表2 不同錯誤類型在NLPCC 2018 GEC任務測試集中的數(shù)量
在中文拼寫糾錯研究中,很多研究者嘗試以混淆集(Confusion set)的形式,將字符之間的音近、形近知識融入到模型中[8-9],取得了不錯的效果?;煜梢恍h字以及每個漢字對應的一組音近和形近字組成。例如,“乞”對應的音近字混淆集為“起杞啟豈稽……”;“乞”對應的形近字混淆集為“疙吃屹迄乙……”。而對于中文語法糾錯,雖然替換類錯誤在中文語法糾錯數(shù)據(jù)集中占比最多,但還沒有研究者嘗試過將混淆集知識融入基于神經網(wǎng)絡的語法糾錯模型中。
為了更好地解決語法糾錯中的替換類錯誤,本文嘗試在模型和預處理兩部分融入混淆集知識。在模型部分,本文提出一個基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型。該模型在Seq2Eidt語法糾錯模型基礎上,利用指針網(wǎng)絡[10]融入漢字之間的音近和形近知識。具體來說,模型分別計算兩部分的概率分布,第一部分是Seq2Edit語法糾錯模型輸出當前字符在固定的編輯操作表中生成編輯的概率分布,第二部分是通過指針網(wǎng)絡去計算當前字符替換為它對應混淆集中字符的替換編輯的概率分布,然后通過一個可學習的門控機制加權求和兩部分的概率分布得到最終的概率分布。通過這種方法,模型可以充分考慮符號空間(混淆集中音近和形近知識)和語義空間(BERT的語義知識),從而更好地糾正替換類錯誤。
在預處理部分,即從錯誤-正確句對抽取編輯序列的過程中,本文發(fā)現(xiàn)普通的編輯距離算法不能很好地對齊中文語法糾錯數(shù)據(jù)集中平行句對出現(xiàn)連續(xù)錯誤時的音近和形近字。因此,本文也提出了一種混淆集的編輯距離算法。利用該算法在預處理階段抽取編輯,可以使得模型在訓練過程中增加更多音近和形近字的替換類編輯,從而更好地糾正替換類錯誤。
實驗結果表明,本文的基準Seq2Edit語法糾錯模型已經在NLPCC 2018評測數(shù)據(jù)集上達到了目前最優(yōu)性能。而本文提出的兩點改進均能在此基礎上提高性能,且作用互補。最終,本文所提出的模型在NLPCC 2018評測數(shù)據(jù)集上的F0.5值比之前的最優(yōu)性能提高了2.1。本文用中文ERRANT[11]工具對提出的模型和基準模型不同錯誤類型的得分進行了分析,證明了本文模型的性能提升大部分來自于替換類錯誤的糾正。
本文主要的貢獻總結如下:
(1) 本文提出一個基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型,該模型可以有效融入音近、形近信息,更好地解決語法糾錯中的替換類錯誤。據(jù)我們所知,這是首次將混淆集知識融入基于神經網(wǎng)絡的語法糾錯模型中的工作。
(2) 本文提出一種混淆集指導的編輯距離算法,該算法可以融入音近、形近知識去更好地對齊訓練集中音近、形近字的替換類編輯,從而幫助模型更好地糾正替換類錯誤。
(3) 實驗結果表明,本文提出的模型在NLPCC 2018評測數(shù)據(jù)集上達到目前最優(yōu)性能。實驗分析表明,和基準Seq2Edit語法糾錯模型相比,本文模型的性能提升大部分來自于替換類錯誤的糾正。
2018年,CCF國際自然語言處理與中文計算會議(NLPCC)舉辦了中文語法糾錯競賽[12]。該競賽發(fā)布了一個中文語法糾錯任務的標準數(shù)據(jù)集。下面介紹研究者們在該數(shù)據(jù)集上的最新工作,王等[1]采用基于多頭注意力機制的Transformer模型作為基準模型,提出一種動態(tài)殘差結構來增強Transformer挖掘文本語義信息的能力,從而更好地糾正中文語法錯誤。Zhao和Wang[2]在訓練過程中采用動態(tài)的詞頻、同音等替換策略作用于錯誤句子,從而得到更多的錯誤-正確句對來提高模型的泛化能力,該方法在NLPCC 2018評測數(shù)據(jù)集上達到了目前的最優(yōu)性能。Hinson等[13]結合了三個模型循環(huán)糾正包含語法錯誤的句子,三個模型分別為: 基于Transformer的Seq2Seq模型,基于LaserTagger[14]的Seq2Edit模型和拼寫糾正模型。同時,他們還開發(fā)出中文的ERRANT[11]工具,該工具可以給出模型在不同錯誤類型的得分。在后續(xù)的實驗部分,把本文提出的模型與上述工作進行了性能上的對比。
在中文語法糾錯研究中,語法糾錯模型主要分為兩種,序列到序列(Seq2Seq)模型和序列到編輯(Seq2Edit)模型。由于Seq2Seq模型存在解碼速度慢、需要大量的訓練數(shù)據(jù)等問題,本文采用Seq2Edit模型來完成中文語法糾錯任務。最近,研究者們嘗試引入英文中的Seq2Edit模型到中文語法糾錯任務中。例如,Hinson等[13]將英文中的Seq2Edit模型LaserTagger[14]引入中文,該模型結合BERT編碼器與一個自回歸的Transformer解碼器來預測編輯。Liang等[4]在中文語法錯誤診斷(Chinese Grammatical Error Diagnosis, CGED)[15]競賽中首次將英文中的Seq2Edit模型GECToR[3]引入到中文。該模型結合BERT編碼器與非自回歸的線性變化層去預測編輯。因為GECToR模型簡單并且效果好,本文采用它作為本文的基準模型。
在中文拼寫糾錯研究中,為了解決音近和形近字的誤用,很多研究者嘗試去融入混淆集知識到模型中。Wang等[8]提出一個帶有指針網(wǎng)絡的Seq2Seq模型來解決拼寫糾錯問題,該模型要么通過指針網(wǎng)絡從輸入句子中復制一個字,要么從當前字符對應的混淆集中選擇一個字,這種方法是利用混淆集去限制解碼空間。Cheng等[9]提出了SpellGCN模型,利用圖卷積神經網(wǎng)絡(GCN)去注入字符之間的音近和形近知識到語言模型(BERT)中進行拼寫糾錯任務。
在語法糾錯研究中,研究者們也探索了將混淆集融入基于統(tǒng)計機器學習的語法糾錯模型的方法。在基于語言模型的語法糾錯模型中,Bryant和Briscoe[16]在生成候選答案時,針對時態(tài)、冠詞、介詞等錯誤,使用混淆集來生成候選答案。再用統(tǒng)計語言模型來評估糾正是否合理。在基于分類的語法糾錯模型[17]中,給定一個存在語法錯誤的句子,對于句子中每一個存在于混淆集中的詞,分類器根據(jù)當前位置的上下文特征,選擇在混淆集中且概率最大的候選單詞。以上將混淆集融入語法糾錯模型的方法,都只針對特定的錯誤類型,并且采用的都是基于統(tǒng)計機器學習的模型。
目前還沒有研究者嘗試過融入混淆集知識到基于神經網(wǎng)絡的語法糾錯模型中來解決語法糾錯數(shù)據(jù)集中占比最多的替換類錯誤。因此,本文提出一個基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型。該模型在Seq2Eidt語法糾錯模型基礎上,利用指針網(wǎng)絡融入漢字之間的音近和形近知識。
指針網(wǎng)絡[10]被廣泛應用在采用Seq2Seq模型的文本摘要任務[18]中。因為語法糾錯任務中大部分的字符都是正確的,Zhao等[19]首次將指針網(wǎng)絡應用到基于Seq2Seq的語法糾錯中,使得模型可以直接從輸入的句子中復制正確的字到輸出,取得了不錯的效果。本文將指針網(wǎng)絡引入到Seq2Edit語法糾錯模型中,利用指針網(wǎng)絡從當前字符的混淆集中選擇字來進行替換,使得模型可以更好地糾正替換類錯誤。
中文語法糾錯的目的是糾正中文句子中存在的語法錯誤。給定一個可能包含語法錯誤的中文句子X=(x1,x2,…,xm),xi指句子X的第i個字,語法糾錯模型輸出一個句子Y=(y1,y2,…,yn),yi指句子Y中的第i個字。X和Y的長度可以相等,也可以不相等。本文采用非自回歸的Seq2Edit語法糾錯模型來解決中文語法糾錯問題。
在Seq2Edit語法糾錯模型中,輸入句子X=(x1,x2,…,xm),模型輸出一組與X對應的編輯Z=(z1,z2,…,zm),zi∈Φ,是xi對應的編輯。Φ是編輯操作表,所有編輯操作表的統(tǒng)計信息如表3所示。
表3 Seq2Edit語法糾錯模型編輯操作表
該模型采用BERT作為上下文特征提取器,輸入是可能包含語法錯誤的句子X=(x1,x2,…,xm),用BERT編碼句子X后,把BERT最后一層的輸出作為整個句子上下文相關的字表示向量H={h1,h2,…,hm},再把xi對應的字表示向量hi經過一個線性變換層和softmax操作去預測當前第i個字的編輯為z的概率p(z|X,i),如式(1)、式(2)所示。
其中,hi∈db。Ws∈db×|Φ|,bs∈|Φ|分別是線性變化層的權重矩陣和偏置向量。si,z是第i個字的編輯預測為z的得分。Φ是所有可能的編輯操作集合,z′是Φ中的編輯。db是BERT的隱藏層維度。如式(3)所示,損失函數(shù)選擇交叉熵,是正確編輯序列中的第i個編輯。
(3)
如圖1所示,該模型解碼時采用迭代式糾正[20]: 把模型預測的編輯序列Z作用于輸入句子X得到輸出句子Y,再把Y當作輸入重新送入模型,重復這個過程直到達到最大迭代次數(shù)或者模型輸出的句子與輸入句子一致時。
圖1 基準Seq2Edit語法糾錯模型
混淆集由一些漢字以及每個漢字對應的一組音近和形近字組成。本文定義C(xi)是xi對應的一組混淆集字符。
指針網(wǎng)絡被廣泛應用在采用Seq2Seq模型的文本摘要任務和語法糾錯任務中。因為其能從可變長度的候選集合中去選擇一個候選項,本文通過指針網(wǎng)絡去計算當前字符替換為它對應混淆集中字符的替換編輯的概率分布。
如圖2所示,基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型在基準Seq2Eidt語法糾錯模型基礎上,利用指針網(wǎng)絡融入漢字之間的音近和形近知識。該模型除了從固定的編輯操作表中生成編輯外,還允許指針網(wǎng)絡從當前字符的混淆集中選擇字進行替換。如式(4)所示,最終編輯的概率分布p(z|X,i)是生成編輯的概率分布pgen(z|X,i) 和當前字符替換為它對應混淆集中字符的替換編輯的概率分布pcon(z|X,i)的加權求和,平衡因子αi∈[0,1]由一個可學習的門控機制來得到。
(4)
從固定編輯操作表中生成編輯的概率分布pgen(z|X,i)的計算公式和2.2節(jié)基準Seq2Edit語法糾錯模型相同。本文通過指針網(wǎng)絡來計算當前字符替換為它對應混淆集中的字符的替換編輯的概率分布pcon(z|X,i)。首先,如式(5)所示,將C(xi)中的字符通過字嵌入層得到向量表示Ei,Ei中的每一行是C(xi)中一個字符的字向量表示。其次,通過式(6)~式(8)來計算pcon(z|X,i)。
圖2 基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型
其中,hi∈db,是BERT編碼X得到的第i個字的上下文相關的字表示向量。Ei∈dl×dc,是第i個字的混淆集中字符的字向量表示。dl是當前字符對應混淆集中字符C(xi)的個數(shù),dc是字嵌入層的維度。qi是hi經過線性變化層得到的查詢向量(Query),Ki和Vi是Ei經過不同的線性變化層得到的鍵值向量(Key)和實值向量(Value)。qi和Ki點乘得到注意力分值si∈dl,再通過一個Softmax操作得到歸一化后的概率pcon(z|X,i),這里的z∈Φc(xi),Φc(xi)是將字符xi替換為xi的混淆集C(xi)中的字符的替換編輯集合,z′是Φc(xi)中的編輯。Wq∈db×dc,Wk、Wv∈dc×dc是線性變化層的權重矩陣。平衡因子αi的計算如式(9)所示。
αi=sigmoid(softmax(si)Viwα+bα)
(9)
其中,wα∈dc,bα∈1分別是線性變化層的權重矩陣和偏置向量。損失函數(shù)選擇交叉熵,其公式與式(3)相同,不過式(3)中的概率需要替換為式(4)得到的最終編輯概率。
本文使用訓練集中的一個真實例子來描述混淆集指導的編輯距離算法抽取的編輯與普通的編輯距離算法抽取的編輯的差異,如表4所示。
例1X: 每天漫漫得進步。
Y: 每天都在慢慢地進步。
表4展示了兩者抽取編輯的不同,其中如果一個字對應多個編輯操作,則用“&”連接。對照X和Y,可以看出X存在兩個語法錯誤,一個是缺失類錯誤,缺少了“都在”,一個是音近導致的替換類錯誤,“漫漫得”應該被替換為“慢慢地”。自然而然我們希望編輯距離算法抽取的編輯可以很好地對齊兩類錯誤。然而如表4上半部分所示,普通的編輯距離算法從X和Y抽取的編輯并沒有得到理想的對齊效果,究其原因,這是由于普通的對齊算法把“漫”和“慢”看作是兩個完全不一樣的字,導致“漫”和“都”與“漫”和“慢”在編輯距離算法中替換操作的代價一樣。
表4 不同編輯距離算法抽取編輯的差異
本文利用混淆集知識來指導編輯距離算法的抽取編輯過程,本文把混淆集中音近和形近字之間的替換操作代價設為0.5。(在普通的編輯距離算法中,兩個一樣的字的替換操作代價為0,而兩個不一樣的字的替換操作代價為1)。在混淆集指導的編輯距離算法下,表4上半部分的對齊方式X和Y的編輯距離為5,而表4下半部分的對齊方式X和Y的編輯距離為3.5,因此,混淆集指導的編輯距離算法選擇了下面更好的對齊方式。下面詳細描述抽取編輯的過程。
Step1: 首先,本文使用混淆集指導的編輯距離算法來對齊源句子與目標句子,為源句子的每個字找到目標句子中的一個子序列與其對應。[每→每],[天→天],[漫→都,在,慢],[漫→慢],[得→地],[進→進],[步→步]。
Step2: 從源句子中的每個字對應目標句子的子序列中得到編輯。如果一個字對應目標句子的子序列有多個字,那么也會考慮源句子中的字與目標句子的子序列每個字的編輯距離。[每→每]: KEEP,[天→天]: KEEP、A_都、A_在,[漫→都,在,慢]: R_慢,[漫→ 慢]: R_慢,[得→地]: R_地,[進→進]: KEEP,[步→步]: KEEP。
Step3: 在訓練時,本文為源句子中的每個字只留下一個編輯,有多個編輯的,本文只留第一個非KEEP類的編輯,這樣本文得到每個字對應的唯一的編輯操作。每: KEEP,天: A_都,漫: R_慢,漫: R_慢,得: R_地,進: KEEP,步: KEEP。
所有數(shù)據(jù)的統(tǒng)計信息如表5所示。
表5 數(shù)據(jù)集統(tǒng)計信息
3.1.1 訓練集
本文使用的訓練集包括NLPCC 2018 GEC任務官方提供的Lang-8數(shù)據(jù)集以及HSK數(shù)據(jù)集,其中Lang-8數(shù)據(jù)集采集自Lang-8網(wǎng)站。Lang-8網(wǎng)站是一個多語言學習者平臺,不同國家的學習者在該平臺練習寫作,然后由母語者對他們的寫作進行修改。因為一個句子可以由多個人修改,所以錯誤句子可能對應多個糾正答案。HSK數(shù)據(jù)集收集自北京語言大學構建的動態(tài)作文語料庫[21]。兩個數(shù)據(jù)集的平行語料共有1 377 776對,本文去除數(shù)據(jù)集中錯誤和正確句子一樣的句對,剩余數(shù)據(jù)集包含1 186 934對。其中包括Lang-8數(shù)據(jù)1 095 835對,HSK數(shù)據(jù)91 099對。本文從剩余語料中隨機選擇百分之一的數(shù)據(jù)共11 869對作為開發(fā)集,其余的數(shù)據(jù)共1 175 065對作為本文的訓練集。
3.1.2 測試集
本文選用NLPCC 2018 GEC任務的評測數(shù)據(jù)集來評測本文的模型,該數(shù)據(jù)集收集自PKU中文學習者語料庫。兩個標注者遵循最小編輯距離的修改原則對其進行了標注,官方數(shù)據(jù)集包含錯誤句子和M2格式的官方參考(Gold)編輯。
3.1.3 混淆集
本文采用SIGHAN 2013年比賽[22]提供的混淆集。主要有兩類: 音近字混淆集和形近字混淆集。本文將兩類混淆集合并、去重后作為一個混淆集來使用。
本文使用官方的MaxMatch[23]工具包去評測不同模型的性能,給出精確率、召回率和F0.5指標。
本文使用中文預訓練模型BERT-wwm-ext[24]來初始化本文的編碼器,使用Adam優(yōu)化器來訓練模型,共訓練12個輪次,并應用早停機制,當開發(fā)集的編輯預測精確率兩輪沒有提升就結束訓練。在前兩輪,本文設置學習率為1e-3,并凍結BERT的參數(shù),只訓練其余模塊的參數(shù)。在后面的輪次,本文設置學習率為1e-5,訓練整個模型的參數(shù)。Batch size設置為128。對于所有的實驗,本文都更換隨機數(shù)種子進行了4次實驗,并匯報平均結果。本文從訓練集中統(tǒng)計出現(xiàn)頻率大于10次的編輯作為編輯操作表,共包含5 498個編輯。在預測時,默認的迭代次數(shù)為5。
對于基于指針網(wǎng)絡融入混淆集的語法糾錯模型,本文使用隨機初始化參數(shù)的200維字嵌入層作為混淆集中字符的字向量表示,并在訓練過程進行更新。其他訓練細節(jié)和基準Seq2Edit模型一致。
MaskGEC[2]: 該方法在訓練過程中采用動態(tài)的詞頻、同音等替換策略作用于錯誤的句子上,從而得到更多的錯誤-正確句對來訓練模型。
異構循環(huán)預測模型[13]: 該方法使用基于Transformer的Seq2Seq模型,基于LaserTagger[14]的Seq2Edit模型和拼寫糾正模型循環(huán)糾正錯誤句子。
Transformer增強架構[1]: 該方法通過動態(tài)殘差結構來增強Transformer挖掘文本語義信息的能力。
Seq2Edit模型[3]: 該方法采用非自回歸的Seq2Edit模型GECToR[3]來解決中文語法糾錯任務。
表6展示了本文提出的模型與其他先進的模型在NLPCC 2018評測數(shù)據(jù)集上的得分。與其他模型相比,本文的基準Seq2Edit模型已經優(yōu)于上述所有工作,達到了目前的最優(yōu)性能。而本文的應用了混淆集指導的編輯距離算法和基于指針網(wǎng)絡融入混淆集知識的模型的F0.5值比基準Seq2Edit模型又高了0.73。MaskGEC[2]利用了Lang-8訓練集,但在訓練過程中動態(tài)地采用詞頻、同音等替換策略應用到錯誤的句子上產生新的錯誤-正確句對來訓練模型,可以看作一種數(shù)據(jù)增強的手段。異構循環(huán)預測模型[13]利用了Lang-8訓練集,采用了基于Transformer的Seq2Seq模型,基于LaserTagger[14]的Seq2Edit模型和拼寫糾正模型來循環(huán)糾正錯誤句子。Transformer增強架構[1]通過動態(tài)殘差結構來增強Transformer挖掘文本語義信息的能力,它們除了使用Lang-8和HSK的數(shù)據(jù),還使用了742萬人造數(shù)據(jù),F(xiàn)0.5值達到了34.41,而本文沒有使用任何的人造數(shù)據(jù),性能就優(yōu)于它們。
表6 不同糾錯模型在NLPCC 2018 評測數(shù)據(jù)集上的結果比較
我們做了四組實驗來驗證本文方法的有效性。表7展示了不同改進在NLPCC 2018評測數(shù)據(jù)集上的結果??梢钥闯龌鶞蔛eq2Edit模型的F0.5值已經達到了38.33,而本文提出的兩種改進在此基礎上又有了一定的提升。
第1組和第2組實驗比較預處理階段采用普通的編輯距離算法和混淆集指導的編輯距離算法抽取編輯對性能的影響。使用不同的編輯距離算法抽取編輯,訓練集中有39 003個句子抽取的編輯發(fā)生了改變,開發(fā)集中有400個句子抽取的編輯發(fā)生了改變,大約占總數(shù)據(jù)的3.6%。如表7所示,相比采用普通的編輯距離算法抽取編輯的基準Seq2Edit模型,本文使用混淆集指導的編輯距離算法預處理數(shù)據(jù)集后,基準Seq2Edit模型的F0.5值有0.21的提升。
表7 不同改進對模型性能的影響
第1組和第3組實驗比較基準Seq2Edit模型和基于指針網(wǎng)絡融入混淆集知識的模型對性能的影響。由表7可以看出,基于指針網(wǎng)絡融入混淆集知識的模型比基準Seq2Edit模型的F0.5值提高了0.44。
最后,第4組實驗在預處理階段采用混淆集指導的編輯距離算法抽取編輯,模型采用基于指針網(wǎng)絡融入混淆集知識的模型。其F0.5值達到了39.06,比基準Seq2Edit模型提高了0.73?;煜笇У木庉嬀嚯x算法更好地對齊了音近和形近字的替換類編輯,使得基于指針網(wǎng)絡融入混淆集知識的模型得到了更充分的訓練,從而超過了兩者單獨相加提高的性能。
為了證明本文提出的模型可以比基準Seq2Edit模型更好地解決語法糾錯任務中的替換類錯誤。本文采用Hinson等[13]開發(fā)的中文ERRANT工具對本文提出的模型和基準Seq2Edit模型不同錯誤類型的糾錯能力進行了分析。圖3展示了本文的模型和基準Seq2Edit模型在不同錯誤類型的TP和FP值,其中TP表示模型預測正確的編輯數(shù)量,F(xiàn)P表示模型預測錯誤的編輯數(shù)量。從圖3(a)可以看出,整體來看,本文的模型比基準Seq2Edit模型多了32個預測正確的編輯。具體到替換類錯誤,本文的模型比基準Seq2Edit模型多了26個預測正確的編輯,占了整體的81.25%。從圖3(b)可以看出,整體來看,本文的模型比基準Seq2Edit模型少了62個預測錯誤的編輯。具體到替換類錯誤,本文的模型比基準Seq2Edit模型少了29個預測錯誤的編輯,占了整體的46.77%。因此,本文模型的性能提升大部分都來自于替換類錯誤的糾正。
圖3 本文的模型與基準Seq2Edit模型在不同錯誤類型的TP和FP值
為了更好地解決語法糾錯中占比最多的替換類錯誤,本文嘗試在模型和預處理兩部分融入混淆集知識。在模型部分,本文提出了基于指針網(wǎng)絡融入混淆集知識的語法糾錯模型。在預處理部分,本文提出了混淆集指導的編輯距離算法來更好地抽取音近和形近字的替換類編輯。實驗證明,本文的模型在NLPCC 2018評測數(shù)據(jù)集上達到了目前最優(yōu)性能。進一步的分析證明了本文的性能提升主要來自于替換類錯誤的糾正。在未來,本文計劃將基于指針網(wǎng)絡融入混淆集知識的模型遷移到拼寫糾錯任務。