色屁屁www影院免费观看入口,欧美性猛交ⅹxxx乱大交妖精,欧美激情第5页,欧美性猛交xxxx三人,欧美一a级做爰片大开眼界

達(dá)觀動(dòng)態(tài)

達(dá)觀愿與業(yè)內(nèi)同行分享 助力各企業(yè)在大數(shù)據(jù)浪潮來(lái)臨之際一起破浪前行

文字語(yǔ)義糾錯(cuò)技術(shù)探索與實(shí)踐-張健

? 背景? ??

文本語(yǔ)義糾錯(cuò)的使用場(chǎng)景非常廣泛,基本上只要涉及到寫(xiě)作就有文本糾錯(cuò)的需求。書(shū)籍面市前就有獨(dú)立的校對(duì)的環(huán)節(jié)來(lái)保障出版之后不出現(xiàn)明顯的問(wèn)題。在新聞中我們也時(shí)不時(shí)看到因?yàn)槲淖謱徍藳](méi)到位造成大烏龍的情況,包括上市公司在公開(kāi)文書(shū)上把“臨時(shí)大會(huì)”寫(xiě)成為“臨死大會(huì)”,政府文件把“報(bào)效國(guó)家”寫(xiě)成了“報(bào)銷國(guó)家”。有關(guān)文本糾錯(cuò)的輔助工具能給文字工作人員帶來(lái)較大的便利,對(duì)審核方面的風(fēng)險(xiǎn)也大幅降低。

除了不同的寫(xiě)作場(chǎng)景,文本糾錯(cuò)還會(huì)用在其他一些智能處理系統(tǒng)中,具體的情況包括:音頻通話記錄經(jīng)過(guò)自動(dòng)語(yǔ)音識(shí)別(ASR)轉(zhuǎn)寫(xiě)成文本之后,存在一些轉(zhuǎn)譯錯(cuò)誤;光學(xué)字符識(shí)別(OCR)系統(tǒng)識(shí)別圖片中的文字并進(jìn)行提取,會(huì)存在字符識(shí)別錯(cuò)誤;在搜索引擎或自動(dòng)問(wèn)答系統(tǒng)里面,用戶在查詢過(guò)程中的輸入錯(cuò)誤,往往會(huì)導(dǎo)致系統(tǒng)無(wú)法理解用戶的真實(shí)意圖,需要進(jìn)行查詢糾正改寫(xiě)。這些情況都需要通過(guò)文本糾錯(cuò)技術(shù)來(lái)進(jìn)行修正,使產(chǎn)品整體的用戶體驗(yàn)更加友好。

文本語(yǔ)義糾錯(cuò)在學(xué)術(shù)領(lǐng)域有三個(gè)子任務(wù),分別是拼寫(xiě)檢查(Spelling Check)、語(yǔ)法檢錯(cuò)(Grammatical Error Detection)和語(yǔ)法糾錯(cuò)(Grammatical Error Correction)。其中語(yǔ)法檢錯(cuò)是對(duì)文本中的語(yǔ)法錯(cuò)誤進(jìn)行檢測(cè),拼寫(xiě)檢查是對(duì)文本中的錯(cuò)別字進(jìn)行修正,語(yǔ)法糾錯(cuò)是糾正文本中的語(yǔ)法錯(cuò)誤。拼寫(xiě)檢查在英文場(chǎng)景表現(xiàn)為單詞拼寫(xiě)錯(cuò)誤,在中文場(chǎng)景表現(xiàn)為音近形近錯(cuò)別字。而語(yǔ)法糾錯(cuò)除此之外,還包括字詞缺失、字詞冗余、字詞使用不當(dāng)、語(yǔ)序不當(dāng)?shù)儒e(cuò)誤類型。語(yǔ)法糾錯(cuò)區(qū)別于拼寫(xiě)檢查的一個(gè)顯著特點(diǎn)是,語(yǔ)法糾錯(cuò)糾正后的文本和原始文本的長(zhǎng)度不一定相等,而拼寫(xiě)檢查糾正前后的文本長(zhǎng)度都是保持一致的,這也決定了兩者的算法支持存在差異。一般來(lái)說(shuō),拼寫(xiě)檢查可以看作為語(yǔ)法糾錯(cuò)的一個(gè)任務(wù)子集。

我們對(duì)語(yǔ)法糾錯(cuò)的問(wèn)題作一下形式化定義,輸入的原始文本定義為X={x1,x2,…,xn};原始文本正確的糾正結(jié)果文本序列定義為Y={y1,y2,…,ym},算法預(yù)測(cè)輸出的文本,定義為P={p1,p2,…,pk}。

評(píng)估指標(biāo)?

在開(kāi)始我們的文本語(yǔ)義糾錯(cuò)算法探索之旅之前,我們先思考一個(gè)問(wèn)題,究竟怎么樣的模型表現(xiàn)才是公認(rèn)更有效的,這個(gè)好壞應(yīng)該從何種方式、如何量化地評(píng)估出來(lái)。這也是我們?cè)诮鉀Q其他所有類型的NLP任務(wù)都需要先考慮的問(wèn)題,這個(gè)問(wèn)題就是如何定義我們的評(píng)測(cè)指標(biāo)。下面羅列了糾錯(cuò)算法常用的一些評(píng)測(cè)指標(biāo):

