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