文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190221
中文引用格式: 龔永罡,吳萌,,廉小親,,等. 基于Seq2Seq與Bi-LSTM的中文文本自動校對模型[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ā)展,,其中中文文本校對環(huán)節(jié)的任務(wù)越來越重,使用傳統(tǒng)的人工校對顯然無法滿足需求,。因此,,中文文本自動校對技術(shù)的發(fā)展就顯得尤其重要。
本文采用深度學(xué)習(xí)中的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)進(jìn)行文本自動校對,。其特點是能處理任意長度的輸入和輸出序列,,因此被廣泛應(yīng)用在自然語言處理(Natural Language Processing)任務(wù)中。在機(jī)器翻譯任務(wù)上,,CHO K等在2014年發(fā)表的論文[1]中首次提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)設(shè)計的Seq2Seq模型,,并且在多個自然語言處理問題上取得突破。因此,,Seq2Seq模型的提出為文本校對領(lǐng)域的研究提供了一種新的思路與方法,。
目前,基于深度學(xué)習(xí)的中文文本自動校對技術(shù)的研究仍處于起步階段,,本文著重研究了基于Seq2Seq模型與BiRNN網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)的網(wǎng)絡(luò)模型,,使其適用于中文文本校對問題,為中文文本校對領(lǐng)域提供了一種新的方法,。
1 背景
1.1 中文文本校對的研究現(xiàn)狀
目前,,國內(nèi)在中文文本校對方面的研究主要采用以下3種方法:(1)基于拼音的中文文本校對[2];(2)基于字的中文文本校對[3],;(3)基于上下文的中文文本校對[4],。這三種方法采用的校對規(guī)則又分為3類:(1)利用文本的特征,如字形特征,、詞性特征或上下文特征,;(2)利用概率統(tǒng)計特性進(jìn)行上下文接續(xù)關(guān)系的分析[5];(3)利用語言學(xué)知識,,如語法規(guī)則,、詞搭配規(guī)則等[6]。
1.2 Seq2Seq模型
基礎(chǔ)的Seq2Seq模型包含三部分,,即Encoder端,、Decoder端以及連接兩者的中間狀態(tài)向量[7]。Encoder編碼器將輸入序列X=(x1,,…,,xT)編碼成一個固定大小的狀態(tài)向量S傳給Decoder解碼器,,解碼器通過對S的學(xué)習(xí)生成輸出序列Y=(y1,…,,yK)[8],。解碼器主要基于中間狀態(tài)向量S以及前一時刻的輸出y(t-1)解碼得到該時刻t的輸出y(t)[9]。其結(jié)構(gòu)如圖1所示,。
1.3 Bidirectional-LSTM
LSTM(Long Short-Term Memory)是門控制循環(huán)神經(jīng)網(wǎng)絡(luò)的一種,。標(biāo)準(zhǔn)的RNN網(wǎng)絡(luò)能夠存儲的信息很有限,并且輸入對于輸出的影響隨著網(wǎng)絡(luò)環(huán)路的不斷遞增而衰退[10],;而LSTM在面對較長的序列時,,依然能夠記住序列的全部信息。LSTM是一種擁有輸入門,、遺忘門,、輸出門3個門結(jié)構(gòu)的特殊網(wǎng)絡(luò)結(jié)構(gòu)[11]。LSTM通過這些門的結(jié)構(gòu)讓信息有選擇性地影響網(wǎng)絡(luò)中每個時刻的狀態(tài)[12],。LSTM的結(jié)構(gòu)如圖2所示,。
Bi-RNN克服了單向RNN當(dāng)前時刻的輸出與之后時刻的輸出無關(guān)的問題[14]。在Bi-RNN中,,將一個RNN網(wǎng)絡(luò)拆成了兩個方向,,不僅有從左向右的前向連接層,還存在一個從右向左的反向連接層,,這兩個連接層連接同一個輸出層,,從而在保證網(wǎng)絡(luò)可以處理較長序列不發(fā)生遺忘的同時,又保證了能夠提供給輸出層輸入序列的完整上下文信息[15],。其結(jié)構(gòu)如圖3所示,。
2 模型的實現(xiàn)
2.1 數(shù)據(jù)預(yù)處理
模型的基本架構(gòu)是Seq2Seq模型。在構(gòu)造模型之前,,需要先對語料進(jìn)行預(yù)處理,,包括以下5個部分:加載數(shù)據(jù);清洗數(shù)據(jù),;切詞編碼,;分析統(tǒng)計;語料轉(zhuǎn)換,。加載數(shù)據(jù)的時候需要對語料文本進(jìn)行切分,,以句子為單位,即每一行代表一個完整的句子,,以此讀入訓(xùn)練數(shù)據(jù)。切詞部分可以借助一些成熟的中文分詞工具,,如 jieba分詞,。完成分詞再加載的過程中,,要注意同時清洗數(shù)據(jù),去掉數(shù)字,、特殊字符等[16],,再以詞為單位對其進(jìn)行編碼錄入詞庫。
完成詞庫到數(shù)字的映射之后,,需再根據(jù)這種映射關(guān)系完成數(shù)字到詞庫的反映射,。分析數(shù)據(jù)是針對訓(xùn)練語料進(jìn)行統(tǒng)計性的描述,了解訓(xùn)練數(shù)據(jù)的一些信息,,例如:訓(xùn)練語句的個數(shù),、最長與最短句含有的單詞數(shù)、訓(xùn)練語料構(gòu)成的詞庫中非重復(fù)詞的個數(shù)等,。最后可按照句子從少到多進(jìn)行排列,,優(yōu)化訓(xùn)練過程[17]。
2.2 Bi-LSTM的Seq2Seq網(wǎng)絡(luò)模型
2.2.1 基本Seq2Seq結(jié)構(gòu)的局限性
在機(jī)器翻譯,、文摘生成等問題上,,基礎(chǔ)的Seq2Seq模型一直都有不錯的表現(xiàn),但是針對文本校對這類問題,,其結(jié)構(gòu)并不能直接被使用,。Encoder將輸入編碼為固定大小狀態(tài)向量的過程首先是一個“信息有損壓縮”的過程,如果信息量越大,,那么這個轉(zhuǎn)化向量的過程對信息的損失就越大,,同時,隨著sequence length的增加,,意味著時間維度上的序列很長,,RNN模型也會出現(xiàn)梯度彌散[18]。其次,,基礎(chǔ)的模型連接Encoder和Decoder模塊的組件僅僅是一個固定大小的狀態(tài)向量,,這使得Decoder無法直接去關(guān)注到輸入信息的更多細(xì)節(jié)[10]。最后,,由于RNN網(wǎng)絡(luò)的特性,,當(dāng)前時刻的輸出只與當(dāng)前時刻的輸入和之前的輸入有關(guān)[19],因此模型對于信息的捕獲不夠完整,。
2.2.2 模型的構(gòu)建
校對模型由編碼端,、解碼端組成,編碼端是由LSTM單元組成的Bi-RNN網(wǎng)絡(luò),。在中文文本自動校對中,,輸入序列是標(biāo)記為的完成分詞的中文語句文本,其中上角標(biāo)j代表句子在語料庫中的位置,,下角標(biāo)代表該詞在第i句中的位置,。文本中的每一個詞在輸入到LSTM網(wǎng)絡(luò)前要轉(zhuǎn)化成機(jī)器可識別的數(shù)字編碼,。由于LSTM只能處理定長的數(shù)據(jù),因此需要保證輸入語料的長度Tx保持固定,。通過預(yù)處理部分可以得到最長句子的詞數(shù),,假設(shè)詞數(shù)Tx=20,則應(yīng)對不足20個詞長的句子進(jìn)行<PAD>補(bǔ)全,。編碼端接收每一個中文詞語的數(shù)字形式和其上一個時間點的隱層狀態(tài),,由于采用Bi-RNN網(wǎng)絡(luò),輸出的是當(dāng)前時間點的隱層狀態(tài),,結(jié)構(gòu)如圖4所示,,其展示了兩個雙向的LSTM單元。
解碼端是一個帶注意力機(jī)制的RNN網(wǎng)絡(luò),,其在t時刻生成一個詞時可以利用到此前的全部上文信息,。解碼端接收目標(biāo)句子中上一個時間點的中文詞語和上一個時間點的隱層狀態(tài)與注意力機(jī)制產(chǎn)生的語義向量,如圖5所示,。
由于注意力機(jī)制的存在,,每個時刻生成詞時對輸入序列各個詞的關(guān)注程度是不一樣的,因此編碼端在每個時刻給出的Ci是不一樣的,。其計算公式如式(15)所示,。其中,hj表示編碼端的第j個詞的隱層狀態(tài),,αij表示編碼端的第j個詞與解碼端的第i個詞之間的權(quán)值,,其計算公式如式(16)所示。在式(16)中,,eij是一個softmax模型輸出,,概率值的和為1。eij表示一個對齊模型,,用于衡量編碼端的第j個詞相對于解碼端的第i個詞的對齊程度(影響程度),。對齊模型eij的計算方式如式(17)所示。
eij的計算方法有很多種,,不同的計算方式,,代表不同的Attention模型,本文使用的是Soft Attention模型,,它可以被嵌入到模型中去,,直接訓(xùn)練。Soft Attention模型在求注意力分配概率的時候,,對于輸入句子X中任意一個詞都給出概率,。結(jié)構(gòu)如圖6所示。
圖6展示了在預(yù)測第t個時間段的輸出yt時的結(jié)構(gòu),。通過對Encoder層狀態(tài)的加權(quán),,從而掌握輸入語句中的所有細(xì)節(jié)信息,,最后將語義向量和解碼端的隱層狀態(tài)合拼起來,計算最后的輸出概率,。
以“我愛機(jī)器學(xué)習(xí)”為例,假設(shè)當(dāng)前時刻正準(zhǔn)備校對“機(jī)器”這個詞,,此時需要計算語義向量,,如圖7所示。
圖7中,,St-1代表解碼端前一輪的隱層狀態(tài),,即代表了校對“機(jī)器上一個詞”階段的輸出隱層狀態(tài);a1~a4分別代表了編碼端每個詞輸入到Bi-RNN后的隱層狀態(tài),。Attention根據(jù)每個Encoder輸出和Decoder的上一次隱層給出每個邊的得分,,然后和上一次訓(xùn)練的預(yù)測值拼合到一起,和Decoder端上一時刻的隱層作為輸入進(jìn)入當(dāng)前時刻的RNN,。
2.2.3 模型的訓(xùn)練與優(yōu)化
在完成了模型的構(gòu)建后,,還需要構(gòu)造解碼端的訓(xùn)練與預(yù)測函數(shù),并將訓(xùn)練與預(yù)測分開,。因為解碼器會將前一時刻的輸出作為當(dāng)前時刻的輸入,,如果前一時刻的輸入不夠準(zhǔn)確,那么就會影響后續(xù)的預(yù)測,。所以在訓(xùn)練過程中,,需要知道每一個輸入到網(wǎng)絡(luò)中的句子的正確形式,進(jìn)而采用強(qiáng)制正確輸入來進(jìn)行訓(xùn)練,,這種方式叫做Teacher Forcing,,如圖8所示。
前面已經(jīng)介紹過解碼端某一時刻的概率分布,,所以對于全部的訓(xùn)練樣本,,需要做的就是在整個訓(xùn)練樣本下,所有樣本的P(y1,,…,,yT|x1,…,,xT)概率之和最大,,最大化條件似然函數(shù),得到最佳的校對結(jié)果,。模型使用grid search設(shè)計,,以便找到最佳架構(gòu)和超參數(shù)值。
3 結(jié)果與分析
實驗使用阿里云服務(wù)器GN2作為訓(xùn)練服務(wù)器,,使用TensorFlow框架,,共進(jìn)行了4組實驗,,分別用來測試Seq2Seq、BiRNNSeq2Seq,、帶注意力機(jī)制的Seq2Seq以及與這兩者結(jié)合在一起的4種模型在中文文本校對中的性能,。實驗所使用的數(shù)據(jù)集來源于2018 NLPCC共享的訓(xùn)練數(shù)據(jù)Task 2以及一部分搜狗實驗室提供的開源中文語料庫,全部的數(shù)據(jù)集包含了1 327 608個句子對,,分別用Src和Trg表示,,Src代表原句,既可能為正確的句子也可能為包含用詞錯誤的句子,;Trg表示目標(biāo)輸出,,其均為對應(yīng)Src的正確句子,其中不包含驗證集,。將全部數(shù)據(jù)集按比例(99.5:0.5)隨機(jī)分成兩部分:一個驗證集,,其中包含5 310個句子對,源句與目標(biāo)句子之間存在不一致,;另一個訓(xùn)練集包含所有剩余的1 322 298個句子對,。測試數(shù)據(jù)包含2 000個句子對。數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)如表1所示,。
表1展示了訓(xùn)練驗證和測試數(shù)據(jù)的統(tǒng)計,。.Src是指源錯誤的句子,.Trg是指目標(biāo)正確的句子,。
為了合理客觀地評價模型,,實驗采用廣泛使用的MaxMatch Scorer工具包進(jìn)行評估。中文文本校對實驗結(jié)果如表2所示,,其中F0.5,、F1、BLEU為評價分?jǐn)?shù),。
實驗結(jié)果表明,,Bi-RNN以及注意力機(jī)制均有助于提升中文文本校對模型的性能,并且二者結(jié)合起來可以進(jìn)一步改善系統(tǒng)的性能,。由于模型的實驗結(jié)果受數(shù)據(jù)量以及迭代次數(shù)的影響,,因此在此基礎(chǔ)上引入更多的數(shù)據(jù)做訓(xùn)練,并且通過改善訓(xùn)練方法,,如引入流暢度學(xué)習(xí),、推斷機(jī)制等進(jìn)一步提升模型校對的準(zhǔn)確率。
4 結(jié)論
本文給出了基于Seq2Seq和Bi-LSTM設(shè)計的中文文本校對模型并且通過公開的數(shù)據(jù)集全面驗證了模型的性能,。模型的核心內(nèi)容是在引入Bi-LSTM單元和注意力機(jī)制的同時,,用Seq2Seq結(jié)構(gòu)網(wǎng)絡(luò)對中文語料庫進(jìn)行學(xué)習(xí),挖掘詞與詞之間的關(guān)系,并以此作為中文文本校對的依據(jù),。雖然由于訓(xùn)練量的原因,,在結(jié)果上并未達(dá)到最好的效果,但是可以看出該模型在中文文本校對領(lǐng)域里具備了很大的潛力,,并可以擴(kuò)展應(yīng)用在多個中文自然語言處理領(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] 張仰森,俞士汶.文本自動校對技術(shù)研究綜述[J].計算機(jī)應(yīng)用研究,,2006(6):8-12.
[3] 洛衛(wèi)華,羅振聲.中文文本自動校對技術(shù)的研究[J].計算機(jī)研究展,,2004,,33(1):60-64.
[4] 劉亮亮,曹存根.中文“非多字錯誤”自動校對方法研究[J].計算機(jī)科學(xué),,2016(10):34-39.
[5] 謝剛.知識圖譜精化研究綜述[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] 吳巖,李秀坤,,劉挺,,等.中文自動校對系統(tǒng)的研究與實現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報,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] 吳林,,張仰森.基于知識庫的多層級中文文本查錯推理模型[J].計算機(jī)工程,2012,,38(20):21-25.
[10] 劉亮亮,,王石,王東升,,等.領(lǐng)域問答系統(tǒng)中的文本錯誤自動發(fā)現(xiàn)方法[J].中文信息學(xué)報,,2013,27(3):77-83.
[11] 張仰森,,唐安杰.面向政治新聞領(lǐng)域的中文文本校對方法研究[J].中文信息學(xué)報,,2014,28(6):44-49.
[12] 字云飛,李業(yè)麗,,孫華艷.基于深度神經(jīng)網(wǎng)絡(luò)的個性化推薦系統(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í)的美國媒體“一帶一路”輿情的情感分析[J].電子技術(shù)應(yīng)用,,2018,,44(11):102-106.
[16] 潘吳,顏車.基于中文分詞的文本自動校對算法[J].武漢理工大學(xué)學(xué)報,,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] 張仰森,,鄭佳.中文文本語義錯誤偵測方法研究[J].計算機(jī)學(xué)報,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ī)與信息工程學(xué)院 食品安全大數(shù)據(jù)技術(shù)北京市重點實驗室,,北京100048)