01M2(MaxMatch)

M2指標(biāo)主要是通過(guò)計(jì)算輸出文本和原始文本之間的編輯集合G,然后與人工標(biāo)注的編輯集合E結(jié)合,計(jì)算準(zhǔn)確率、召回率、F0.5值(采用F0.5表示對(duì)準(zhǔn)確率更加關(guān)注)。這里的編輯理解為一個(gè)轉(zhuǎn)換動(dòng)作,經(jīng)過(guò)一組轉(zhuǎn)換動(dòng)作,可以完成原始文本到糾正文本的轉(zhuǎn)換,M2指標(biāo)定義形如:

F0.5=1.25*RP/(R+0.25P)

下表羅列了一組示例和計(jì)算過(guò)程:

表 1 糾錯(cuò)文本示例

其中編輯集合G={孜→自,書(shū)→書(shū)寫(xiě)},人工標(biāo)注編輯集合E={孜→自,俱→具,讀書(shū)→讀}

可以計(jì)算出來(lái):

P=1/2=0.5

R=1/3=0.33

F0.5=1.25*0.33*0.5/(0.33+0.25*0.5)=0.45

02?ERRANT

ERRANT[1]是升級(jí)版的M2。M2的局限性也比較明顯,依靠前置的人工標(biāo)注,有比較大的工作量,而且人工標(biāo)注編輯集合產(chǎn)生的方式可能不太一致,導(dǎo)致匹配不準(zhǔn)。ERRANT在生成標(biāo)準(zhǔn)答案的編輯集合和生成預(yù)測(cè)的編輯集合都采用了自動(dòng)判別的方式,同時(shí)支持了25種的錯(cuò)誤類型,輸出了更豐富維度的錯(cuò)誤報(bào)告信息。缺點(diǎn)是該工具面向英文,中文需要做較大改造。

03面向標(biāo)注形態(tài)的其他指標(biāo)

上述兩者在處理糾錯(cuò)任務(wù)評(píng)測(cè)時(shí)存在一些缺點(diǎn),包括M2不支持檢錯(cuò)性能評(píng)估,編輯不能正確反映合理糾錯(cuò)動(dòng)作等等。

我們會(huì)在一些學(xué)術(shù)評(píng)測(cè)上看到,根據(jù)對(duì)待糾文本進(jìn)行的錯(cuò)誤標(biāo)注類型來(lái)制定的評(píng)測(cè)指標(biāo)。下面舉了NLPCC2022語(yǔ)法糾錯(cuò)評(píng)測(cè)指標(biāo)為例,它對(duì)應(yīng)的錯(cuò)誤類型總共有贅余(Redundant Words,R)、遺漏(Missing Words,M)、誤用(Word Selection,S)、錯(cuò)序(Word Ordering Errors,W)四類,評(píng)估的維度包含以下方面:

  • 假陽(yáng)性(False Positive):正確句子被判包含錯(cuò)誤的比例。
  • 偵測(cè)層(Detective-level):對(duì)句子是否包含錯(cuò)誤做二分判斷。從句子是否有錯(cuò),判斷p/r/f1
  • 識(shí)別層(Identification-level):給出錯(cuò)誤點(diǎn)的錯(cuò)誤類型。按一個(gè)句子的錯(cuò)誤種類計(jì)算p/r/f1
  • 定位層(Position-level):對(duì)錯(cuò)誤點(diǎn)的位置和覆蓋范圍進(jìn)行判斷,以字符偏移量計(jì)。錯(cuò)誤位置是否對(duì)計(jì)算p/r/f1
  • 修正層(Correction-level):提交針對(duì)字符串誤用(S)和缺失(M)兩種錯(cuò)誤類型的修正詞語(yǔ)。修正詞語(yǔ)可以是一個(gè)詞,也可以是一個(gè)詞組。M/S的修正詞語(yǔ)角度

由于糾錯(cuò)任務(wù)本身的特殊性(同一個(gè)錯(cuò)誤的文本可以有多種正確的糾正答案,或者同一個(gè)位置可以采用不同的錯(cuò)誤類型進(jìn)行標(biāo)注),目前現(xiàn)存的評(píng)測(cè)指標(biāo)大都有其局限性,如何定義主客觀、統(tǒng)一、合理的語(yǔ)法糾錯(cuò)評(píng)測(cè)指標(biāo)仍然在不斷探討。

?公開(kāi)數(shù)據(jù)集

