文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190221
中文引用格式: 龔永罡,,吳萌,廉小親,,等. 基于Seq2Seq與Bi-LSTM的中文文本自動(dòng)校對(duì)模型[J].電子技術(shù)應(yīng)用,,2020,46(3):42-46.
英文引用格式: Gong Yonggang,,Wu Meng,,Lian Xiaoqin,et al. Chinese text automatic proofreading model based on Seq2Seq and Bi-LSTM[J]. Application of Electronic Technique,,2020,,46(3):42-46.
0 引言
隨著出版行業(yè)電子化的不斷發(fā)展,,其中中文文本校對(duì)環(huán)節(jié)的任務(wù)越來(lái)越重,,使用傳統(tǒng)的人工校對(duì)顯然無(wú)法滿(mǎn)足需求。因此,,中文文本自動(dòng)校對(duì)技術(shù)的發(fā)展就顯得尤其重要,。
本文采用深度學(xué)習(xí)中的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)進(jìn)行文本自動(dòng)校對(duì)。其特點(diǎn)是能處理任意長(zhǎng)度的輸入和輸出序列,,因此被廣泛應(yīng)用在自然語(yǔ)言處理(Natural Language Processing)任務(wù)中,。在機(jī)器翻譯任務(wù)上,,CHO K等在2014年發(fā)表的論文[1]中首次提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的Seq2Seq模型,并且在多個(gè)自然語(yǔ)言處理問(wèn)題上取得突破,。因此,,Seq2Seq模型的提出為文本校對(duì)領(lǐng)域的研究提供了一種新的思路與方法。
目前,,基于深度學(xué)習(xí)的中文文本自動(dòng)校對(duì)技術(shù)的研究仍處于起步階段,,本文著重研究了基于Seq2Seq模型與BiRNN網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)的網(wǎng)絡(luò)模型,使其適用于中文文本校對(duì)問(wèn)題,,為中文文本校對(duì)領(lǐng)域提供了一種新的方法,。
1 背景
1.1 中文文本校對(duì)的研究現(xiàn)狀
目前,國(guó)內(nèi)在中文文本校對(duì)方面的研究主要采用以下3種方法:(1)基于拼音的中文文本校對(duì)[2],;(2)基于字的中文文本校對(duì)[3],;(3)基于上下文的中文文本校對(duì)[4]。這三種方法采用的校對(duì)規(guī)則又分為3類(lèi):(1)利用文本的特征,,如字形特征,、詞性特征或上下文特征,;(2)利用概率統(tǒng)計(jì)特性進(jìn)行上下文接續(xù)關(guān)系的分析[5],;(3)利用語(yǔ)言學(xué)知識(shí),如語(yǔ)法規(guī)則,、詞搭配規(guī)則等[6],。
1.2 Seq2Seq模型
基礎(chǔ)的Seq2Seq模型包含三部分,即Encoder端,、Decoder端以及連接兩者的中間狀態(tài)向量[7],。Encoder編碼器將輸入序列X=(x1,…,,xT)編碼成一個(gè)固定大小的狀態(tài)向量S傳給Decoder解碼器,,解碼器通過(guò)對(duì)S的學(xué)習(xí)生成輸出序列Y=(y1,…,,yK)[8],。解碼器主要基于中間狀態(tài)向量S以及前一時(shí)刻的輸出y(t-1)解碼得到該時(shí)刻t的輸出y(t)[9]。其結(jié)構(gòu)如圖1所示,。
1.3 Bidirectional-LSTM
LSTM(Long Short-Term Memory)是門(mén)控制循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,。標(biāo)準(zhǔn)的RNN網(wǎng)絡(luò)能夠存儲(chǔ)的信息很有限,并且輸入對(duì)于輸出的影響隨著網(wǎng)絡(luò)環(huán)路的不斷遞增而衰退[10],;而LSTM在面對(duì)較長(zhǎng)的序列時(shí),,依然能夠記住序列的全部信息。LSTM是一種擁有輸入門(mén),、遺忘門(mén),、輸出門(mén)3個(gè)門(mén)結(jié)構(gòu)的特殊網(wǎng)絡(luò)結(jié)構(gòu)[11],。LSTM通過(guò)這些門(mén)的結(jié)構(gòu)讓信息有選擇性地影響網(wǎng)絡(luò)中每個(gè)時(shí)刻的狀態(tài)[12]。LSTM的結(jié)構(gòu)如圖2所示,。
Bi-RNN克服了單向RNN當(dāng)前時(shí)刻的輸出與之后時(shí)刻的輸出無(wú)關(guān)的問(wèn)題[14],。在Bi-RNN中,將一個(gè)RNN網(wǎng)絡(luò)拆成了兩個(gè)方向,,不僅有從左向右的前向連接層,,還存在一個(gè)從右向左的反向連接層,這兩個(gè)連接層連接同一個(gè)輸出層,,從而在保證網(wǎng)絡(luò)可以處理較長(zhǎng)序列不發(fā)生遺忘的同時(shí),,又保證了能夠提供給輸出層輸入序列的完整上下文信息[15]。其結(jié)構(gòu)如圖3所示,。
2 模型的實(shí)現(xiàn)
2.1 數(shù)據(jù)預(yù)處理
模型的基本架構(gòu)是Seq2Seq模型,。在構(gòu)造模型之前,需要先對(duì)語(yǔ)料進(jìn)行預(yù)處理,,包括以下5個(gè)部分:加載數(shù)據(jù),;清洗數(shù)據(jù);切詞編碼,;分析統(tǒng)計(jì),;語(yǔ)料轉(zhuǎn)換。加載數(shù)據(jù)的時(shí)候需要對(duì)語(yǔ)料文本進(jìn)行切分,,以句子為單位,,即每一行代表一個(gè)完整的句子,以此讀入訓(xùn)練數(shù)據(jù),。切詞部分可以借助一些成熟的中文分詞工具,,如 jieba分詞。完成分詞再加載的過(guò)程中,,要注意同時(shí)清洗數(shù)據(jù),,去掉數(shù)字、特殊字符等[16],,再以詞為單位對(duì)其進(jìn)行編碼錄入詞庫(kù),。
完成詞庫(kù)到數(shù)字的映射之后,需再根據(jù)這種映射關(guān)系完成數(shù)字到詞庫(kù)的反映射,。分析數(shù)據(jù)是針對(duì)訓(xùn)練語(yǔ)料進(jìn)行統(tǒng)計(jì)性的描述,,了解訓(xùn)練數(shù)據(jù)的一些信息,例如:訓(xùn)練語(yǔ)句的個(gè)數(shù),、最長(zhǎng)與最短句含有的單詞數(shù),、訓(xùn)練語(yǔ)料構(gòu)成的詞庫(kù)中非重復(fù)詞的個(gè)數(shù)等。最后可按照句子從少到多進(jìn)行排列,,優(yōu)化訓(xùn)練過(guò)程[17],。
2.2 Bi-LSTM的Seq2Seq網(wǎng)絡(luò)模型
2.2.1 基本Seq2Seq結(jié)構(gòu)的局限性
在機(jī)器翻譯,、文摘生成等問(wèn)題上,基礎(chǔ)的Seq2Seq模型一直都有不錯(cuò)的表現(xiàn),,但是針對(duì)文本校對(duì)這類(lèi)問(wèn)題,,其結(jié)構(gòu)并不能直接被使用。Encoder將輸入編碼為固定大小狀態(tài)向量的過(guò)程首先是一個(gè)“信息有損壓縮”的過(guò)程,,如果信息量越大,,那么這個(gè)轉(zhuǎn)化向量的過(guò)程對(duì)信息的損失就越大,同時(shí),,隨著sequence length的增加,,意味著時(shí)間維度上的序列很長(zhǎng),RNN模型也會(huì)出現(xiàn)梯度彌散[18],。其次,,基礎(chǔ)的模型連接Encoder和Decoder模塊的組件僅僅是一個(gè)固定大小的狀態(tài)向量,這使得Decoder無(wú)法直接去關(guān)注到輸入信息的更多細(xì)節(jié)[10],。最后,,由于RNN網(wǎng)絡(luò)的特性,當(dāng)前時(shí)刻的輸出只與當(dāng)前時(shí)刻的輸入和之前的輸入有關(guān)[19],,因此模型對(duì)于信息的捕獲不夠完整,。
2.2.2 模型的構(gòu)建
校對(duì)模型由編碼端、解碼端組成,,編碼端是由LSTM單元組成的Bi-RNN網(wǎng)絡(luò),。在中文文本自動(dòng)校對(duì)中,,輸入序列是標(biāo)記為的完成分詞的中文語(yǔ)句文本,,其中上角標(biāo)j代表句子在語(yǔ)料庫(kù)中的位置,下角標(biāo)代表該詞在第i句中的位置,。文本中的每一個(gè)詞在輸入到LSTM網(wǎng)絡(luò)前要轉(zhuǎn)化成機(jī)器可識(shí)別的數(shù)字編碼,。由于LSTM只能處理定長(zhǎng)的數(shù)據(jù),因此需要保證輸入語(yǔ)料的長(zhǎng)度Tx保持固定,。通過(guò)預(yù)處理部分可以得到最長(zhǎng)句子的詞數(shù),,假設(shè)詞數(shù)Tx=20,則應(yīng)對(duì)不足20個(gè)詞長(zhǎng)的句子進(jìn)行<PAD>補(bǔ)全,。編碼端接收每一個(gè)中文詞語(yǔ)的數(shù)字形式和其上一個(gè)時(shí)間點(diǎn)的隱層狀態(tài),,由于采用Bi-RNN網(wǎng)絡(luò),輸出的是當(dāng)前時(shí)間點(diǎn)的隱層狀態(tài),,結(jié)構(gòu)如圖4所示,,其展示了兩個(gè)雙向的LSTM單元。
解碼端是一個(gè)帶注意力機(jī)制的RNN網(wǎng)絡(luò),,其在t時(shí)刻生成一個(gè)詞時(shí)可以利用到此前的全部上文信息,。解碼端接收目標(biāo)句子中上一個(gè)時(shí)間點(diǎn)的中文詞語(yǔ)和上一個(gè)時(shí)間點(diǎn)的隱層狀態(tài)與注意力機(jī)制產(chǎn)生的語(yǔ)義向量,,如圖5所示。
由于注意力機(jī)制的存在,,每個(gè)時(shí)刻生成詞時(shí)對(duì)輸入序列各個(gè)詞的關(guān)注程度是不一樣的,,因此編碼端在每個(gè)時(shí)刻給出的Ci是不一樣的。其計(jì)算公式如式(15)所示,。其中,,hj表示編碼端的第j個(gè)詞的隱層狀態(tài),αij表示編碼端的第j個(gè)詞與解碼端的第i個(gè)詞之間的權(quán)值,,其計(jì)算公式如式(16)所示,。在式(16)中,eij是一個(gè)softmax模型輸出,,概率值的和為1,。eij表示一個(gè)對(duì)齊模型,用于衡量編碼端的第j個(gè)詞相對(duì)于解碼端的第i個(gè)詞的對(duì)齊程度(影響程度),。對(duì)齊模型eij的計(jì)算方式如式(17)所示,。
eij的計(jì)算方法有很多種,不同的計(jì)算方式,,代表不同的Attention模型,,本文使用的是Soft Attention模型,它可以被嵌入到模型中去,,直接訓(xùn)練,。Soft Attention模型在求注意力分配概率的時(shí)候,對(duì)于輸入句子X(jué)中任意一個(gè)詞都給出概率,。結(jié)構(gòu)如圖6所示,。
圖6展示了在預(yù)測(cè)第t個(gè)時(shí)間段的輸出yt時(shí)的結(jié)構(gòu)。通過(guò)對(duì)Encoder層狀態(tài)的加權(quán),,從而掌握輸入語(yǔ)句中的所有細(xì)節(jié)信息,,最后將語(yǔ)義向量和解碼端的隱層狀態(tài)合拼起來(lái),計(jì)算最后的輸出概率,。
以“我愛(ài)機(jī)器學(xué)習(xí)”為例,,假設(shè)當(dāng)前時(shí)刻正準(zhǔn)備校對(duì)“機(jī)器”這個(gè)詞,此時(shí)需要計(jì)算語(yǔ)義向量,,如圖7所示,。
圖7中,St-1代表解碼端前一輪的隱層狀態(tài),,即代表了校對(duì)“機(jī)器上一個(gè)詞”階段的輸出隱層狀態(tài),;a1~a4分別代表了編碼端每個(gè)詞輸入到Bi-RNN后的隱層狀態(tài)。Attention根據(jù)每個(gè)Encoder輸出和Decoder的上一次隱層給出每個(gè)邊的得分,然后和上一次訓(xùn)練的預(yù)測(cè)值拼合到一起,,和Decoder端上一時(shí)刻的隱層作為輸入進(jìn)入當(dāng)前時(shí)刻的RNN,。
2.2.3 模型的訓(xùn)練與優(yōu)化
在完成了模型的構(gòu)建后,還需要構(gòu)造解碼端的訓(xùn)練與預(yù)測(cè)函數(shù),,并將訓(xùn)練與預(yù)測(cè)分開(kāi),。因?yàn)榻獯a器會(huì)將前一時(shí)刻的輸出作為當(dāng)前時(shí)刻的輸入,如果前一時(shí)刻的輸入不夠準(zhǔn)確,,那么就會(huì)影響后續(xù)的預(yù)測(cè),。所以在訓(xùn)練過(guò)程中,需要知道每一個(gè)輸入到網(wǎng)絡(luò)中的句子的正確形式,,進(jìn)而采用強(qiáng)制正確輸入來(lái)進(jìn)行訓(xùn)練,,這種方式叫做Teacher Forcing,如圖8所示,。
前面已經(jīng)介紹過(guò)解碼端某一時(shí)刻的概率分布,,所以對(duì)于全部的訓(xùn)練樣本,需要做的就是在整個(gè)訓(xùn)練樣本下,,所有樣本的P(y1,,…,yT|x1,,…,,xT)概率之和最大,最大化條件似然函數(shù),,得到最佳的校對(duì)結(jié)果,。模型使用grid search設(shè)計(jì),以便找到最佳架構(gòu)和超參數(shù)值,。
3 結(jié)果與分析
實(shí)驗(yàn)使用阿里云服務(wù)器GN2作為訓(xùn)練服務(wù)器,,使用TensorFlow框架,共進(jìn)行了4組實(shí)驗(yàn),,分別用來(lái)測(cè)試Seq2Seq,、BiRNNSeq2Seq、帶注意力機(jī)制的Seq2Seq以及與這兩者結(jié)合在一起的4種模型在中文文本校對(duì)中的性能,。實(shí)驗(yàn)所使用的數(shù)據(jù)集來(lái)源于2018 NLPCC共享的訓(xùn)練數(shù)據(jù)Task 2以及一部分搜狗實(shí)驗(yàn)室提供的開(kāi)源中文語(yǔ)料庫(kù),全部的數(shù)據(jù)集包含了1 327 608個(gè)句子對(duì),,分別用Src和Trg表示,,Src代表原句,既可能為正確的句子也可能為包含用詞錯(cuò)誤的句子,;Trg表示目標(biāo)輸出,,其均為對(duì)應(yīng)Src的正確句子,其中不包含驗(yàn)證集。將全部數(shù)據(jù)集按比例(99.5:0.5)隨機(jī)分成兩部分:一個(gè)驗(yàn)證集,,其中包含5 310個(gè)句子對(duì),,源句與目標(biāo)句子之間存在不一致;另一個(gè)訓(xùn)練集包含所有剩余的1 322 298個(gè)句子對(duì),。測(cè)試數(shù)據(jù)包含2 000個(gè)句子對(duì),。數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1所示。
表1展示了訓(xùn)練驗(yàn)證和測(cè)試數(shù)據(jù)的統(tǒng)計(jì),。.Src是指源錯(cuò)誤的句子,,.Trg是指目標(biāo)正確的句子。
為了合理客觀(guān)地評(píng)價(jià)模型,,實(shí)驗(yàn)采用廣泛使用的MaxMatch Scorer工具包進(jìn)行評(píng)估,。中文文本校對(duì)實(shí)驗(yàn)結(jié)果如表2所示,其中F0.5,、F1,、BLEU為評(píng)價(jià)分?jǐn)?shù)。
實(shí)驗(yàn)結(jié)果表明,,Bi-RNN以及注意力機(jī)制均有助于提升中文文本校對(duì)模型的性能,,并且二者結(jié)合起來(lái)可以進(jìn)一步改善系統(tǒng)的性能。由于模型的實(shí)驗(yàn)結(jié)果受數(shù)據(jù)量以及迭代次數(shù)的影響,,因此在此基礎(chǔ)上引入更多的數(shù)據(jù)做訓(xùn)練,,并且通過(guò)改善訓(xùn)練方法,如引入流暢度學(xué)習(xí),、推斷機(jī)制等進(jìn)一步提升模型校對(duì)的準(zhǔn)確率,。
4 結(jié)論
本文給出了基于Seq2Seq和Bi-LSTM設(shè)計(jì)的中文文本校對(duì)模型并且通過(guò)公開(kāi)的數(shù)據(jù)集全面驗(yàn)證了模型的性能。模型的核心內(nèi)容是在引入Bi-LSTM單元和注意力機(jī)制的同時(shí),,用Seq2Seq結(jié)構(gòu)網(wǎng)絡(luò)對(duì)中文語(yǔ)料庫(kù)進(jìn)行學(xué)習(xí),,挖掘詞與詞之間的關(guān)系,并以此作為中文文本校對(duì)的依據(jù),。雖然由于訓(xùn)練量的原因,,在結(jié)果上并未達(dá)到最好的效果,但是可以看出該模型在中文文本校對(duì)領(lǐng)域里具備了很大的潛力,,并可以擴(kuò)展應(yīng)用在多個(gè)中文自然語(yǔ)言處理領(lǐng)域,。
參考文獻(xiàn)
[1] CHO K,MERRIENBOER B,,GULCEHRE C.Learning phrase representations using RNN encoder–decoder for statistical machine translation[J].Computer Science,,2014(v1):52-55.
[2] 張仰森,俞士汶.文本自動(dòng)校對(duì)技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,,2006(6):8-12.
[3] 洛衛(wèi)華,,羅振聲.中文文本自動(dòng)校對(duì)技術(shù)的研究[J].計(jì)算機(jī)研究展,,2004,33(1):60-64.
[4] 劉亮亮,,曹存根.中文“非多字錯(cuò)誤”自動(dòng)校對(duì)方法研究[J].計(jì)算機(jī)科學(xué),,2016(10):34-39.
[5] 謝剛.知識(shí)圖譜精化研究綜述[J].電子技術(shù)應(yīng)用,2018,,44(9):29-38.
[6] DE FELICE R,,PULMAN S G.A classifier-based approach to preposition and determiner error correction in L2 English[C].Proceeding of the 22nd International Conference on Computational Linguistics.COLING 2008 22nd International Conference,2008:167-176.
[7] 吳巖,,李秀坤,,劉挺,等.中文自動(dòng)校對(duì)系統(tǒng)的研究與實(shí)現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),,2001(2):60-64.
[8] Chen Yongzhi,,WU S H,Yang Pingche,,et al.Improve the detection of improperly used Chinese characters in students essays with error model[J].International Journal of Continuing Engineering Education and Lifelong Learning,,2012(v1):93-97.
[9] 吳林,張仰森.基于知識(shí)庫(kù)的多層級(jí)中文文本查錯(cuò)推理模型[J].計(jì)算機(jī)工程,,2012,,38(20):21-25.
[10] 劉亮亮,王石,,王東升,,等.領(lǐng)域問(wèn)答系統(tǒng)中的文本錯(cuò)誤自動(dòng)發(fā)現(xiàn)方法[J].中文信息學(xué)報(bào),2013,,27(3):77-83.
[11] 張仰森,,唐安杰.面向政治新聞?lì)I(lǐng)域的中文文本校對(duì)方法研究[J].中文信息學(xué)報(bào),2014,,28(6):44-49.
[12] 字云飛,,李業(yè)麗,孫華艷.基于深度神經(jīng)網(wǎng)絡(luò)的個(gè)性化推薦系統(tǒng)研究[J].電子技術(shù)應(yīng)用,,2019,,45(1):14-18.
[13] TAN Y,YAO T,,CHEA Q,,et al.Applying conditional random fields to Chinese shallow parsing[C].Proceedings of Clcling-2005,Mexico City,,2005:167-176.
[14] KUDO T,,YAMAMOTO K,MATSUMOTO Y.Applying conditional random fields to japanese morphological analysis[C].Natural Language Processing(Emnlp-2004),,Barcelona,2004:230-237.
[15] 王潔,喬藝璇,,彭巖,,等.基于深度學(xué)習(xí)的美國(guó)媒體“一帶一路”輿情的情感分析[J].電子技術(shù)應(yīng)用,2018,,44(11):102-106.
[16] 潘吳,,顏車(chē).基于中文分詞的文本自動(dòng)校對(duì)算法[J].武漢理工大學(xué)學(xué)報(bào),2009,,31(3):18-20,,28.
[17] PINTO D,MCCALLUM A,,WEI X.Table extraction using conditional random fields[C].26th ACM SIGIR,,Canada,2003:235-242.
[18] 張仰森,,鄭佳.中文文本語(yǔ)義錯(cuò)誤偵測(cè)方法研究[J].計(jì)算機(jī)學(xué)報(bào),,2017(3):63-68.
[19] ZHOU G D,SU J.Named entity recognition using an HMM-based chunk tagger[C].Proceedings of the 40th Annual Meeting of the ACL′2002,,Philadelphia,,2002:473-480.
作者信息:
龔永罡,吳 萌,,廉小親,,裴晨晨
(北京工商大學(xué) 計(jì)算機(jī)與信息工程學(xué)院 食品安全大數(shù)據(jù)技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京100048)