趙國紅
(青海師范大學計算機學院,西寧 810000)
近年來,全球掀起了漢語學習的熱潮,然而,由于不同國家的語言環境和語言結構的差異,漢語學習者更容易出現語法錯誤。相較于英文,中文的語法更加復雜和靈活。因為中文不存在詞語的單復數和時態等明確的語法規則,其語法錯誤經常涉及隱晦的語義解析而不能基于字詞形態來判斷[5]。所以,漢語學習者在漢語學習的過程中最常見的錯誤是語法錯誤。
國外英語語法糾錯的研究起步比較早,在20世紀80年代的時候與GEC(grammatical error correction)相關的研究就已經出現。如今,針對英語語法糾錯的方法特別多。相較于英語語法糾錯,國內對中文語法糾錯的研究起步比較晚,中文語法現象復雜多變,這也決定了中文語法糾錯的復雜度要高于英文糾錯的復雜度。總之,關于如何使用人工智能來糾正中文語法錯誤面臨著機遇和挑戰。由于平行語料的缺乏,早期的CGEC(chinese grammatical error correction)大多采用基于規則和統計的方法,如:Wu[16]提出使用相對位置語言模型(relative position language model)和解析模板語言模型(parse template language model)的方法檢測美國學習者所寫的文章中的語法錯誤。Yu和Chen[19]提出從HSK動態作文語料庫中檢測漢語句子語序錯誤的分類器的方法。Lee等人(2013)[9]使用一系列手工語言規則來檢測中文學習者寫作中的語法錯誤。Lee等人(2014)[2]進一步提出了一個結合手工語言規則和N-gram模型的系統來檢測句子中的漢語語法錯誤。Fu等人[4]采用簡單到復雜的分階段糾錯方法,使用語言模型糾正簡單的錯誤,字、詞級的Transformer模型糾正復雜的錯誤。以上提到的方法采用手工提取特征的方法,可能會造成提取的特征不完整或者重要信息丟失,并且漢語語法的靈活性使得傳統規則的模型取得的效果不是很理想。近年來,隨著大規模平行語料的開發,深度學習技術被廣泛應用到漢語GEC任務。相比傳統方法,神經網絡方法具有很強的自動學習特征能力和完全數據驅動的能力。為了讓更多的語言信息集成到神經網絡,Zheng團隊[22]使用詞性(POS)標簽方法與阿里巴巴團隊[18]使用雙向LSTM-CRF的方法進一步集成詞性標注的分數(POS分數),逐點互信息(PMI)和依賴詞搭配等深層學習網絡,使得兩個團隊分別在2016年和2017年CGED任務中取得了較好的成績。Zhou等人[23]使用多個模型糾錯,分別是基于規則、統計和神經網絡,通過模型組合的方式得到最終的糾錯結果。Ren等人[11]使用基于卷積神經網絡的seq2seq模型糾錯,還采用了subword[12]算法來縮小詞表和緩解未登錄詞的問題。王辰成等人[25]提出了基于Transformer增強架構的中文語法糾錯模型,該模型使用動態殘差結構結合不同神經模塊的輸出來增強模型捕獲語義信息的能力。張生盛等人[21]首次提出了個性化的語法糾錯。使用基于Transformer增強的漢語語法糾錯模型對錯誤進行糾正。
本文首先介紹二語學習者語料庫規模與CGEC研究的關系,接著分析基于統計與規則的研究方法,以及CGEC系統的評測標準,最后闡述學習者語法錯誤研究的發展趨勢,并提出下一步提高系統準確率的建議。
中文語法糾錯任務主要是針對外國人在學習中文時出現的語法錯誤,本文主要介紹的數據為兩種。一種為華語能力測試(test of chinese as a foreign language,TOCFL),中文繁體語料庫。另一種是漢語水平考試(hanyu shuiping kaoshi,hsk),中文簡體語料庫。兩個數據集都是用來檢測母語非漢語者(包括外國人、華僑和中國少數民族考生)的漢語水平而設立的一項國際漢語能力標準考試。其中中文的語法錯誤類型主要包括:①冗余錯誤(redundant words);②選詞錯誤(word selection errors);③漏詞錯誤(missing words);④語序不當錯誤(word ordering errors)四種類型錯誤。具體的錯誤樣本數據如表1所示。

表1 HSK語法錯誤類型
漢語學習者數據對漢語語法研究至關重要。研究者可借助人工標注的語料歸納語法錯誤類型;還可將其作為訓練數據和測試數據,構建中文語法錯誤檢測和糾錯神經網絡模型,并且提高評測系統的性能。
隨著二語學習者和語料庫的數量和規模的不斷擴充,GEC研究領域出現了一些新的研究方法,具體可分為3類:①N-Gram語言模型;②自動分類模型;③神經機器翻譯模型。在實際應用中,統計方法常與傳統的基于規則的方法相結合,以充分發揮兩者的優點,開發規則與統計的GEC系統。
N-Gram是一種基于統計語言模型(language model,LM)的算法。語言模型其實是一個基于概率的判別模型,它的輸入是一句話,輸出是這句話的概率,即這些單詞的聯合概率(joint probability)。N-gram的概率計算,假設一個句子由N個詞組成表示為:S=(w1,w2,…,w n)
那么:


從以上的概率計算可以看出,N-gram語言模型存在參數空間過大和數據稀疏的問題,為解決這個問題引入馬爾科夫假設,即一個詞的出現僅與它之前的若干次有關。N-Gram語言模型是語法糾正領域中最常用的方法,能夠測量單詞序列出現的概率。在語言模型中語法正確的句子出現的概率過高,判斷為語法正確的句子,而語法不正確句子出現的概率過低,則判斷為語法不正確。
近年來,隨著中文語法研究的深入,許多機構和組織公開發布了中文語法錯誤的數據集,基于改進N-Gram語言模型開發CGEC系統也逐漸增多,很大程度上也提升了N-Gram語言模型糾正語法錯誤。
分類是給一個樣本(一個數據實例)分配標簽(類的)過程。在GEC研究中,如何根據輸入句子中是否含有語法錯誤、錯誤類型分析和錯誤定位等維度進行綜合評價。其樣例如表1所示,判斷正確性標準可以分為以下3個層次:①檢測級別。自動分類模型把文本語法檢測任務視為二分類的問題,判斷輸入的句子中是否包含語法錯誤,如果包含語法錯誤,那么就輸出不正確,否則輸出正確;②識別級別。自動分類模型把文本語法識別任務視為多分類的問題,根據黃金標準,識別所有的錯誤類型;③位置級別。此外,識別出所有錯誤類型之后,需要判斷出語法錯誤發生的范圍。
YouDao[4]在NLPCC 2018年加入語法糾錯任務,將CGEC任務視為翻譯問題,讓神經網絡學習錯誤句子(source sentence)與正確句子(target sentence)之間的關系,并將錯誤的句子翻譯翻譯為正確的句子。一般來說,大多數神經機器翻譯模型是基于編碼器-解碼器,其中編碼器將輸入序列編碼成一個隱藏狀態序列,譯碼器根據隱藏狀態生成輸出序列。相比傳統方法,神經機器翻譯模型的明顯優勢是可以自動提取語言學特征和糾正具有長期依賴性的錯誤的能力。神經機器翻譯模型Recurrent Neural Network(RNN)的變體如:Long Short Term Memory(LSTM)、Gated-Recurrent Unit(GRU)[1,12]和Convolutional Neural Network(CNN)[6-7]。此外,Transformer模型被用于CGEC生成流暢文本的能力關注,Transformer是一種強大的神經機器翻譯模型。近年來,許多漢語語法糾錯在Transformer模型基礎上進行了廣泛地研究,如Wang等人[15]、Devlin[3]和Liu[10]分別取得了不錯效果。
通過研究前人的工作[8,14,20],從中得到句子級別上使用準確率(Accuracy)、精準率(Pr eci sion)、召回率(Recall)和F1-measure作為自動度量來評估系統糾正的性能。漢語語法糾錯系統使用人工注釋語法錯誤的二語學習者的語料庫作為評測標準,通過系統的改正錯誤與人工標準答案對比異同來衡量系統的效果。由于語法錯誤的標注和修改需要耗費大量的人力、物力和財力,為了提高語料標注效率,漢語語法糾錯研究的測試語料中的語法錯誤一般是單人標注,但近期研究發現,由于母語者對漢語學習者語法錯誤的標注和修改存在異同,為了能夠更準確地測試漢語語法糾錯系統的性能,應該盡可能地使用多人標注測試語料。
由于GEC需要糾正多種語法錯誤,目前GEC的準確率和召回率仍然較低。漢語GEC系統的性能仍有提升空間。為進一步提高自動語法錯誤檢測系統的性能,需要解決以下幾個問題。
(1)加強統計模型以大規模真實語料為知識來源,避免了人工編寫規則的繁瑣。
謝海華等[17]使用大量無標簽的正確中文語料,通過詞性規則、句法規則以及語言模型概率統計等方法來生成接近真實語法錯誤用例的樣本,以擴充訓練語料。由于中文語法的復雜性,在下一步的計劃中將進一步提高數據構造的合理性,使構造的錯誤樣本更符合人們實際所犯的語法錯誤。
(2)重視母語遷移造成二語學習者語法錯誤。語言遷移理論認為二語學習者的書面語法錯誤類型受其母語影響。基于學習者語料庫的研究也發現,不同母語背景學習者的錯誤類型和分布概率存在差異。如周小兵等人[24]在對漢語作為第二語言的學習者的教學研究中發現,母語遷移是造成二語學習者語法錯誤的一項重要原因。如部分漢語學習者可能會寫“我見面我的老師”這樣的錯句。此外,Swan and Smith[13]在對二語學習者的教學研究發現不同母語寫作者會犯不同類型的錯誤。他們將其中的某些錯誤歸因于語言之間的“轉移”或“干擾”,即母語的“負遷移”。張生盛等人[21]針對漢語作為第二語言的學習者提出了個性化語法糾錯,發現將語法糾錯模型適應到學習者的不同特征時表現會更好。
(3)改善語言學特征的多任務學習。謝海華提到[17]因為語言學特征和語法的使用是十分相關的,所以使用語言學特征對語言模型進行優化能夠使它學習到顯式的語言學特征以及隱藏的語義信息,對語法錯誤檢測的效果起到明顯的改善作用。