在確定了評(píng)估指標(biāo)之后,我們已經(jīng)確定了評(píng)判算法好壞的一個(gè)標(biāo)準(zhǔn)。鍋已經(jīng)端好,就等米下鍋了,數(shù)據(jù)對(duì)于算法研發(fā)人員來(lái)說(shuō)是必需品,一方面它是驗(yàn)證效果的信息來(lái)源,另一方面它是進(jìn)行模型構(gòu)建的訓(xùn)練語(yǔ)料。比較好的方式是從公開(kāi)的渠道獲取比較優(yōu)質(zhì)的標(biāo)注數(shù)據(jù)。目前公開(kāi)的中文語(yǔ)義糾錯(cuò)數(shù)據(jù)集包括NLPCC2018[2]、NLPTEA2020[3]、SIGHAN2015[4]等,較多是非母語(yǔ)學(xué)生學(xué)習(xí)漢語(yǔ)收集得來(lái)的語(yǔ)料集,訓(xùn)練和驗(yàn)證的數(shù)據(jù)標(biāo)注形式如圖所示:

圖1 公開(kāi)數(shù)據(jù)集(NLPTEA2020、NLPCC2020和SIGHAN2015)

無(wú)監(jiān)督方法

文本語(yǔ)義糾錯(cuò)的算法整體可以分成無(wú)監(jiān)督和有監(jiān)督的兩種方式,我們先從無(wú)監(jiān)督的方法開(kāi)始看。無(wú)監(jiān)督方法的核心是如何構(gòu)建一個(gè)好用的語(yǔ)言模型,并且用在糾錯(cuò)的任務(wù)上。對(duì)于NLPer來(lái)說(shuō),我們經(jīng)歷了太多的預(yù)訓(xùn)練語(yǔ)言模型,像BERT、XLNet、GPT3等等,其本質(zhì)還是語(yǔ)言模型或者說(shuō)經(jīng)典語(yǔ)言模型的一些變種。語(yǔ)言模型實(shí)際上是對(duì)文本序列的概率分布進(jìn)行建模,通俗地來(lái)表達(dá),語(yǔ)言模型是判斷一句話是不是符合常理,或者說(shuō)話應(yīng)該怎么說(shuō)才合理(符合概率分布)。這個(gè)正好就對(duì)應(yīng)上了糾錯(cuò)任務(wù)的本質(zhì)需求,我們從最經(jīng)典的N元語(yǔ)言模型開(kāi)始來(lái)介紹一下語(yǔ)法糾錯(cuò)的處理邏輯。

01n元語(yǔ)言模型

一個(gè)語(yǔ)言模型構(gòu)建字符串的概率分布p(W),假設(shè)p(W)是字符串作為句子的概率,則概率由下邊的公式計(jì)算:

但是這樣去計(jì)算句子概率會(huì)導(dǎo)致龐大的計(jì)算量,導(dǎo)致根據(jù)馬爾科夫假設(shè),一個(gè)詞只和他前面n-1個(gè)詞相關(guān)性最高,這就是n元語(yǔ)法模型,簡(jiǎn)化后的計(jì)算公式為:

在得到這個(gè)結(jié)論之后,我們嘗試使用N元語(yǔ)言模型來(lái)解決拼寫(xiě)檢查的問(wèn)題。

假設(shè)我們采用的是5元語(yǔ)言模型,訓(xùn)練階段使用大量的語(yǔ)料來(lái)進(jìn)行統(tǒng)計(jì)所有的p(w5|w1w2w3w4)并存儲(chǔ)起來(lái)。在預(yù)測(cè)階段,設(shè)定待糾正的文本序列為W={w1,w2,…,wn},針對(duì)每個(gè)位置的wk,我們通過(guò)預(yù)先構(gòu)建好的混淆集獲得w的音近形近字wk’。

然后通過(guò)上述公式分別計(jì)算原始文本和修改文本的句子概率P(w1…wk…wn)、P(w1…wk’…wn)。如果P(w1…wk’…wn)>P(w1…wk…wn),則說(shuō)明修改后文本的通順度提升(概率升高),可以接受該糾正修改(wk替換為wk’)。

從而我們的糾錯(cuò)執(zhí)行過(guò)程則包含如下:

  • 計(jì)算輸入句子的歸一化對(duì)數(shù)概率,并且為句子的每個(gè)字構(gòu)建一個(gè)混淆集合;
  • 對(duì)句子每個(gè)字針對(duì)其不同混淆字重新打分,應(yīng)用單個(gè)最佳進(jìn)行校正,將概率提高到當(dāng)前最高值以上;
  • 重復(fù)上面過(guò)程直至概率沒(méi)變化。

圖2?N元語(yǔ)言模型糾錯(cuò)執(zhí)行計(jì)算過(guò)程

上述過(guò)程比較好理解,同時(shí)可以明顯看出來(lái)一些硬傷,包括會(huì)OOV(未登錄詞)問(wèn)題導(dǎo)致語(yǔ)言模型計(jì)算出來(lái)的概率為0;模型會(huì)過(guò)分優(yōu)待高頻短串,或者忽視低頻短串。這時(shí)候需要通過(guò)平滑技術(shù)來(lái)改善概率算法,典型平滑方法包含Add-one、Interpolation和Modified Kneser-ney等。此外,仍有些難以通過(guò)技術(shù)手段解決的問(wèn)題,包括上下文范圍局限較大(n 的增加會(huì)導(dǎo)致計(jì)算和資源消耗成倍增加)和缺少泛化(缺乏實(shí)際予以的理解),此時(shí)需要引入基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型。

