文獻(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)進行文本自動校對。其特點是能處理任意長度的輸入和輸出序列,因此被廣泛應(yīng)用在自然語言處理(Natural Language Processing)任務(wù)中。在機器翻譯任務(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)改進的網(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)計特性進行上下文接續(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)造模型之前,需要先對語料進行預(yù)處理,包括以下5個部分:加載數(shù)據(jù);清洗數(shù)據(jù);切詞編碼;分析統(tǒng)計;語料轉(zhuǎn)換。加載數(shù)據(jù)的時候需要對語料文本進行切分,以句子為單位,即每一行代表一個完整的句子,以此讀入訓(xùn)練數(shù)據(jù)。切詞部分可以借助一些成熟的中文分詞工具,如 jieba分詞。完成分詞再加載的過程中,要注意同時清洗數(shù)據(jù),去掉數(shù)字、特殊字符等[16],再以詞為單位對其進行編碼錄入詞庫。
完成詞庫到數(shù)字的映射之后,需再根據(jù)這種映射關(guān)系完成數(shù)字到詞庫的反映射。分析數(shù)據(jù)是針對訓(xùn)練語料進行統(tǒng)計性的描述,了解訓(xùn)練數(shù)據(jù)的一些信息,例如:訓(xùn)練語句的個數(shù)、最長與最短句含有的單詞數(shù)、訓(xùn)練語料構(gòu)成的詞庫中非重復(fù)詞的個數(shù)等。最后可按照句子從少到多進行排列,優(yōu)化訓(xùn)練過程[17]。
2.2 Bi-LSTM的Seq2Seq網(wǎng)絡(luò)模型
2.2.1 基本Seq2Seq結(jié)構(gòu)的局限性
在機器翻譯、文摘生成等問題上,基礎(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)化成機器可識別的數(shù)字編碼。由于LSTM只能處理定長的數(shù)據(jù),因此需要保證輸入語料的長度Tx保持固定。通過預(yù)處理部分可以得到最長句子的詞數(shù),假設(shè)詞數(shù)Tx=20,則應(yīng)對不足20個詞長的句子進行<PAD>補全。編碼端接收每一個中文詞語的數(shù)字形式和其上一個時間點的隱層狀態(tài),由于采用Bi-RNN網(wǎng)絡(luò),輸出的是當(dāng)前時間點的隱層狀態(tài),結(jié)構(gòu)如圖4所示,其展示了兩個雙向的LSTM單元。
解碼端是一個帶注意力機制的RNN網(wǎng)絡(luò),其在t時刻生成一個詞時可以利用到此前的全部上文信息。解碼端接收目標(biāo)句子中上一個時間點的中文詞語和上一個時間點的隱層狀態(tài)與注意力機制產(chǎn)生的語義向量,如圖5所示。
由于注意力機制的存在,每個時刻生成詞時對輸入序列各個詞的關(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)合拼起來,計算最后的輸出概率。
以“我愛機器學(xué)習(xí)”為例,假設(shè)當(dāng)前時刻正準(zhǔn)備校對“機器”這個詞,此時需要計算語義向量,如圖7所示。
圖7中,St-1代表解碼端前一輪的隱層狀態(tài),即代表了校對“機器上一個詞”階段的輸出隱層狀態(tài);a1~a4分別代表了編碼端每個詞輸入到Bi-RNN后的隱層狀態(tài)。Attention根據(jù)每個Encoder輸出和Decoder的上一次隱層給出每個邊的得分,然后和上一次訓(xùn)練的預(yù)測值拼合到一起,和Decoder端上一時刻的隱層作為輸入進入當(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ò)中的句子的正確形式,進而采用強制正確輸入來進行訓(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框架,共進行了4組實驗,分別用來測試Seq2Seq、BiRNNSeq2Seq、帶注意力機制的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)隨機分成兩部分:一個驗證集,其中包含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工具包進行評估。中文文本校對實驗結(jié)果如表2所示,其中F0.5、F1、BLEU為評價分?jǐn)?shù)。
實驗結(jié)果表明,Bi-RNN以及注意力機制均有助于提升中文文本校對模型的性能,并且二者結(jié)合起來可以進一步改善系統(tǒng)的性能。由于模型的實驗結(jié)果受數(shù)據(jù)量以及迭代次數(shù)的影響,因此在此基礎(chǔ)上引入更多的數(shù)據(jù)做訓(xùn)練,并且通過改善訓(xùn)練方法,如引入流暢度學(xué)習(xí)、推斷機制等進一步提升模型校對的準(zhǔn)確率。
4 結(jié)論
本文給出了基于Seq2Seq和Bi-LSTM設(shè)計的中文文本校對模型并且通過公開的數(shù)據(jù)集全面驗證了模型的性能。模型的核心內(nèi)容是在引入Bi-LSTM單元和注意力機制的同時,用Seq2Seq結(jié)構(gòu)網(wǎng)絡(luò)對中文語料庫進行學(xué)習(xí),挖掘詞與詞之間的關(guān)系,并以此作為中文文本校對的依據(jù)。雖然由于訓(xùn)練量的原因,在結(jié)果上并未達(dá)到最好的效果,但是可以看出該模型在中文文本校對領(lǐng)域里具備了很大的潛力,并可以擴展應(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].計算機應(yīng)用研究,2006(6):8-12.
[3] 洛衛(wèi)華,羅振聲.中文文本自動校對技術(shù)的研究[J].計算機研究展,2004,33(1):60-64.
[4] 劉亮亮,曹存根.中文“非多字錯誤”自動校對方法研究[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].計算機工程,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].計算機學(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é) 計算機與信息工程學(xué)院 食品安全大數(shù)據(jù)技術(shù)北京市重點實驗室,北京100048)