NAACL 2019 通過語料增廣進行語法糾錯

2021-09-22 01:52:50 字數 1906 閱讀 5151

端到端序列模型(sequence-to-sequence framework)在最近幾年的語法糾錯(grammatical error correction,gec)任務上得到了普遍應用。然而,不像其他序列生成任務,如機器翻譯(mt),gec受限於不夠充分的平行語料不能很好的產生效果。本文提出了兩種通過增廣平行語料的方式來提公升gec模型的效果,在測試集上達到了新的state-of-the-art。

語法糾錯(grammatical error correction,gec)任務可以看作是從帶有語法錯誤的源語言到語法規範的目標語言的一種「翻譯」任務。這使得神經機器翻譯(nmt)模型可以被應用在語法糾錯任務上。然而,即使是最大的gec任務資料集lang-8,也僅只包含了約25m的詞語,對於nmt模型而言,gec完全是乙個低資源任務。因此,如何增強gec資料整合為了提公升效果的乙個關鍵。

文章使用的增廣語料來自於:1、維基百科的歷史更新記錄,一共包含170m的句子,4.1b的詞語;2、回環翻譯(round-trip translation)生成的語料,一共包含176m的句子,4.1b的詞語。

本文使用的原始訓練集包括:1、lang-8,一共包含1.9m的句子,25m的詞語;2、wiked,一共包含12m的句子,292m的詞語。**還公開了生成維基百科語料的指令碼。

本文使用的測試集來自:1、conll-2014,包含1312條測試句子,使用m

2m^2

m2revision.py

**提出了兩種語料增廣的方式。

1、使用來自於維基百科的歷史修改記錄作為增廣的語料。實驗者們拋棄了大於64mb的頁面,同時為了避免更改次數過大帶來的頁面冗餘,只挑選了log

1.5(n)

log_(n)

log1.5

​(n)

的頁面,其中n為總修改次數。對於挑選出來的頁面,採用對齊文字,剔除非文字元素,概率擷取的方式抽取語料。

2、使用來自於回環翻譯(rtt)的語料。使用在提取維基資料時拋棄的樣本作為rtt的啟動語料,目的是為了引入雜訊。原始語料y經過y-x和x-y的兩次翻譯得到新的語料y』,(y』, y)組成新的平行語料。為了進一步引入gec相關的錯誤,通過概率插入、刪除、替換的方式為rtt語料引入雜訊。

語料中的許多句子包含了不止乙個的語法錯誤,因此,單次解碼不能保證把所有的語法錯誤全部糾正過來。本文提出了乙個迭代解碼的演算法,使得模型有多次機會選擇高置信度的變換糾錯,直到找不到任何可以糾正的地方。演算法如下:

其中,cos

t(h)

=−lo

gp(h

∣s

)cost(h)=-logp(h|s)

cost(h

)=−l

ogp(

h∣s)

。**使用transformer模型作為gec任務的翻譯模型。模型在編碼端和解碼端各使用6層結構,embedding維度為1024,前饋網路ffn層維度為4096。模型採用a****ctor作為優化函式,學習率變化採用inverse squared root decay。和翻譯任務一樣,模型採用bpe分詞方式。

模型在維基百科資料集上訓練了5輪,batch大小約為64k。在初始10k步時,模型學習率固定為0.01,之後採用學習率遞減的方式繼續訓練。

在增廣資料集上訓練結束後,模型又繼續在lang-8標準資料集進行50輪的微調,學習率固定為3×1

0−

53\times10^

3×10−5

。**報道了在conll-2014和jfleg測試集上的表現。

語料增廣技術對於模型在低資源任務上的效果提公升有著非常重要的影響。**對如何進行高質量的語料增廣提出了兩種有效的方法。語料增廣技術不僅在gec任務上,在其他任務如翻譯任務上也有著至關重要的作用。另外,gec模型在服務於糾錯任務的同時,也可以作為一些自然語言生成任務的後處理模型使用,輔助這些任務產出更高質量的結果。在未來,或許會有越來越多的序列生成任務通過多個模型聯合協作來進行。

掃碼識別關注,獲取更多**解讀

100 通過zookeeper面試

1 zookeeper 的資料模型 zookeeper 的資料模型是什麼樣子呢?它很像資料結構當中的樹,也很像檔案系統的目錄。樹是由節點所組成,zookeeper 的資料儲存也同樣是基於節點,這種節點叫做 znode。但是,不同於樹的節點,znode 的引用方式是路徑引用,類似於檔案路徑 動物 倉鼠...

OCA 052 通過總結

2011 4 27 成功通過oca 052。成績 98 pass。今天去考的oca 052,去考場路上不知為何臨時來了場雷雨,把我澆的渾身都溼了,竟然這麼不走運。吸取上一門考試的教訓,總共通讀教材兩遍,並結合題庫,最後順利通過考試。現特將備考過程分享出來,希望能夠幫助同我一樣有考證需求的人。這一門的...

05 通過docker安裝tomcat

tomcat是一款最流行的伺服器。本文將闡述在docker當中安裝tomcat,並部署我們自己的專案。docker pull tomcat 建立宿主機子的路徑,用以對映docker安裝的tomcat所在的作業系統路徑 mkdir p root tomcat logs 啟動tomcat 檢視tomca...