02基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型

比較經(jīng)典的基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型,數(shù)學(xué)表達(dá)式可以寫(xiě)為:

以k元文法為例,把前k-1個(gè)詞作為特征,用softmax預(yù)測(cè)最后一個(gè)詞。

一般基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型設(shè)計(jì)得更加復(fù)雜,會(huì)把上下文的信息形成特征,來(lái)預(yù)測(cè)當(dāng)中的每一個(gè)詞。定義基于上下文context下wi的預(yù)測(cè)概率為P(wi|context_i),句子的概率可以表示為:

方法[5]就是采用了BERT和GPT作為基礎(chǔ)的語(yǔ)言模型來(lái)計(jì)算句子的概率。

有監(jiān)督方法

無(wú)監(jiān)督的糾錯(cuò)算法在處理文本時(shí)存在以下弱點(diǎn):容易受局部高頻或低頻的序列影響,效果不夠穩(wěn)定;在需要對(duì)準(zhǔn)確率和召回率進(jìn)行平衡調(diào)整時(shí),不太好通過(guò)閾值的方式進(jìn)行控制;可以較好應(yīng)用在拼寫(xiě)檢查的任務(wù)上,但是對(duì)于句子長(zhǎng)度有變化的語(yǔ)法糾錯(cuò)任務(wù)支持就比較弱。此時(shí)需要使用有監(jiān)督算法來(lái)作為實(shí)現(xiàn)手段。

01NMT/Seq2Seq

解決字詞冗余/缺失這類糾錯(cuò)前后句子長(zhǎng)度有變化的任務(wù),我們第一感覺(jué)就想起可以通過(guò)文本生成的方式來(lái)訓(xùn)練對(duì)應(yīng)的模型實(shí)現(xiàn)該功能。而且語(yǔ)法糾錯(cuò)任務(wù)和文本生成任務(wù)的形態(tài)基本上是一致的,也導(dǎo)致了文本生成模型很自然地被研究者注意,引入到語(yǔ)法糾錯(cuò)的任務(wù)領(lǐng)域。

NMT-based GEC[6]是第一篇通過(guò)使用神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯來(lái)實(shí)現(xiàn)語(yǔ)法糾錯(cuò)的文章。2014年seq2seq模型一提出即引發(fā)了較大反響,后續(xù)seq2seq成為了文本生成的主流結(jié)構(gòu)。seq2seq將一個(gè)作為輸入的序列映射為一個(gè)作為輸出的序列,這一過(guò)程由編碼(Encoder)輸入與解碼(Decoder)輸出兩個(gè)環(huán)節(jié)組成, 前者負(fù)責(zé)把序列編碼成一個(gè)固定長(zhǎng)度的向量,這個(gè)向量作為輸入傳給后者,輸出可變長(zhǎng)度的向量。下圖展現(xiàn)了一個(gè)基礎(chǔ)的seq2seq結(jié)構(gòu)。

圖3? seq2seq結(jié)構(gòu)

方法[7]使用了經(jīng)典的Encoder-Decoder模型結(jié)構(gòu)來(lái)解決中文語(yǔ)法糾錯(cuò)問(wèn)題,嵌入層使用了特殊的嵌入表示,同時(shí)在編碼層使用了卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)化了糾錯(cuò)的局部性,具體的模型結(jié)構(gòu)如下:

圖4 Encoder-Decoder結(jié)構(gòu)糾錯(cuò)模型

02?LaserTagger

由于書(shū)寫(xiě)錯(cuò)誤的出現(xiàn)概率普遍不高,糾錯(cuò)任務(wù)本身的輸入輸出存在大量重疊(基本不用改),所以大多數(shù)文本可以保持不變。但是我們?cè)谕ㄟ^(guò)seq2seq的方式進(jìn)行實(shí)現(xiàn)時(shí),對(duì)于正常的字符也要全部進(jìn)行預(yù)測(cè),造成效率非常低下。因此谷歌在EMNLP 2019提出了LaserTagger,在使用Encoder-Decoder的模型結(jié)構(gòu)條件下,把預(yù)測(cè)的內(nèi)容從文字變成了編輯操作類型。lasertagger其模型結(jié)構(gòu)(采用BERT作為編碼層、自回歸Transformer作為解碼層)如下所示:

圖5 LaserTagger糾錯(cuò)模型

