施燦鎮(zhèn),朱俊國,余正濤
(1. 昆明理工大學 信息工程與自動化學院,云南 昆明 650500;2. 昆明理工大學 云南省人工智能重點實驗室,云南 昆明 650500)
文本語法錯誤檢測與糾正旨在自動識別并校正文本中的語法錯誤且不改變其原始語義,用于提高文本的可讀性,規(guī)范語句表達[1-2],在搜索引擎、語音識別后處理、機器翻譯以及具有評價和反饋功能的計算機輔助語言學習系統(tǒng)中有著廣泛的應用[3]。近年來,隨著泰國旅游業(yè)的飛速發(fā)展,越來越多不同語言和知識背景的人都有興趣將泰語作為一門外語進行學習,而這些第二語言學習者在學習過程中難免會因為語言和文化的差異產(chǎn)生語法錯誤。而現(xiàn)有的泰語文本語法錯誤檢測與糾正的相關工作主要集中在光學字符識別系統(tǒng)的后處理上,還停留在簡單的拼寫糾錯層面[4-6],缺少對其他語法錯誤類型(如用詞不當錯誤、語序錯誤、停頓錯誤等)的研究,因此對泰語文本語法錯誤檢測與糾正任務的研究具有重要意義。
目前,文本語法錯誤檢測(Grammatical Error Detection,GED)任務在中文和英文等資源豐富的語言中取得了顯著進展,與之相對應的,也有一些公開的標注數(shù)據(jù)集,例如,CoNLL-2014[7],CGED[8-11]等。然而,公開可用的標注數(shù)據(jù)集依舊是相對稀少的,數(shù)據(jù)匱乏問題成為限制該任務發(fā)展的主要原因,特別是對于泰語等低資源語言而言,這個問題尤為突出。為了緩解這個問題,有許多研究者提出了不同的數(shù)據(jù)增廣方法,大致可分為兩類: 一類是基于規(guī)則的方法,通過在原句中隨機引入噪聲來構(gòu)造錯誤句子。另一類是基于模型的方法,例如,使用機器翻譯模型對其他語言進行回譯。與前人方法不同的是,本文首先結(jié)合泰語語言特點對泰語文本中的錯誤類型進行歸納與定義,然后針對不同的錯誤類型人工制定相應的算法規(guī)則,最后利用單語數(shù)據(jù)生成語料庫。
文本語法錯誤檢測通常被視為序列標注任務,使用神經(jīng)網(wǎng)絡建模詞與錯誤類型標簽的關系。但是傳統(tǒng)序列標注模型缺乏對語言特點的考慮,致使其在識別特定語言中的特有錯誤時性能不佳。本文在傳統(tǒng)序列標注模型的基礎上融合泰語語言學特征,增強模型的語義信息,從而提高語法錯誤檢測的性能。實驗結(jié)果表明,本文方法的語法錯誤檢測性能與僅依賴于多語言BERT模型的方法相比提升了1.37%的F1值。此外,在用詞不當錯誤、詞冗余錯誤和停頓錯誤的檢測上分別提升了0.82%,1.82%和3.99%的F1值,并且模型性能會隨訓練數(shù)據(jù)規(guī)模的增加而提高。
神經(jīng)網(wǎng)絡模型的訓練通常需要大規(guī)模的訓練數(shù)據(jù),而人工構(gòu)建語料庫成本昂貴且耗時,因此有許多學者研究如何模擬真實場景構(gòu)建偽數(shù)據(jù)來擴增訓練數(shù)據(jù),主要方法大致可分為兩類: 一類是基于規(guī)則的方法。Wang等人[12]借鑒去噪自編碼器的思想,首先通過規(guī)則(包括隨機插入、刪除、替換等)對文本增噪,以此生成包含各種錯誤的句子,再通過序列到序列模型試圖恢復原始句子。第二類是基于模型的方法。Lichtarge等人[13]借助橋梁語言進行往返翻譯,構(gòu)建了大規(guī)模的訓練數(shù)據(jù)。Zhou等人[14]借助神經(jīng)機器翻譯模型顯著好于統(tǒng)計翻譯模型的特點,用前者生成質(zhì)量較好的句子,用后者生成質(zhì)量較差的句子,構(gòu)成訓練句對。但是基于規(guī)則的方法生成的訓練數(shù)據(jù)無法完全覆蓋真實場景下的錯誤類型,并且生成的錯誤和語言學習者所犯的錯誤差異較大,而基于模型的方法生成的句子可能具有歧義,或者不包含語法錯誤,又或者與原句在語句的構(gòu)成上差距太大。針對以上兩個問題,本文嘗試采用基于人工啟發(fā)式規(guī)則的方法來構(gòu)建泰語文本糾錯語料庫,既能規(guī)避錯誤類型覆蓋不全的問題,也不會引入過多具有歧義的數(shù)據(jù)。
國內(nèi)外檢測文本語法錯誤的主流是序列標注模型,即輸入一段文本,輸出文本中每個詞對應的錯誤類型標簽。Kaneko等人[15]提出多頭多層注意力模型,使用多頭注意力機制提取BERT模型所有中間層的隱藏表示,從而提升語法錯誤檢測的效果。Pislar等人[16]使用多頭注意力機制將單個單詞和完整句子之間的表示聯(lián)系起來,聯(lián)合學習序列標注和句子分類任務,其中每個注意力頭都被作為一個序列標注器,用來檢測每個詞對應的標簽。Yuan等人[17]首先將該任務視為一個二進制序列標注任務,通過微調(diào)ELECTRA[18]模型來實現(xiàn),然后使用ERRANT框架[19]將二進制檢測結(jié)果派生到多類錯誤類型,從而提升語法錯誤糾正的效果。可見,學者們主要從任務特點的方向開展研究,而結(jié)合語言特點開展的工作相對較少,且面向泰語的相關工作更是少之甚少。本文結(jié)合泰語文本先由連續(xù)的泰文字符按一定組合規(guī)則排列成詞再構(gòu)成句子的特點,在傳統(tǒng)序列標注模型的基礎上融合字符與詞性特征,進一步提升語法錯誤檢測性能。
泰語屬于漢藏語系,和漢語一樣沒有明確指定單詞邊界,在進行更深入的分析之前通常需要進行分詞。從語法上看,泰語和漢語一樣,都屬于孤立語,缺乏嚴格意義上的形態(tài)標記和變化,主要靠詞序、虛詞等語法手段表現(xiàn)詞與詞的關系或其他語法意義[20]。泰語的基本語序與漢語相同,都是“主-謂-賓”(Subject-Verb-Object, SVO)結(jié)構(gòu),區(qū)別在于泰語中的修飾語在被修飾語之后,簡而言之,泰語形容詞應放在名詞之后,副詞放在動詞之后,例如,漢語的 “這幅畫真美”,在泰語中的語序為“畫幅這美真”,因而容易產(chǎn)生語序錯誤。
與屬于語素文字的漢字不同,泰文屬于音節(jié)音位文字,是以輔音字母為主體、元音以附加符號形式標出的一種表音文字。詞匯主要由音節(jié)組成,包括單音節(jié)詞和多音節(jié)詞,而一個音節(jié)一般由輔音、元音和聲調(diào)等多個字符組成,不同的聲調(diào)有區(qū)分詞匯和語法的作用,其中有44個輔音、32個元音和5個聲調(diào)(第一聲調(diào)不標符號),如表1所示。
表1 泰文輔音、元音及聲調(diào)字符
和漢語一樣,泰語在實際使用過程中也存在詞匯的冗余和缺失錯誤,有時雖然可以起到簡化表達或強調(diào)語句成分的作用,但是在語法上是不規(guī)范的。泰語文本詞冗余錯誤主要表現(xiàn)在使用多余的修飾語修飾被修飾語,或者是介詞、連詞等虛詞的冗余。詞缺失錯誤主要表現(xiàn)為動詞、副詞等實詞的缺失,以及連詞、介詞等虛詞的缺失。
綜上,本文將泰語文本中存在的錯誤歸為六類,分別是拼寫錯誤、詞冗余錯誤、詞缺失錯誤、用詞不當錯誤、語序錯誤以及停頓錯誤(分為冗余和缺失兩種)。標注方案遵循BIO規(guī)則[21],“B”表示文本語法錯誤的起始,“I”表示文本語法錯誤的中間或結(jié)尾部分,“O”表示對應單詞沒有語法錯誤,“C”表示拼寫錯誤,“R”表示詞冗余錯誤,“M”表示詞缺失錯誤,“S”表示用詞不當錯誤,“W”表示語序不當錯誤,“PM/PR”表示停頓錯誤(缺失/冗余)。錯誤類型及標注示例如表2所示,其中,“_”表示停頓(空格),“[]”中為文本語法錯誤發(fā)生的位置。
表2 泰語文本語法錯誤類型及標注示例
網(wǎng)絡上現(xiàn)有的泰語文本語法糾錯語料資源有限,遠不足以用于訓練神經(jīng)網(wǎng)絡模型,而采用人工的方式進行語料收集和注釋是十分昂貴的。針對這個問題,在第2.1節(jié)定義的錯誤類型的基礎上,本文設計出一種基于人工規(guī)則自動構(gòu)建泰語文本糾錯語料庫的方法,對不同錯誤類型設計有針對性的錯誤構(gòu)建規(guī)則。
其中對于拼寫錯誤和詞選擇錯誤的構(gòu)建,需要先分別構(gòu)造字符混淆集和近義詞混淆集,前者使用手工構(gòu)造,后者通過爬取電子詞典并篩選構(gòu)造而成,以下給出定義:
在構(gòu)建語料庫之前,本文首先從網(wǎng)絡上收集一定數(shù)量的單語語料,使用開源工具PyThaiNLP(1)https://github.com/PyThaiNLP對文本進行預處理,得到泰語文本語法錯誤原始語料庫,記為So。 然后編寫算法規(guī)則對So中的每個句子隨機生成錯誤: 對于拼寫錯誤,本文采用三種策略生成,分別是字形相近字符替換、發(fā)音相近字符替換以及基于編輯距離的隨機替換;對于詞冗余錯誤,借助2-gram詞表在句子中隨機插入單詞;對于詞缺失錯誤,根據(jù)詞性標簽隨機刪除句子中的動詞、連詞、介詞和助詞等;對于用詞不當錯誤,使用近義詞混淆集進行隨機替換;對于詞序錯誤,隨機打亂句子中連續(xù)的2~5個詞;對于停頓錯誤,根據(jù)詞性標簽隨機插入或刪除停頓。具體算法流程如算法1所示,其中分詞和詞性標注均使用PyThaiNLP處理,詞性標注選用Sornlertlamvanich等人[22]提出的標注方案,包含47種詞性標簽,2-gram詞表來自泰國國家語料庫(2)https://www.arts.chula.ac.th。
需要注意的是,考慮到實際場景下文本語法錯誤的復雜性,同時保證模型具有一定的魯棒性和泛化能力,我們以概率Pe令部分語料包含文本語法錯誤,以概率Pq令含有語法錯誤的句子包含一到兩個錯誤。
算法1. 泰語文本語法糾錯語料自動生成算法輸入: 原始語料So,字符混淆集Cs、Cp,2-gram詞表B,近義詞混淆集U,出錯概率Pe,單句僅產(chǎn)生一處錯誤的概率Pq,拼寫錯誤概率Pc,詞冗余錯誤概率Pr,詞缺失錯誤概率Pm,用詞不當錯誤概率Ps,詞序錯誤概率Pw,停頓(空格)錯誤概率Pp;輸出: 泰語文本語法糾錯語料庫thGECC。1. for each s in So2. T,P←process(s);/*進行分詞、詞性標注并分別存入列表T和P中*/3. if random(Pe) is True;/*以概率Pe生成語法錯誤*/4. Q←getErrorQuantity(Pq) /*以概率Pq生成一處語法錯誤*/5. for I from zero to Q /*循環(huán)Q次*/6. C←getErrorClass(Pc,Pr, Pm, Ps, Pw, Pp);/*按概率隨機選擇要生成的錯誤類型存入變量C*/7. T',E←getError (T, P, C, Cs, Cp,B,U);/*根據(jù)C生成含語法錯誤的句子并進行標注,分別存入T'和E */8. end for9. end if10. thGECC←getErrorPairs(T,T', E);/*將“正確-錯誤-錯誤類型標簽”存入集合thGECC*/11. end for
考慮到數(shù)據(jù)的領域豐富性,本文的原始語料主要來自中國國際廣播電臺網(wǎng)泰語版和在線泰語詞典網(wǎng),分為經(jīng)濟與貿(mào)易、外交、教育、環(huán)境、軍事、政治、旅游、國際、社會以及生活與文化等十類約78 995條句子。為保證數(shù)據(jù)分布的一致性,本文首先將原始語料庫按照約8∶1∶1的比例劃分為訓練集、驗證集和測試集,再使用算法1生成語料,其中含有語法錯誤的句對有63 006條,語法正確的句對有15 989條,每個包含語法錯誤的句子中有一到兩處錯誤。需要注意的是,由于我們采用人工規(guī)則算法自動生成語料庫,每條原始語句產(chǎn)生不同錯誤類型的概率是相同的,所以不同領域的數(shù)據(jù)對于錯誤類型的分布是沒有影響的。
數(shù)據(jù)集來源領域統(tǒng)計數(shù)據(jù)如表3所示,數(shù)據(jù)集的錯誤類型分布詳細統(tǒng)計數(shù)據(jù)如表4所示。
表3 數(shù)據(jù)集來源領域數(shù)據(jù)統(tǒng)計
表4 數(shù)據(jù)集錯誤類型分布數(shù)據(jù)統(tǒng)計
本文將文本語法錯誤檢測視為序列標注任務。目前,該任務主流方法為基于雙向長短時記憶網(wǎng)絡(Bi-directional Long Short Term Memory Network,BiLSTM)的模型和基于BERT(Bi-directional Encoder Representation from Transformers)的模型。由于傳統(tǒng)序列標注模型缺乏對語言特點的考慮,導致其在識別特定語言中的特有錯誤時性能不佳。為此,本文結(jié)合泰語文本由連續(xù)的泰文字符按一定組合規(guī)則排列成詞再構(gòu)成句子的特點,在多語言BERT(multilingual Bi-directional Encoder Representation from Transformers, mBERT)[23]序列標注模型的基礎上融合詞、字符與詞性的深層語義表達進行語法錯誤檢測。首先利用多語言BERT模型提取詞的深層語義特征,同時使用詞性與字符特征編碼器編碼詞性與字符特征,將三者以拼接的方式融合得到最終的特征向量,然后使用多頭注意力機制提取更豐富的特征信息。
模型主要由詞嵌入層、詞性與字符特征嵌入層、BERT層、詞性與字符特征編碼層、多頭注意力層以及Softmax層組成,整體架構(gòu)如圖1所示。對于每個批次的訓練數(shù)據(jù),模型的訓練分為以下四步:
圖1 總體模型架構(gòu)圖
其中,We、Wp分別表示詞嵌入權(quán)重和位置嵌入權(quán)重,l表示BERT模型層數(shù),L表示BERT模型的最后一層。
第二步先對輸入的句子進行詞性標注,再將輸入的單詞拆分為字符,然后通過詞性與字符特征嵌入層得到初始詞性特征向量Pi和初始字符特征向量Ti;接著使用卷積神經(jīng)網(wǎng)絡編碼字符特征,然后將兩者拼接起來得到初始字符與詞性特征向量Fi,如式(3)所示。最后,將其輸入到一個BiLSTM網(wǎng)絡中進行更深層次的編碼,將BiLSTM網(wǎng)絡的最后一層隱狀態(tài)作為最終的詞性與字符特征向量F′i,如式(3)~式(5)所示。
Fi=Conv(Ti)⊕Pi
(3)
(4)
(5)
第三步將前兩步得到的輸出做拼接操作得到最終的特征向量Hi,如式(6)所示,作為多頭注意力層的輸入,使用多頭注意力機制在不同的表示子空間中捕獲得到更加豐富的特征信息H′i,如式(7)~式(9)所示。
第四步對多頭注意力層的輸出H′i作線性變換后經(jīng)Softmax層得到錯誤類型的概率分布Yi,并計算交叉熵損失函數(shù),如式(10)、式(11)所示,最后通過反向傳播更新網(wǎng)絡參數(shù)。
其中,Wo,bo分別為線性變換的權(quán)重矩陣和偏置矩陣,C表示錯誤類型標簽,yi為樣本標簽的one-hot表示,當樣本屬于第i類時取1,否則取0。
實驗數(shù)據(jù)集為第2.3節(jié)所述的泰語文本糾錯語料庫,從中抽取包含語法錯誤的句子和對應的錯誤類型標簽用于泰語文本語法錯誤檢測任務,詳細統(tǒng)計信息見表3、表4。
在評估泰語文本錯誤檢測模型時,本文采用精確率P、召回率R以及F1值作為評價指標,如式(12)~式(14)所示。
為驗證本文所提模型的有效性,本文進行了多組實驗。由于當前缺少關于泰語文本語法錯誤檢測任務的研究,沒有可作為參照的基線,因此本文在實驗前首先設定四個基線模型:
(1)BiLSTM基于BiLSTM的序列標注模型,本文對比了使用GloVe詞嵌入初始化和Word2Vec詞嵌入初始化的錯誤檢測性能。
(2)BiLSTM-LAN[24]分層細化的標簽注意力序列標注模型,該方法使用多頭注意力聯(lián)合編碼來自單詞表示子空間和標簽表示子空間的信息。
(3)MHAL[16]基于多頭注意力機制的BiLSTM序列標注模型,使用多頭注意力機制將單個單詞和完整句子之間的表示聯(lián)系起來,其中每個注意力頭都被作為一個序列標注器,用來檢測每個詞對應的標簽。
(4)mBERT[23]基于多語言BERT的序列標注模型,使用深度雙向Transformer編碼器建模語言特征。
實驗中,Word2Vec詞嵌入和GloVe詞嵌入均使用泰語版維基百科語料訓練,前者使用Skip-Gram模型,兩者的詞嵌入維度都為100,上下文窗口大小都為5,最小詞頻都為5。BiLSTM網(wǎng)絡隱藏單元為300,Dropout率為0.5,學習率為0.015,學習率衰減為0.05;BiLSTM-LAN網(wǎng)絡和MHAL網(wǎng)絡的參數(shù)設置與BiLSTM網(wǎng)絡基本一致,唯一不同在于MHAL網(wǎng)絡中學習率為1.0,學習率衰減為0.9;基于mBERT的模型詞嵌入維度為768,隱藏單元大小為768,學習率為1e-5,句子最大長度為150,使用Adam優(yōu)化器優(yōu)化模型參數(shù)。此外,本文模型中的詞性特征嵌入和字符特征嵌入的維度均為64。
在本文構(gòu)建的測試集上的實驗結(jié)果如表5所示。從表中可以看出,基于詞性與字符特征融合的泰語文本語法檢錯方法在召回率R和F1值上都比所有對比模型高,相比mBERT序列標注模型在僅損失0.41%精確率的情況下,在召回率上提高了3.8%,總體效果提升了1.37%的F1值;在精確率上低于BiLSTM-LAN方法和MHAL方法,可能是由于前者使用了多頭注意力聯(lián)合編碼來自單詞表示子空間和標簽表示子空間的信息,可以更準確地獲得單詞與標簽之間的聯(lián)系,而后者則使用多頭注意力機制將單個單詞和整個句子間的表示巧妙地聯(lián)系在一起,可以捕獲到更豐富的上下文信息,從而使得模型預測的精確率更高。
表5 不同方法的性能對比 (單位:%)
由圖2顯示,相比mBERT序列標注模型,本文方法對詞冗余錯誤和停頓錯誤的檢測有相對明顯的提升,分別提升了1.82%和3.99%的F1值,在用詞不當錯誤的檢錯方面也有小幅度提升,為0.82%的F1值,證明了融合詞性與字符特征的有效性。而在拼寫錯誤和詞序錯誤的檢測上會有略微的下降,分別為0.32%和0.62%的F1值。對此,本文通過分析實驗數(shù)據(jù)和測試結(jié)果發(fā)現(xiàn),引入詞性與字符特征雖然在一定程度上有助于語法錯誤的檢測,但同時也會引入噪聲,導致模型預測時額外產(chǎn)生了少量誤判,使精確率有略微下降,進而使模型在識別這兩種錯誤類型時性能下降。
圖2 不同方法在不同錯誤類型上的性能對比
此外,無論是在泰語,還是在漢語等資源相對豐富的語言中,對詞缺失錯誤的檢測與糾正都是一個具有挑戰(zhàn)性的問題。如圖2所示,不管是基線模型還是本文模型,檢測詞缺失錯誤的性能都不理想,但本文方法與mBERT對于不使用mBERT的模型能夠更好地檢測詞缺失錯誤。導致這一現(xiàn)象的原因可能是由于詞缺失錯誤的檢測相對于其他類型的文本語法錯誤檢測需要依賴更加豐富的語義信息。另外,本文方法在mBERT模型的基礎上融合了字符與詞性特征,但是這兩類特征對缺失詞來說是未知的,因此融合這兩類特征對檢測詞缺失錯誤的作用不大,從而導致兩個模型在檢測這類錯誤時的性能基本持平。
為驗證融合詞性與字符特征,以及多頭注意力機制對多語言BERT序列標注模型性能的影響,本文通過以下7種方式進行消融實驗:
(1)mBERT僅依賴于多語言BERT的序列標注模型。
(2)mBERT+MHA在mBERT模型基礎上加入多頭注意力機制的模型。
(3)mBERT+feature(CharCNN) 在mBERT模型基礎上融合采用卷積神經(jīng)網(wǎng)絡編碼的字符特征的模型。
(4)mBERT+POS+MHA在mBERT模型基礎上融合詞性特征并加入多頭注意力機制的模型。
(5)mBERT+CharCNN+MHA在mBERT模型基礎上融合采用卷積神經(jīng)網(wǎng)絡編碼的字符特征,并加入多頭注意力機制的模型。
(6)mBERT+feature(CharLSTM)+MHA在mBERT模型基礎上同時融入詞性與字符特征并加入多頭注意力機制的模型。與本文方法的差別在于字符特征使用雙向長短時記憶網(wǎng)絡編碼。
(7)本文方法在mBERT模型基礎上同時融入詞性與字符特征并加入多頭注意力機制的模型,其中字符特征使用卷積神經(jīng)網(wǎng)絡編碼。
如表6所示,在mBERT序列標注模型的基礎上,單獨加入多頭注意力機制或詞性與字符特征的性能會有所下降,而同時加入多頭注意力機制和詞性特征或字符特征的其中一種都會提升一定的性能。對此,可能的原因是mBERT模型已經(jīng)使用深度雙向Transformer網(wǎng)絡很好地提取了特征信息,單獨加入多頭注意力機制會破壞這些特征信息;而單獨加入的額外特征即使不進行更深層的編碼,也會對強大的BERT模型造成負面影響,綜上可以證明本文所提模型中各組件的存在都是有必要的。除此之外,本文還對不同的字符特征提取方式進行了實驗(表6中最后兩行),對比發(fā)現(xiàn)使用卷積神經(jīng)網(wǎng)絡的性能更好。
表6 本文方法中不同組件對模型性能的影響 (單位: %)
如圖3顯示,在mBERT序列標注模型基礎上單獨加入多頭注意力機制或詞性與字符特征,會對模型錯誤檢測性能造成負面影響,主要體現(xiàn)在詞缺失錯誤(兩個模型分別損失2.23%和0.78%的F1值)和語序不當錯誤(兩個模型分別損失2.29%和1.17%的F1值)上, 檢測其他錯誤類型的性能與mBERT序列標注模型基本持平。而單獨融合字符特征或詞性特征并加入多頭注意力機制僅在個別錯誤類型的檢測上會使模型損失一些性能(在詞缺失錯誤的檢測上兩個模型分別損失1.6%和2.93%的F1值,在語序不當錯誤的檢測上兩個模型分別損失1.00%和0.74%的F1值)??傮w而言,對模型是起到正面作用的,在拼寫錯誤的檢測上兩個模型分別提升-0.22%和0.12%的F1值,在詞冗余錯誤的檢測上兩個模型分別提升-0.49%和0.74%的F1值,在用詞不當錯誤的檢測上兩個模型分別提升0.96%和0.63%的F1值,在停頓錯誤的檢測上兩個模型分別提升1.96%和2.52%的F1值。當在mBERT模型上同時融合詞性和字符特征并加入注意力機制時,相比僅依賴于mBERT的模型,在六類語法錯誤的檢測上分別提升了-0.32%、1.82%、0.01%、0.82%、-0.62%和3.99%的F1值,由此可進一步證明本文模型中各組件存在的必要性和有效性。
圖3 本文方法中不同組件對模型檢測不同錯誤類型的性能影響
為驗證本文所提語料庫構(gòu)建方法的有效性,在驗證集和測試集規(guī)模不變的前提下,本文分別使用訓練集的25%、50%、75%和100%訓練表5中的基線模型與本文方法,結(jié)果如圖4所示。從圖中可以看出,隨著訓練集規(guī)模的擴大,本文方法和基線方法的性能均會逐步提升。此外,本文在四個訓練數(shù)據(jù)規(guī)模下相比mBERT模型分別提升了0.7%、1.72%、1.14%和1.37%的F1值,由此可證明本文語料庫構(gòu)建方法的有效性, 并可進一步證明本文提出的泰語文本語法錯誤檢測方法的有效性。
圖4 不同方法在不同數(shù)據(jù)規(guī)模下的性能對比
本文對檢測失敗的示例進行分析,如表7所示,其中,“×”表示含有語法錯誤的文本,“√”表示對應的正確文本,發(fā)現(xiàn)當句子中出現(xiàn)以下情況時通常會使模型檢測失敗:
表7 本文方法檢測泰語文本語法錯誤成功與失敗的示例
(2) 語序不當錯誤中亂序短語較長。例如,模型可以識別出示例2成功示例中較短短語的語序不當錯誤,對失敗示例中較長短語的語序不當錯誤識別不完整。
(3) 需要依靠更豐富的上下文信息(例如篇章級信息)進行判斷的錯誤。如示例3,模型可以識別出僅依賴于單個句子的詞冗余錯誤,識別不出在單句層面沒有錯誤,但可能在更長的上下文環(huán)境下或者特定語境中為冗余詞的錯誤。
(4) 當句子中有多處語法錯誤時,錯誤之間距離太近。如示例4的成功示例中,兩處語法錯誤之間存在間隔,模型可以準確地識別出與之對應的錯誤類型,但對于失敗示例中緊緊相鄰的兩處錯誤,模型僅識別出了一處。
本文針對泰語文本語法錯誤檢測與糾正任務語料匱乏問題,結(jié)合泰語語言學及文本語法錯誤類型特點,基于人工啟發(fā)式規(guī)則構(gòu)建了一定規(guī)模的泰語文本語法錯誤檢測與糾正語料庫?;谠撜Z料庫,提出融合語言學特征的泰語文本語法錯誤檢測方法,在多語言BERT模型的基礎上融合字符、詞與詞性的深層語義表達。實驗結(jié)果表明,本文方法能在多語言BERT模型上進一步提升性能。下一步的工作,本文將考慮擴大語料庫規(guī)模,嘗試構(gòu)建其他東南亞小語種的文本糾錯語料庫,并探索使用更有效的模型方法和更豐富的語言學特征來提升東南亞小語種文本語法錯誤檢測的效果,同時開展文本語法錯誤校正相關的研究。