近期參加NLP領域CCL2024評測,現將賽題背景和實現方法分享,推理文字糾錯領域的發展。
1、背景資訊
隨著教育的發展和網路的普及,作文評價的規模越來越大,人工評改作文的成本和效率成為一大難題。為了解決這一問題,許多研究者和機構開始探索利用計算機技術來實現作文的自動評改,透過分析作文的語言、內容、結構等方面的特點及存在的問題,給出客觀、準確、及時的評分和反饋。其中,表述是否流暢是教師評改作文的一項重要內容。
作文流暢性反映一篇作文的通順程度和語言使用的規範性,以及作者的寫作水平和表達能力,對提高作文評改質量、提升作者寫作水平具有重要意義。目前,針對作文流暢性評價的研究工作通常從句子長度、詞彙複雜度、句子結構等語言學特徵角度進行評分或評級;或是作為語法糾錯任務,對句子中出現的拼寫錯誤或語法錯誤進行識別和糾正;或是視為病句判斷任務,判斷一條句子是否是病句;這些方法通常將作文流暢性評估作為一個單獨的自然語言處理任務,缺乏多層次、多角度的系統性整合;在對語法錯誤型別的定義上,以往的工作研究了贅餘、缺失、誤用、亂序四個粗粒度類別,缺乏更細粒度的錯誤型別定義;同時,他們的方法不具備良好的可解釋性,沒有定義作文流暢性評價的細粒度分項,無法對中小學生錯誤修改給出針對性的指導和修改意見。此外,
本次評測資料集來源於以漢語為母語的中小學生考試作文,區別於使用基於規則生成或漢語學習者的中介語資料中的錯誤,以及其他型別母語者的口語、書面語的語法錯誤,中小學生作文中出現的錯誤型別更豐富,涉及的語法知識更復雜。因此我們的任務研究中小學生考試作文中的語法錯誤識別與糾正問題,系統地定義了影響作文流暢性的細粒度錯誤型別,並給出了修正建議,這種細粒度錯誤型別的定義與識別能夠幫助學生更清楚地瞭解自己的寫作問題,而修正建議能幫助學生更好地修改自己的作文,同時幫助教師更便捷地瞭解學生寫作水平,有助於教師更好地指導學生寫作。
基於此,本次評測任務從詞法、句法、語義等多角度對作文流暢性進行詳細分析,並給出修改建議,包括:
1、中小學作文病句型別識別;
2、中小學作文病句改寫;
3、中小學作文流暢性評級;
2、實現方法
任務一是有關病句型別識別,本質為分類任務,為此我們選用UTC模型進行微調,由於提供訓練的資料量較少,為此我們提出語法錯誤替換方法(後續開源),來進行分階段的訓練,任務一訓練資料如下:
UTC基於百度最新提出的統一語義匹配框架USM(Unified Semantic Matching),將分類任務統一建模為標籤與文字之間的匹配任務,對不同標籤的分類任務進行統一建模。具體地說:
UTC設計了標籤與文字之間的詞對連線操作(Label–>CLS-Token Linking),這使得模型能夠適應不同領域和任務的標籤資訊,並按需求進行分類,從而實現了開放域場景下的通用文字分類。例如,對於事件檢測任務,可將一系列事件標籤拼接為[L]上映[L]奪冠[L]下架 ,然後與原文字一起作為整體輸入到UTC中,UTC將不同標籤識別符號[L]與[CLS]進行匹配,可對不同標籤型別的分類任務統一建模,透過這種方法可以進行不同類別資料的訓練,這個思路真不錯。
任務二是中小學作文病句改寫,本質為文字生成任務,為此我們選用BART模型,並採用SynGEC融合語法結構,來進一步的提高模型的糾錯能力,程式碼詳見:https://github.com/HillZhang1999/NaSGEC,訓練資料如下圖所示:
BART模型如下,BERT模型的預訓練方法是透過加入噪聲,隨機將token替換成[MASK]、隨機刪去token、隨機將一段連續的token(稱作span)替換成一個[MASK]、將一個document的句子打亂、將一個document的句子打亂,其中隨機刪除跟糾錯的少詞很類似、句子打亂跟糾錯的語序不當很類似,因此採用BART作為預訓練模型是最好的,因為BART本身就具有一定的糾錯能力。
任務三是中小學作文流暢性評級,也是分類任務,採用NEZHA模型進行微調,並採用FGM、K折等方法來增加模型的魯棒性,訓練資料如下:
Nezha模型如下,相關論文連結:https://arxiv.org/abs/1909.00204
補充:NEZHA 模型相比於BERT模型,在一些方面的改進:完全函式式的相對位置編碼、詞的MASK、Span預測任務、混合精度訓練和LAMB最佳化器