編輯操作類型包含Keep(將單詞復(fù)制到輸出中),Delete(刪除單詞)和Add(在之前添加短語(yǔ)X),其中被添加的短語(yǔ)來(lái)自一個(gè)受限的詞匯表。
通過(guò)結(jié)構(gòu)的改造,lasertagger體現(xiàn)了推理速度快和樣本訓(xùn)練效率高的有點(diǎn)。因?yàn)轭A(yù)測(cè)的類型只有三種,相對(duì)于seq2seq而言,解碼的空間大幅降低,推理性能提升明顯,相對(duì)于BERT+seq2seq的模型結(jié)構(gòu),larserTagger的性能提升接近100倍。同時(shí)因?yàn)轭A(yù)測(cè)的內(nèi)容求解空間也大幅降低,所以對(duì)樣本的需求量也大幅減少,在1000份的樣本下也能取得不錯(cuò)的效果。

03?PIE

與LaserTagger同年提出來(lái)的PIE(Parallel Iterative Edit Models)[8]同樣是針對(duì)seq2seq 生成文本的可控性較差,推理速度也比較慢的問(wèn)題進(jìn)行來(lái)改進(jìn)。與LarserTagger類似,PIE構(gòu)造模型來(lái)對(duì)編輯操作進(jìn)行預(yù)測(cè),不過(guò)編輯操作的類型稍有區(qū)別,多了一個(gè)替換(replace)和詞性變換(面向英文)。在處理替換和添加操作時(shí),PIE將BERT編碼層進(jìn)行了擴(kuò)展來(lái)支持替換和添加的信息輸入,采用了一個(gè)雙層的雙向transformer,結(jié)構(gòu)如下所示:

圖6 PIE糾錯(cuò)模型

上圖表示了一個(gè)長(zhǎng)度為3的文本輸入(x1,x2,x3)。在最底層的輸入層,M表示mask標(biāo)識(shí)符的嵌入向量,p表示位置嵌入,x表示詞嵌入。在中間層和輸出層,r表示對(duì)應(yīng)位置的替換信息,h表示對(duì)應(yīng)位置的的原始信息,a表示對(duì)應(yīng)位置的插入信息。之后利用三類信息來(lái)分別計(jì)算不同操作的概率,并歸一化,CARDT 分別代表復(fù)制、插入、替換、刪除、詞形變換,計(jì)算公式如下:

糾錯(cuò)過(guò)程中,PIE模型輸出概率最高的編輯操作,完成修改后再迭代地進(jìn)行預(yù)測(cè),直至句子不發(fā)生改變后停止。

PIE定義的結(jié)構(gòu)可以實(shí)現(xiàn)在并行解碼的同時(shí)保持較高的準(zhǔn)確率,它在這篇文章第一次提出了seq2edit的概念。

04?GECToR

GECToR[9]提出了一種序列標(biāo)注模型,編碼層由預(yù)訓(xùn)練的 BERT 型 transformer 組成,上面堆疊兩個(gè)線性層,頂部有 softmax 層。模型輸出的標(biāo)簽包含了基本變換和g-變換兩種類型。其中基本變換包含保留(KEEP)、刪除(DELETE)、添加(APPEND)和替換(REPLACE)。g-變換主要面向英文,針對(duì)了英語(yǔ)的語(yǔ)法變化總結(jié)出了5大類(大小寫(xiě)、單詞合并、單詞拆分、單復(fù)數(shù)和時(shí)態(tài))29個(gè)小類的狀態(tài)變換。

GECToR另外兩個(gè)亮點(diǎn)是引入了不同的預(yù)訓(xùn)練Transformer解碼器(包括XLNet、RoBERTa、ALBERT、BERT和GPT-2)并進(jìn)行了比較,以及采用了三階段的訓(xùn)練方式。第一階段使用了大量(九百萬(wàn))實(shí)驗(yàn)合成的包含語(yǔ)法錯(cuò)誤+語(yǔ)法正確的句子對(duì)進(jìn)行預(yù)訓(xùn)練,第二階段使用了少量的公開(kāi)糾錯(cuò)數(shù)據(jù)集的句子對(duì)進(jìn)行Fine-tuning,第三階段使用了語(yǔ)法錯(cuò)誤+正確和語(yǔ)法正確+正確的句子對(duì)來(lái)進(jìn)行Fine-tuning,實(shí)驗(yàn)證明第三階段的Fine-tuning有效果提升。

在預(yù)測(cè)階段,GECToR也是采用了多輪預(yù)測(cè)的方案。

05?PLOME

PLOME[10]在2021ACL發(fā)表,是針對(duì)中文文本糾錯(cuò)任務(wù)構(gòu)建的預(yù)訓(xùn)練語(yǔ)言模型,結(jié)構(gòu)和BERT比較類似(12層Transformer)。PLOME的創(chuàng)新點(diǎn)主要在于采用了基于混淆集的掩碼策略、把拼音和字形信息作為模型輸入以及把字符和拼音的預(yù)測(cè)任務(wù)作為了模型的訓(xùn)練和微調(diào)目標(biāo)。

PLOME的掩碼策略主要是基于以下4種:字音混淆詞替換(Phonic Masking)、字形混淆詞替換(Shape Masking)、隨機(jī)替換(Random Masking)、原詞不變(Unchanging)。PLOME的掩碼策略同樣僅遮蓋15%的token,且4種MASK策略占比分別為: 60% 、15%、10%、15%。

