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