陳柏霖,王天極,任麗娜,3,黃瑞章
(1.貴州大學(xué) 公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴陽 550025;2.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550025;3.貴州輕工職業(yè)技術(shù)學(xué)院,貴陽 550025)
隨著互聯(lián)網(wǎng)的普及,中文電子文本的數(shù)量呈爆炸式增長趨勢。文本質(zhì)量參差不齊,語法錯(cuò)誤會(huì)嚴(yán)重影響人們的閱讀效率。在中文輔助寫作中,一個(gè)完善的中文語法錯(cuò)誤檢測工具可以幫助學(xué)習(xí)者快速定位錯(cuò)誤點(diǎn)和錯(cuò)誤類型并對文章進(jìn)行修改,從而提高寫作效率。此外,借助中文語法錯(cuò)誤檢測工具可以讓審校人員節(jié)省大量時(shí)間,提高出版業(yè)校對過程中的工作效率。然而,面對海量的中文文本,如何快速高效地自動(dòng)檢測中文語法錯(cuò)誤成為一個(gè)亟需解決的問題。
中文語法錯(cuò)誤檢測(Chinese Grammar Error Detection,CGED)的目標(biāo)是自動(dòng)檢測文本中存在的錯(cuò)別字、語法和語序錯(cuò)誤等。對于給定的文本,CGED 的檢測對象包括是否有語法錯(cuò)誤、錯(cuò)誤的類型以及錯(cuò)誤的發(fā)生位置。傳統(tǒng)的語法錯(cuò)誤檢測研究主要集中于英文,大多從全局語義出發(fā),采用機(jī)器翻譯等生成式方法對語法錯(cuò)誤進(jìn)行檢測和糾正。與英文相比,中文不存在顯著詞邊界,也沒有時(shí)態(tài)、單數(shù)、復(fù)數(shù)等識別元素,語法復(fù)雜度高且蘊(yùn)含的語義信息豐富,因此,中文語法錯(cuò)誤檢測更加依賴于文本局部信息,如短語在句子中的語義和位置等。目前,許多研究人員參考了英文語法糾錯(cuò)方法,使用生成式方法直接進(jìn)行改錯(cuò),跳過了錯(cuò)誤檢測環(huán)節(jié),只有少量研究采用序列標(biāo)注方法進(jìn)行中文語法錯(cuò)誤檢測。然而,生成式方法往往從全局語義出發(fā),忽略了中文文本局部信息對語法檢錯(cuò)的作用,并存在所需數(shù)據(jù)量大、難以訓(xùn)練、可靠性差等問題,使其不能很好地適用于中文語法錯(cuò)誤檢測任務(wù)。因此,如何在數(shù)據(jù)有限的情況下充分利用文本局部信息提高中文語法錯(cuò)誤檢測的效果,是該領(lǐng)域的一個(gè)重點(diǎn)研究方向。
本文提出應(yīng)用于中文語法錯(cuò)誤檢測任務(wù)的ELECTRA-GCNN-CRF 模型。不同于生成式方法,本文將語法檢錯(cuò)任務(wù)視為序列標(biāo)注問題,使得所需數(shù)據(jù)量和訓(xùn)練難度降低。在ELECTRA 預(yù)訓(xùn)練語言模型的基礎(chǔ)上,通過門控卷積網(wǎng)絡(luò)捕捉文本局部信息,緩解錯(cuò)誤語義傳播問題,并加入殘差機(jī)制避免梯度消失現(xiàn)象,最后通過條件隨機(jī)場(Conditional Random Field,CRF)層解碼獲取每個(gè)字符的語法錯(cuò)誤標(biāo)簽。
語法錯(cuò)誤檢測研究可以追溯到20 世紀(jì)80 年代,早期大都基于經(jīng)驗(yàn)和規(guī)則來檢查和糾正語法錯(cuò)誤。為了識別和處理更復(fù)雜的語法錯(cuò)誤,基于機(jī)器翻譯的方法被用于語法錯(cuò)誤檢測中[1-3],該類方法將文本糾錯(cuò)視為從錯(cuò)誤句子到正確句子的“翻譯”問題。在英文文本糾錯(cuò)中,F(xiàn)U 等[4]將簡單的拼寫錯(cuò)誤通過規(guī)則進(jìn)行改正,對于改正后的文本,利用Transformer 模型對較復(fù)雜的語法錯(cuò)誤進(jìn)行修改。ZHAO 等[5]將復(fù)制機(jī)制集成到機(jī)器翻譯模型中,利用輸入句和生成句之間存在大量重疊單詞的特點(diǎn),將簡單的詞復(fù)制任務(wù)交給復(fù)制機(jī)制,使用注意力機(jī)制學(xué)習(xí)難度較大的新詞生成任務(wù)。在中文領(lǐng)域,機(jī)器翻譯方法大多只研究針對錯(cuò)別字的糾錯(cuò),也被稱為中文拼寫檢查(Chinese Spelling Check)。現(xiàn)有方法主要從以下3 個(gè)方面進(jìn)行研究:
1)使用不同方法對漢字音形混淆集進(jìn)行建模[6-7],學(xué)習(xí)錯(cuò)誤字和正確字之間的映射關(guān)系。
2)將漢字的音形特征通過特征嵌入的方式注入模型底層[8-10],使得模型能夠動(dòng)態(tài)學(xué)習(xí)每個(gè)字的特征。
3)使用不同策略對模型產(chǎn)生的候選字進(jìn)行后處理[11-13],從而提升輸出精度。
由于中文語法錯(cuò)誤檢測起步較晚,缺乏高質(zhì)量的大規(guī)模訓(xùn)練語料,使得機(jī)器翻譯方法在包含多種語法錯(cuò)誤的文本中檢測效果不佳。部分研究使用數(shù)據(jù)增強(qiáng)方法[14-15],通過人工構(gòu)造中文語法錯(cuò)誤數(shù)據(jù)來對現(xiàn)有數(shù)據(jù)集進(jìn)行擴(kuò)充。然而,現(xiàn)有方法模擬出的偽數(shù)據(jù)的語法錯(cuò)誤分布往往與真實(shí)分布并不十分一致,不能對模型起到很好的訓(xùn)練作用。因此,有研究人員將中文文本糾錯(cuò)分解為先檢錯(cuò)后糾錯(cuò)的二階段任務(wù),并將中文語法錯(cuò)誤檢測視為序列標(biāo)注任務(wù)。目前,中文語法錯(cuò)誤檢測相關(guān)研究大都集中在NLPTEA 的CGED 評測任務(wù)中。FU 等[16]在BiLSTM+CRF 序列標(biāo)注模型上添加分詞、高斯ePMI、PMI 得分等先驗(yàn)知識,并通過不同的初始化策略訓(xùn)練多個(gè)BiLSTM 模型,對其加權(quán)融合后通過CRF 層輸出最終結(jié)果。2020 年,在NLPTEA 的CGED 評測任務(wù)[17]中,WANG 等[18]在Transformer 語言模型的基礎(chǔ)上融入殘差網(wǎng)絡(luò),增強(qiáng)輸出層中每個(gè)輸入字的信息,使得模型可以更好地檢測語法錯(cuò)誤位置。CAO 等[19]在BERT 模型的基礎(chǔ)上加入一種集成基于分?jǐn)?shù)的特征的門控機(jī)制,融合了語義特征、輸入序列的位置特征和基于評分的特征。LUO 等[20]使用基于BERT 模型和圖卷積網(wǎng)絡(luò)的方法提高基線模型對句法依賴的理解,并在多任務(wù)學(xué)習(xí)框架下結(jié)合序列標(biāo)注和端到端模型來提高原始序列標(biāo)注任務(wù)的效果。
綜上,現(xiàn)有的中文語法錯(cuò)誤檢測方法通常從全局語義出發(fā),使用生成式方法直接生成正確語句或是在模型中添加人工句法特征,均未有效利用文本局部信息。針對這一問題,本文使用ELECTRA 預(yù)訓(xùn)練模型表征文本信息,在此基礎(chǔ)上,使用門控卷積神經(jīng)網(wǎng)絡(luò)(Gated Convolution Neural Network,GCNN)網(wǎng)絡(luò)捕捉文本的局部語義和位置信息,最后使用CRF 進(jìn)行解碼,不需要額外添加句法特征,從而緩解梯度消失和錯(cuò)誤語義傳播問題。
本文提出的ELECTRA-GCNN-CRF 模型整體架構(gòu)如圖1 所示,該模型自底向上由輸入層、GCNN 層、CRF 層和輸出層組成,其中,GCNN 層的作用是提取文本的局部信息。ELECTRA-GCNN-CRF 模型將中文語法糾錯(cuò)視為序列標(biāo)注任務(wù),為文本中的每個(gè)字預(yù)測對應(yīng)的語法錯(cuò)誤標(biāo)簽,并對文本采用BIO 的標(biāo)注方式,即字符位于語法錯(cuò)誤部分開頭時(shí)標(biāo)注為B,位于語法錯(cuò)誤部分內(nèi)部時(shí)標(biāo)注為I,非語法錯(cuò)誤部分的字符標(biāo)注為O。
圖1 ELECTRA-GCNN-CRF 模型架構(gòu)Fig.1 ELECTRA-GCNN-CRF model architecture
文本輸入模型前需要對其進(jìn)行向量化處理,傳統(tǒng)文本表示模型存在表征能力不足、無法處理一詞多義等問題。預(yù)訓(xùn)練語言模型在大規(guī)模無監(jiān)督語料中進(jìn)行訓(xùn)練,通過Transformer 架構(gòu)對輸入序列進(jìn)行建模,獲取每個(gè)字的上下文語義知識,因此,其可以根據(jù)上下文語義動(dòng)態(tài)生成字向量,有效解決一詞多義問題,而且還能根據(jù)不同任務(wù)對預(yù)訓(xùn)練模型進(jìn)行微調(diào),從而獲得針對性更強(qiáng)的字向量,適應(yīng)特定任務(wù)的需求。
由于ELECTRA 預(yù)訓(xùn)練語言模型具有訓(xùn)練效率高、訓(xùn)練方式能夠避免數(shù)據(jù)不匹配問題等優(yōu)點(diǎn),因此本文選用ELECTRA 預(yù)訓(xùn)練語言模型進(jìn)行文本向量化。ELECTRA 模型是CLARK 等[21]借 鑒GAN 網(wǎng)絡(luò)[22]的思想而設(shè)計(jì)的,該模型由生成器和判別器兩部分組成,并使用RTD(Replace Token Detection)預(yù)訓(xùn)練方式。生成器是個(gè)小型掩碼語言模型,負(fù)責(zé)對輸入的Token 進(jìn)行隨機(jī)替換,然后讓判別器判別生成器的輸出是否發(fā)生了替換,取判別器作為最終的ELECTRA 預(yù)訓(xùn)練語言模型,其具體流程如圖2 所示。這種預(yù)訓(xùn)練方式避免了因“[MASK]”標(biāo)記導(dǎo)致的預(yù)訓(xùn)練階段與微調(diào)階段數(shù)據(jù)不匹配問題,并且大幅提高了訓(xùn)練效率,也使ELECTRA 預(yù)訓(xùn)練語言模型對文本中的語義變化特別敏感,適用于語法錯(cuò)誤檢測任務(wù),其性能優(yōu)于BERT 預(yù)訓(xùn)練語言模型。
圖2 ELECTRA 預(yù)訓(xùn)練語言模型訓(xùn)練流程Fig.2 Training procedure of ELECTRA pre-training language model
設(shè)輸入序列為X={x1,x2,…,xn},則生成的隱藏層向量Hc為:
為了充分利用文本局部信息進(jìn)行語法錯(cuò)誤檢測,降低語法錯(cuò)誤對上下文語義的影響,本文使用殘差門控卷積神經(jīng)網(wǎng)絡(luò)提取文本的局部特征,此部分由兩層卷積核長度分別為5 和3 的殘差門控卷積層組成,整體模型和殘差門控卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 殘差門控卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Structure of residual gated convolution neural network
GCNN 主要由卷積層和線性門控單元(Gate Linear Unit,GLU)組成。卷積層可以提取一定寬度內(nèi)相鄰詞的局部語義和位置特征,并使由語法錯(cuò)誤造成的錯(cuò)誤語義控制在給定寬度內(nèi),能夠有效緩解錯(cuò)誤語義傳播問題。GLU 是一種門控機(jī)制,使用Sigmoid 激活函數(shù)控制信息流通,能夠保留有效信息,抑制無效信息帶來的影響[23]。
GCNN 單元內(nèi)的操作可用公式表示為:
其中:Hc表示由輸入層得到的隱藏層向量;Conv 表示卷積操作;σ表示Sigmoid 激活函數(shù);?表示向量的哈達(dá)瑪積;C表示經(jīng)過門控卷積單元的局部特征向量。
為了保留全局語義信息并改善梯度消失問題,本文在GCNN 單元的基礎(chǔ)上引入殘差機(jī)制,用公式表示為:
其中:LayerNorm 表示層歸一化;⊕表示向量相加;Z表示經(jīng)過GCNN 的特征向量。
CRF 可以解決輸出序列與標(biāo)注規(guī)則不符的問題,如“B-S”標(biāo)簽后不能接“B-W”標(biāo)簽等,只能接“I-S”或者“O”標(biāo)簽。CRF 模型通過特征轉(zhuǎn)移函數(shù)計(jì)算概率分?jǐn)?shù),以判斷當(dāng)前位置與相鄰位置標(biāo)簽的依賴關(guān)系。
設(shè)CRF的輸入序列為Z,則輸出序列的分?jǐn)?shù)函數(shù)為:
其中:Tyi,yi+1表示標(biāo)簽yi到標(biāo)簽yi+1的 轉(zhuǎn)移分?jǐn)?shù);Pi,yi表示第i個(gè)字到第yi個(gè)標(biāo)簽的分?jǐn)?shù)。
然后通過條件概率公式計(jì)算預(yù)測序列Y,以此生成所有可能的標(biāo)注序列YZ,最后使用維特比算法計(jì)算YZ中得分最高的Y:
其中:為真實(shí)的標(biāo)注序列;Y為全局最優(yōu)標(biāo)注序列。
ELECTRA-GCNN-CRF 模型在輸出層進(jìn)行BIO解碼,將語法錯(cuò)誤標(biāo)簽轉(zhuǎn)化為(起始位置,結(jié)束位置,語法錯(cuò)誤類型)格式的三元組,輸出語法錯(cuò)誤檢測結(jié)果。如圖1 中輸出(9,10,R),表明例句中起始位置為“9”、結(jié)束位置為“10”的“個(gè)月”這一段文本存在語法錯(cuò)誤,錯(cuò)誤類型為“成分冗余”。
為了驗(yàn)證本文方法的有效性,使用NLPTEA 中文語法錯(cuò)誤檢測數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),其為一份人工標(biāo)注過的語法錯(cuò)誤檢測數(shù)據(jù)集,語料來源是母語不為漢語的學(xué)習(xí)者在中文寫作中產(chǎn)生的錯(cuò)誤樣例。數(shù)據(jù)集將語法錯(cuò)誤分為4 種類型:Selection error(記為“S”,即用詞不當(dāng));Redundant error(記為“R”,即成分冗余);Missing error(記為“M”,即成分缺失);Word ordering error(記為“W”,即詞序不當(dāng))。對于每段語法錯(cuò)誤,生成“起始位置,結(jié)束位置,語法錯(cuò)誤類型”格式的三元組,如果語句中不存在語法錯(cuò)誤,則輸出“correct”。數(shù)據(jù)集中的語句可能沒有語法錯(cuò)誤,也可能包含一種或多種語法錯(cuò)誤,數(shù)據(jù)樣例如表1 所示。
表1 NLPTEA 中文語法錯(cuò)誤檢測數(shù)據(jù)集數(shù)據(jù)樣例Table 1 Data sample of NLPTEA Chinese grammar error detection dataset
本文收集了NLPTEA 歷年的CGED 任務(wù)評測數(shù)據(jù)集,去重之后對數(shù)據(jù)進(jìn)行BIO 標(biāo)注,將數(shù)據(jù)集給出的標(biāo)簽映射到每一個(gè)字符上,并按照8∶2 的比例劃分訓(xùn)練集和驗(yàn)證集,最終在2020 年的NLPTEA CGED 任務(wù)的測試集上進(jìn)行測試,數(shù)據(jù)集規(guī)模如表2所示。
表2 數(shù)據(jù)集規(guī)模Table 2 Dataset size 單位:個(gè)
本文采用NLPTEA 的CGED 任務(wù)評價(jià)指標(biāo)作為本次實(shí)驗(yàn)的評價(jià)標(biāo)準(zhǔn)。語法錯(cuò)誤檢測模型需要從以下3 個(gè)方面對語句進(jìn)行檢測:
1)Detection-level,即檢測層,對于輸入的語句,判斷其是否包含語法錯(cuò)誤。
2)Identification-level,即識別層,對于輸入的語句,判斷其包含哪幾種語法錯(cuò)誤。
3)Position-level,即定位層,對于輸入的語句,判斷每段語法錯(cuò)誤的起始位置和類型。Position-level是語法錯(cuò)誤檢測最關(guān)鍵的部分。
對于上述3 個(gè)方面,模型使用以下指標(biāo)進(jìn)行評價(jià):
實(shí)驗(yàn)中模型參數(shù)設(shè)置如下:隱藏層維度為768;ELECTRA 預(yù)訓(xùn)練模型[24]的Transformer結(jié)構(gòu)為12層;多頭注意力機(jī)制的頭數(shù)為12;每批次大小為240;優(yōu)化器采用Adam;丟棄率為0.15;最大迭代次數(shù)為20;使用早停法緩解過擬合;CRF 層的學(xué)習(xí)率為10-3,其他層的學(xué)習(xí)率為10-5;GCNN 層卷積核寬度分別為5 和3。
為了驗(yàn)證本文模型的有效性,將其與NLPTEA 2020的CGED 任務(wù)中表現(xiàn)優(yōu)異的檢測模型進(jìn)行橫向比較與分析,對比模型包括ResELECTRA_ensemble[18]、BSGED_ensemble[19]、StructBERT-GCN[20]和StructBERTGCN_ensemble[20]。4 種對比模型具體描述如下:
1)ResELECTRA_ensemble,該模型將殘差網(wǎng)絡(luò)與Transformer 結(jié)構(gòu)進(jìn)行融合,使用ELECTRA-large預(yù)訓(xùn)練語言模型參數(shù)進(jìn)行初始化,最后使用80 個(gè)單一模型進(jìn)行集成。
2)BSGED_ensemble,該模型在BERT 的輸出中加入文本位置和PMI特征,并使用門控機(jī)制進(jìn)行控制,通過BiLSTM 網(wǎng)絡(luò)獲取上下文信息,然后使用CRF 層進(jìn)行解碼,最后利用16 個(gè)單一模型進(jìn)行集成。
3)StructBERT-GCN,該模型的訓(xùn)練方式比原版BERT 增加字序預(yù)測和句序預(yù)測2 個(gè)新的訓(xùn)練目標(biāo),同時(shí)將句法依存關(guān)系使用GCN 網(wǎng)絡(luò)進(jìn)行建模并融入訓(xùn)練過程。
4)StructBERT-GCN_ensemble,該模型是38 個(gè)StrcutBERT-GCN-CRF 模型和65 個(gè)多任務(wù)訓(xùn)練的StructBERT-CRF 模型的集成。
在NLPTEA 2020 的中文語法錯(cuò)誤檢測數(shù)據(jù)集上,本文模型與基線模型的對比結(jié)果如表3 所示,其中,ELECTRA-GCNN-CRF 和 ELECTRA-GCNNCRF_ensemble 為本文模型,后者是10 個(gè)單一模型的集成,最優(yōu)結(jié)果加粗標(biāo)注。從表3 可以看出,在單一模型中,本文模型較StructBERT-GCN 在3 個(gè)方面的F1 值均取得明顯進(jìn)步,在所有模型中,ELECTRAGCNN-CRF_ensemble 在Detection-level 中的F1 值接近最優(yōu)性能,在Identification-level 和Position-level方面取得了最優(yōu)的F1 值。
表3 本文模型與NLPTEA 2020 的CGED 任務(wù)評測模型性能對比Table 3 Performance comparison between this model and CGED task evaluation models of NLPTEA 2020 %
為了驗(yàn)證本文模型各部分結(jié)構(gòu)的有效性,采用以下模型進(jìn)行消融實(shí)驗(yàn):
1)ELECTRA-softmax,僅使用ELECTRA 預(yù)訓(xùn)練語言模型。
2)ELECTRA-CRF,使用ELECTRA 預(yù)訓(xùn)練模型和CRF 層。
3)BERT-GCNN-CRF,將本文的預(yù)訓(xùn)練語言模型替換為BERT-base 預(yù)訓(xùn)練模型[25],其余部分不變。
4)ELECTRA-BiLSTM-CRF,將本文模型的GCNN層替換為2 層BiLSTM 神經(jīng)網(wǎng)絡(luò),其余部分不變。
5)ELECTRA-GCNN-CRF-RES,在本文模型的基礎(chǔ)上去掉GCNN 層的殘差機(jī)制,其余結(jié)構(gòu)和參數(shù)不變。
6)ELECTRA-GCNN-CRF,本文提出的中文語法錯(cuò)誤檢測模型。
消融實(shí)驗(yàn)結(jié)果如表4 所示。從表4 可以看出:ELECTRA-softmax、ELECTRA-CRF 和ELECTRAGCNN-CRF 在3 個(gè)方面的F1 值均依次上升,證明了GCNN 層和CRF 層的有效性;ELECTRA-BiLSTMCRF 在Detection-level 中取得最高的F1 值,表明在判斷語句是否有語法錯(cuò)誤的任務(wù)中,使用BiLSTM網(wǎng)絡(luò)捕捉上下文信息可以獲得更好的效果;對比ELECTRA-GCNN-CRF 和BERT-GCNN-CRF 可以看出,在參數(shù)規(guī)模相同的情況下,使用ELECTRA 預(yù)訓(xùn)練模型性能遠(yuǎn)優(yōu)于BERT 預(yù)訓(xùn)練模型,證明ELECTRA 生成的上下文語義特征向量更能反映語義變化情況,對錯(cuò)誤語義更加敏感,能夠獲取基礎(chǔ)的語法錯(cuò)誤特征,結(jié)合后續(xù)的局部信息提取層能夠獲得語法錯(cuò)誤的相對位置和局部語義信息,從而提升語法錯(cuò)誤檢測效果;ELECTRA-GCNN-CRF 對比ELECTRA-BiLSTM-CRF,在Position-level 的F1 值提升了1.37 個(gè)百分點(diǎn),即使用GCNN 網(wǎng)絡(luò)相較于BiLSTM 網(wǎng)絡(luò)能夠更好地提取文本特征,緩解語法錯(cuò)誤對于上下文語義的影響;ELECTRA-GCNNCRF-RES 對 比ELECTRA-GCNN-CRF,在Positionlevel 的F1 值下降了3.97 個(gè)百分點(diǎn),表明加入殘差機(jī)制可以使模型更好地識別語法錯(cuò)誤邊界。
表4 消融實(shí)驗(yàn)結(jié)果Table 4 Ablation experimental results %
為了進(jìn)一步比較不同模型在不同類型語法錯(cuò)誤中的識別效果,本文分別計(jì)算BERT-GCNN-CRF、ELECTRA-BiLSTM-CRF、ELECTRA-softmax、ELECTRACRF 和ELECTRA-GCNN-CRF 模型在4 種語法錯(cuò)誤中Position-level 的精確率、召回率和F1 值,其中精確率如圖4 所示。從圖4 可以看出,本文模型在4 種語法錯(cuò)誤中均能取得最高的精確率,這是由于語法錯(cuò)誤通常出現(xiàn)在文本局部,本文模型通過GCNN 網(wǎng)絡(luò)能夠?qū)W習(xí)到每種語法錯(cuò)誤的相對位置、局部語義信息等重要特征,因此,相比于其他模型,本文模型能夠更加精準(zhǔn)地識別語法錯(cuò)誤的起止邊界和類型,從而提升中文語法錯(cuò)誤識別精度。在W 型錯(cuò)誤中,ELECTRA-softmax 和ELECTRA-CRF 模型的對比結(jié)果表明CRF 層對于識別語序錯(cuò)誤具有重要作用。
圖4 5 種模型檢測不同類型語法錯(cuò)誤時(shí)的精確率對比Fig.4 Comparison of precision of five models in detecting different types of grammar errors
召回率對比情況如圖5 所示,從圖5 可以看出,和精確率情況類似,本文模型在S 型、R 型和W 型的語法錯(cuò)誤中均能取得最高性能,然而,在M 型語法錯(cuò)誤中,ELECTRA-BiLSTM-CRF 模型的召回率比本文模型高出3.02%,原因可能是成分缺失錯(cuò)誤往往出現(xiàn)在句子的主語或謂語部分,識別此種類型的錯(cuò)誤需要更大范圍的上下文乃至全局語義信息,在全局語義特征提取方面GCNN 網(wǎng)絡(luò)不如BiLSTM。
圖5 5 種模型檢測不同類型語法錯(cuò)誤時(shí)的召回率對比Fig.5 Comparison of recall of five models in detecting different types of grammar errors
為了綜合衡量模型性能,平衡精確率和召回率,本文對比不同模型的F1 值,結(jié)果如圖6 所示。從圖6可以看出:基于BERT 的中文語法錯(cuò)誤檢測模型的F1 值在3 種語法錯(cuò)誤中遜于其他模型,僅在W 型錯(cuò)誤中優(yōu)于ELECTRA-softmax 模型,說明ELECTRA模型的預(yù)訓(xùn)練方式對中文語法錯(cuò)誤檢測任務(wù)有顯著效果;在基于ELECTRA 的模型中,對于M 型語法錯(cuò)誤的識別F1 值均相差無幾,說明基于ELECTRA 的模型均對M 型語法錯(cuò)誤較為敏感;在其他3 種類型的錯(cuò)誤中,本文模型的F1 值相較對比模型均有不同程度的提升。以上結(jié)果表明本文模型在中文語法錯(cuò)誤檢測任務(wù)中具有有效性。
圖6 5 種模型檢測不同類型語法錯(cuò)誤時(shí)的F1 值對比Fig.6 Comparison of F1 values of five models in detecting different types of grammar errors
針對現(xiàn)有中文語法錯(cuò)誤檢測模型無法充分利用文本局部信息導(dǎo)致語法錯(cuò)誤檢測效果較差的問題,本文提出一種中文語法錯(cuò)誤檢測模型ELECTRAGCNN-CRF。將中文語法錯(cuò)誤檢測視為序列標(biāo)注問題,通過ELECTRA 語言模型獲取文本的語義表征,結(jié)合殘差門控卷積神經(jīng)網(wǎng)絡(luò)和CRF 識別語法錯(cuò)誤。在NLPTEA CGED 2020 公開數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該模型對中文語法錯(cuò)誤檢測效果具有提升作用,消融實(shí)驗(yàn)結(jié)果也驗(yàn)證了模型各部分結(jié)構(gòu)的有效性。
中文語法具有較高的復(fù)雜性,本文所提模型仍然存在很多不足,在錯(cuò)誤類型和位置的識別檢測方面有很大的提升空間。下一步將針對目前缺乏大規(guī)模中文語法錯(cuò)誤數(shù)據(jù)集的問題,研究新的數(shù)據(jù)增強(qiáng)方法,使得構(gòu)造的偽數(shù)據(jù)能夠很好地模擬真實(shí)的語法錯(cuò)誤,從而獲得更優(yōu)的語法錯(cuò)誤檢測效果。