詞嵌入模塊方面,PLOME采用了字符嵌入(character embedding)、位置嵌入( position embedding)、語(yǔ)音嵌入(phonic embedding)和形狀嵌入(shape embedding)。其中,字符嵌入和位置嵌入與BERT的輸入一致。其中構(gòu)建語(yǔ)音嵌入時(shí),使用Unihan數(shù)據(jù)庫(kù)得到字符-拼音的映射表(不考慮音調(diào)), 然后將每一個(gè)字的多個(gè)拼音字母序列輸入到GRU網(wǎng)絡(luò)中,得到該字的拼音嵌入向量。同樣,構(gòu)建字形嵌入時(shí),使用Chaizi數(shù)據(jù)庫(kù)得到字形的筆畫(huà)順序,然后將字形的筆畫(huà)順序序列輸入到GRU網(wǎng)絡(luò)中,得到該字的字形嵌入向量。

在訓(xùn)練任務(wù)方面,PLOME訓(xùn)練了2個(gè)任務(wù),字符預(yù)測(cè)和BERT一樣,增加了拼音的預(yù)測(cè),預(yù)測(cè)被替換詞的正確發(fā)音,更夠更好解決同音和音近錯(cuò)誤。

PLOME預(yù)訓(xùn)練語(yǔ)言模型的下游任務(wù)主要是文本糾錯(cuò)任務(wù)。該任務(wù)的輸入是字符序列 ,輸出是預(yù)測(cè)的字符序列。該論文僅在拼寫(xiě)檢查任務(wù)上做了驗(yàn)證。

06?其他策略

(1)COPY機(jī)制

COPY機(jī)制同樣是利用目標(biāo)文本和源文本有大量重復(fù)這個(gè)特點(diǎn)。研究[11]提出了Copy-Augment的GEC模型,其主要思想是:在生成序列過(guò)程中,考慮兩個(gè)生成分布:分別是復(fù)制輸入序列中的詞語(yǔ)(0/1表示是否復(fù)制)的概率分布和從候選詞典中的詞語(yǔ)生成的概率分布。將兩者的概率分布加權(quán)求和作為最終生成的概率分布,進(jìn)而預(yù)測(cè)每一個(gè)時(shí)刻生成的詞語(yǔ)?;炯軜?gòu)如下:

圖7 COPY機(jī)制

該模型將簡(jiǎn)單的詞語(yǔ)復(fù)制任務(wù)交給了Copy機(jī)制,將模型結(jié)構(gòu)中的Attention等結(jié)構(gòu)更多地用來(lái)學(xué)習(xí)比較難的新詞生成,對(duì)訓(xùn)練更加可控。

(2)數(shù)據(jù)增強(qiáng)

數(shù)據(jù)增強(qiáng)可以通過(guò)基于規(guī)則和基于生成的方式實(shí)現(xiàn)。

基于規(guī)則這個(gè)比較簡(jiǎn)單,我們可以按照錯(cuò)誤的類型(字詞冗余、缺失、詞序錯(cuò)誤等)針對(duì)性地制定策略構(gòu)造包含語(yǔ)法錯(cuò)誤的樣本,然后扔到模型來(lái)進(jìn)行訓(xùn)練。不過(guò)基于規(guī)則的方式有點(diǎn)過(guò)于粗暴,很可能規(guī)則生成的錯(cuò)誤與實(shí)際產(chǎn)生的錯(cuò)誤差距比較大,或者比較不符合常規(guī)認(rèn)知。

第二種方式就是基于生成。最早基于生成的數(shù)據(jù)增強(qiáng)方式應(yīng)該是回譯法,就是將文本從一個(gè)語(yǔ)種翻譯到另外一個(gè)語(yǔ)種,然后再翻譯回來(lái),從而構(gòu)造了句子對(duì),這種數(shù)據(jù)增強(qiáng)形式針對(duì)正常的編輯寫(xiě)作可能不太有效,更加符合跨語(yǔ)言學(xué)習(xí)的用戶的錯(cuò)誤特點(diǎn)。另外有研究[12]結(jié)合了分類器和自編碼器來(lái)聯(lián)合訓(xùn)練,達(dá)到生成固定類型錯(cuò)誤樣本的目的。而研究[13]通過(guò)對(duì)GEC模型進(jìn)行對(duì)抗攻擊,可以生成有價(jià)值的帶有語(yǔ)法錯(cuò)誤的句子,可以利用生成的句子訓(xùn)練GEC模型,提升性能的同時(shí)提升魯棒性。

處理難點(diǎn)與技術(shù)挑戰(zhàn)?

01語(yǔ)料收集

目前公開(kāi)的中文語(yǔ)義糾錯(cuò)數(shù)據(jù)集主要是不同母語(yǔ)的人學(xué)習(xí)漢語(yǔ)作為第二語(yǔ)言收集得來(lái)的語(yǔ)料集,目前大部分關(guān)于語(yǔ)法糾錯(cuò)的算法模型都是基于這些數(shù)據(jù)集來(lái)做效果驗(yàn)證的,不過(guò)我們實(shí)際中要處理的數(shù)據(jù)通常并不是同樣的形式誕生,更多是掌握漢語(yǔ)作為母語(yǔ)的人由于失誤導(dǎo)致的語(yǔ)法錯(cuò)誤,這種情況和公開(kāi)預(yù)料的情況差別比較大,錯(cuò)誤的分布差距也比較大,從而通過(guò)公開(kāi)語(yǔ)料集訓(xùn)練得來(lái)的模型在上線到正常的業(yè)務(wù)流程里面,效果通常都會(huì)比較一般。

02長(zhǎng)依賴

長(zhǎng)距離包括跨語(yǔ)句依賴在論文等文本中很常見(jiàn),一旦出現(xiàn)錯(cuò)誤,很難察覺(jué)并糾正。當(dāng)前語(yǔ)法研究大多集中在單個(gè)語(yǔ)句的語(yǔ)法檢查和糾錯(cuò),很少涉及長(zhǎng)距離語(yǔ)法問(wèn)題,相關(guān)數(shù)據(jù)集和模型方法缺失,是語(yǔ)法糾錯(cuò)的難題之一。

03模型的泛化能力與魯棒性

一般來(lái)說(shuō),不同行業(yè)、不同領(lǐng)域的文本在措辭運(yùn)用、表達(dá)習(xí)慣和專有名詞等方面都存在較大的差異。譬如說(shuō)政務(wù)機(jī)關(guān)紅頭文件非常嚴(yán)謹(jǐn)?shù)恼Z(yǔ)言表達(dá)和自媒體新聞相對(duì)較自由的文風(fēng)就有明顯的差別,又譬如金融行研報(bào)告和醫(yī)學(xué)論文在基本內(nèi)容和專業(yè)術(shù)語(yǔ)上也截然不同。在一個(gè)領(lǐng)域性能出色的糾錯(cuò)模型在切換到另外一個(gè)領(lǐng)域,往往效果下降明顯。如何提升模型的泛化能力和魯棒性,面臨著巨大的技術(shù)挑戰(zhàn)。

04效果指標(biāo)與體驗(yàn)的平衡

SOTA的指標(biāo)可以刷到,但是這些模型一旦介入實(shí)際場(chǎng)景的數(shù)據(jù),效果會(huì)差得一塌糊涂,這個(gè)一方面是由于模型和場(chǎng)景緊密相關(guān),另外一方面是,通常公開(kāi)數(shù)據(jù)集的錯(cuò)誤分布是呈高密度,但是實(shí)際場(chǎng)景是低密度,會(huì)容易導(dǎo)致非常高的誤判。譬如說(shuō)SOTA里面準(zhǔn)確率的指標(biāo)是80%,對(duì)于在低密度錯(cuò)誤的樣本中,很可能準(zhǔn)確率會(huì)下降到20~30%左右。糾錯(cuò)系統(tǒng)的體驗(yàn)會(huì)比較差。

05效果指標(biāo)與糾錯(cuò)性能的平衡

工業(yè)界往往會(huì)采用pipeline的方式,先對(duì)文本進(jìn)行檢錯(cuò),如果檢測(cè)出來(lái)有錯(cuò)誤,再對(duì)文本進(jìn)行糾錯(cuò)處理。但是這個(gè)檢錯(cuò)階段的錯(cuò)誤會(huì)傳遞到糾錯(cuò)階段,導(dǎo)致效果下降。如果直接走seq2seq或seq2edit的糾錯(cuò)模型,或者需要融合多種模型策略來(lái)生成最終糾錯(cuò)結(jié)果,糾錯(cuò)的性能會(huì)下降非???,部分實(shí)驗(yàn)3000字的糾錯(cuò)可能需要長(zhǎng)達(dá)40~60秒,這個(gè)無(wú)法處理大量并發(fā)的文本糾錯(cuò)需求。我們需要再效果和性能上取得平衡,或者有更好的方法在保障效果指標(biāo)的前提下提升糾錯(cuò)性能。

達(dá)觀在語(yǔ)義糾錯(cuò)方面的產(chǎn)品實(shí)踐?

達(dá)觀數(shù)據(jù)在語(yǔ)義糾錯(cuò)方面有比較深入的產(chǎn)品實(shí)踐,開(kāi)發(fā)出的投行質(zhì)控系統(tǒng)和公文智能處理系統(tǒng)均處理了相關(guān)場(chǎng)景。

達(dá)觀投行質(zhì)控系統(tǒng)基于深度學(xué)習(xí)、NLP(自然語(yǔ)言處理)算法,幫助用戶解決幾大文書(shū)審核場(chǎng)景,包括:文書(shū)格式糾錯(cuò),文字糾錯(cuò)和完整性審核;文檔目錄智能識(shí)別,一鍵定位:文檔條款內(nèi)容智能提取,方便業(yè)務(wù)人員對(duì)條款內(nèi)容進(jìn)行預(yù)審;支持文檔多版本的內(nèi)容比對(duì)等。

達(dá)觀智能公文處理系統(tǒng),嚴(yán)格遵循《黨政機(jī)關(guān)公文處理工作條例》和《黨政機(jī)關(guān)公文格式》規(guī)定,通過(guò)公文智能分析、公文知識(shí)庫(kù)引用、公文審校、公文排版、公文格式糾錯(cuò)、公文內(nèi)容語(yǔ)義糾錯(cuò)、公文在線比對(duì)修改等一體化的功能,實(shí)現(xiàn)基礎(chǔ)字詞校對(duì)準(zhǔn)確率超90%、法律引用校驗(yàn)和公務(wù)文書(shū)完整性校對(duì)準(zhǔn)確率超95%,有力提升政府機(jī)關(guān)整體公文質(zhì)量,避免公文“帶病”發(fā)布情況,確保政府機(jī)關(guān)公信度。

參考文獻(xiàn):

[1] Korre K, Pavlopoulos J. Errant: Assessing and improving grammatical error type classification[C]//Proceedings of the The 4th Joint SIGHUM Workshop on Computational Linguistics for Cultural Heritage, Social Sciences, Humanities and Literature. 2020: 85-89.

[2] Zhao Y, Jiang N, Sun W, et al. Overview of the nlpcc 2018 shared task: Grammatical error correction[C]//CCF International Conference on Natural Language Processing and Chinese Computing. Springer, Cham, 2018: 439-445.

[3] Rao G, Yang E, Zhang B. Overview of NLPTEA-2020 shared task for Chinese grammatical error diagnosis[C]//Proceedings of the 6th Workshop on Natural Language Processing Techniques for Educational Applications. 2020: 25-35.

[4] Tseng Y H, Lee L H, Chang L P, et al. Introduction to SIGHAN 2015 bake-off for Chinese spelling check[C]//Proceedings of the Eighth SIGHAN Workshop on Chinese Language Processing. 2015: 32-37.

[5] Alikaniotis D, Raheja V. The unreasonable effectiveness of transformer language models in grammatical error correction[J]. arXiv preprint arXiv:1906.01733, 2019.

[6] Yuan Z, Briscoe T. Grammatical error correction using neural machine translation[C]//Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016: 380-386.

[7] Ren H, Yang L, Xun E. A sequence to sequence learning for Chinese grammatical error correction[C]//CCF International Conference on Natural Language Processing and Chinese Computing. Springer, Cham, 2018: 401-410.

[8] Awasthi A, Sarawagi S, Goyal R, et al. Parallel iterative edit models for local sequence transduction[J]. arXiv preprint arXiv:1910.02893, 2019.

[9] Omelianchuk K, Atrasevych V, Chernodub A, et al. GECToR–grammatical error correction: tag, not rewrite[J]. arXiv preprint arXiv:2005.12592, 2020.

[10] Liu S, Yang T, Yue T, et al. PLOME: Pre-training with misspelled knowledge for Chinese spelling correction[C]//Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers). 2021: 2991-3000.

[11] Zhao W, Wang L, Shen K, et al. Improving grammatical error correction via pre-training a copy-augmented architecture with unlabeled data[J]. arXiv preprint arXiv:1903.00138, 2019.

[12] Wan Z, Wan X, Wang W. Improving grammatical error correction with data augmentation by editing latent representation[C]//Proceedings of the 28th International Conference on Computational Linguistics. 2020: 2202-2212.

[13] Wang L, Zheng X. Improving grammatical error correction models with purpose-built adversarial examples[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020: 2858-2869.

作者簡(jiǎn)介

張健,達(dá)觀數(shù)據(jù)聯(lián)合創(chuàng)始人,復(fù)旦大學(xué)計(jì)算機(jī)軟件與理論碩士,曾就職于盛大集團(tuán)和騰訊文學(xué),擔(dān)任人工智能和大數(shù)據(jù)技術(shù)專家職位。目前擔(dān)任達(dá)觀數(shù)據(jù)文本應(yīng)用部總負(fù)責(zé)人,對(duì)于機(jī)器學(xué)習(xí)算法和自然語(yǔ)言處理領(lǐng)域的研發(fā)有豐富的實(shí)踐經(jīng)驗(yàn)和技術(shù)積累,負(fù)責(zé)客戶意見(jiàn)洞察系統(tǒng)、智能客服工單分析系統(tǒng)、文本語(yǔ)義糾錯(cuò)系統(tǒng)、事件分析平臺(tái)、文本智能審核系統(tǒng)等多個(gè)文本應(yīng)用產(chǎn)品的開(kāi)發(fā)和落地。榮獲上海市浦東新區(qū)科學(xué)技獎(jiǎng)、“2021上??萍记嗄?5人引領(lǐng)計(jì)劃”、上海市青年科技啟明星等多個(gè)獎(jiǎng)項(xiàng)。