刁 琦,古麗米拉·克孜爾別克,鐘麗峰,張 健,張志強
(1.新疆農(nóng)業(yè)大學 計算機與信息工程學院,新疆 烏魯木齊 830052;2.新疆維吾爾自治區(qū)圖書館,新疆 烏魯木齊 830052;3.新疆虹聯(lián)軟件有限公司,新疆 烏魯木齊 830052)
基于循環(huán)神經(jīng)網(wǎng)絡(luò)序列標注的中文分詞研究
刁 琦1,古麗米拉·克孜爾別克1,鐘麗峰2,張 健3,張志強1
(1.新疆農(nóng)業(yè)大學 計算機與信息工程學院,新疆 烏魯木齊 830052;2.新疆維吾爾自治區(qū)圖書館,新疆 烏魯木齊 830052;3.新疆虹聯(lián)軟件有限公司,新疆 烏魯木齊 830052)
分詞是中文自然語言處理中的關(guān)鍵技術(shù)。在自然語言處理中,序列標注在中文分詞中有著極其重要的應(yīng)用。當前主流的中文分詞方法是基于監(jiān)督學習,從中文文本中提取特征信息。這些方法未能充分地利用上下文信息對中文進行分割,缺乏長距離信息約束能力。針對上述問題進行研究,提出在序列標注的前提下利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型進行中文分詞,避免了窗口對上下文大小的限制,可以獲得一個詞的前面和后面的上下文信息,通過增加上下文能夠有效地解決梯度爆炸和爆的問題,然后再在輸入層加入訓練好的上下文詞向量,取得相對較好的分詞效果。實驗結(jié)果表明,該算法的使用可以達到97.3%的中文分詞準確率,與傳統(tǒng)機器學習分詞算法相比,效果較為顯著。
自然語言處理;循環(huán)神經(jīng)網(wǎng)絡(luò);序列標注;中文分詞;監(jiān)督學習
分詞是中文處理的一項根本任務(wù)。詞是“最小的能獨立運用的語言單位”[1]。中文與英文有所不同,英文中詞與詞之間用空格天然分割,而中文具有大字符連續(xù)書寫的特點,需要對其進行有效分割。分詞更重要的一個功能是幫助計算機理解文字。因此,在自然語言處理中,中文分詞[2]是一項重要的基礎(chǔ)技術(shù)。
近年來,中文分詞技術(shù)有了長足進步。陳碩等[3]提出一種使用誤差反傳神經(jīng)網(wǎng)絡(luò)與一種改進的匹配算法相結(jié)合的中文分詞技術(shù),該方法不需要標注語義信息,適應(yīng)性、魯棒性好,且訓練結(jié)果占用空間小,有一定冗余性,對比單純的神經(jīng)網(wǎng)絡(luò)分詞方法有較大提高。巫黃旭[4]提出一種基于統(tǒng)計學習的分詞方法,以期在最小人工干預的條件下達到盡可能高的分詞性能,擴展二元語法模型至三元語法模型,提出性能優(yōu)化的三元語法獲取和使用方法,但語法模型結(jié)構(gòu)較為簡單。何嘉[5]在分析進化神經(jīng)網(wǎng)絡(luò)及神經(jīng)網(wǎng)絡(luò)分詞法優(yōu)勢的基礎(chǔ)上,將改進的免疫遺傳算法應(yīng)用到基于神經(jīng)網(wǎng)絡(luò)的中文分詞模型中,對歧義進行處理。盡管這些方法效果較好,但是標記特征工作量大,訓練的模型過度擬合訓練語料庫。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs)[6]廣泛應(yīng)用于機器翻譯[7]、語音識別[8]、圖像描述生成等領(lǐng)域。相比于傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò),其特點是可以存在有向環(huán),將上一次的輸出作為本次的輸入。而與前饋神經(jīng)網(wǎng)絡(luò)[9]的最大區(qū)別是:前饋神經(jīng)網(wǎng)絡(luò)要求輸入的上下文是固定長度的,也就是說n-gram中的n要求是個固定值,而在LSTM基礎(chǔ)上擴展的循環(huán)神經(jīng)網(wǎng)絡(luò)不限制上下文的長度,可以充分利用所有上文提供的信息來預測下一個詞,本次預測的中間隱層信息可以在下一次預測里循環(huán)使用。為此,文中試圖將循環(huán)神經(jīng)網(wǎng)絡(luò)模型應(yīng)用在中文分詞方面。
1.1詞向量特征
在自然語言處理中,需要將自然語言理解問題轉(zhuǎn)化為機器學習問題,即自然語言的符號數(shù)學化。目前最常用的詞表示方法是One-hot Representation[10],把文本中每一個詞表示為多維向量,向量的維度是詞表大小,其中絕大部分數(shù)元素表示為0,只有一個維度的值為1,這個維度就代表了當前的詞。例如,“學生”表示為[0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0];“班級”表示為[0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0]。
常將One-hot采用稀疏的方式對詞進行存儲,即為每個詞分配對應(yīng)的數(shù)字ID。該方法簡單易用,廣泛應(yīng)用于各種自然語言處理任務(wù)中,如N-gram模型[11]中就采用該方法。但這種表述方法也存在一定問題,即表示的任意兩詞之間是孤立的,無法表示這兩個詞之間的依賴關(guān)系,從詞向量上看不出兩個詞是否存在相關(guān)關(guān)系;采用稀疏表示法[12],在處理某些任務(wù),如構(gòu)建N-gram模型時,會引起維數(shù)災(zāi)難問題。
而在深度學習[13]中,一般采用分布式表示(Distributed Representation)的方法表示詞向量,該方法最早由Hinton[14]提出,通常稱為Word Representation。該方法將詞用一種低維實數(shù)向量表示,優(yōu)點在于相似的詞在距離上更接近,體現(xiàn)出不同詞之間的相關(guān)性,從而反映詞之間的依賴關(guān)系。同時,較低的維度也使特征向量在應(yīng)用時有一個可接受的復雜度。因此,新近提出的許多語言模型,如潛在語義分析(Latent Semantic Analysis,LSA)模型和潛在狄利克雷分布(Latent Dirichlet Allocation,LDA)[15]模型,及目前流行的神經(jīng)網(wǎng)絡(luò)模型等,都采用這種方法表示詞向量。
1.2循環(huán)神經(jīng)網(wǎng)絡(luò)
中文分詞通常被看作為基于字符的序列標簽[16]。每個字符貼上{B,M,E,S}來表示分割。一個多字符分割用{B,M,E}表示開始、中間、結(jié)束,S表示單個字符分割。序列標注[17]就是針對一個線性輸入序列:x=x1,x2,…,xn,給線性序列中的每個元素打上標簽集中的某個標簽,即y=y1,y2,…,yn。
中文分詞的序列標注過程如圖1所示。
圖1 中文分詞序列標注過程
神經(jīng)網(wǎng)絡(luò)的中文分詞通用模塊主要由三部分組成[18]:詞向量化;一系列典型的神經(jīng)網(wǎng)絡(luò)層;標簽推理層。通用框架如圖2所示。
圖2 基于神經(jīng)網(wǎng)絡(luò)的中文分詞通用框架
基于字標注的分詞方法是基于一個局部滑動窗口,假設(shè)一個字的標簽極大地依賴于其相鄰位置的字。給定長度為n的文本序列c(1:n),大小為k的窗口從文本序列的第一個字c(1)滑動至最后一個字c(n)。對于序列中每個字c(1),窗口大小為5時,上下文信息(c(t-2),c(t-1),c(t),c(t+1),c(t+2))被送入查詢表中,當字的范圍超過了序列邊界時,將以諸如“start”和“end”等特殊標記來補充。然后,將查詢表中提取的字向量連接成一個向量X(t);接著,在神經(jīng)網(wǎng)絡(luò)下一層中,X(t)經(jīng)過先行變換后經(jīng)由sigmoid函數(shù)σ(x)=(1+e-x)-1或tanh函數(shù)激活。
h(t)=σ(w1x(t)+b1)
(1)
接下來根據(jù)給定的標注集,將經(jīng)過一個相似的線性變換,不同之處在于沒有線性函數(shù),得到的y(t)是每個可能標簽的得分向量。文中選定的是更能充分表達詞信息的四位標注集{B,M,E,S}。
y(t)=w2h(t)+b2
(2)
為了建模標簽間依賴,引入轉(zhuǎn)移得分向量Aij,用于衡量從標簽i跳轉(zhuǎn)到標簽j的概率。 過往的研究表明,引入轉(zhuǎn)移得分向量非常適用于中文分詞等序列標注的任務(wù),但它僅利用了長度有限的窗口信息。
1.3LSTM網(wǎng)絡(luò)
Recurrent Neural Networks(RNNs)具有循環(huán)的網(wǎng)絡(luò)結(jié)構(gòu),具備保持信息的能力,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 RNNs網(wǎng)絡(luò)結(jié)構(gòu)
RNNs中的循環(huán)網(wǎng)絡(luò)模塊將信息從網(wǎng)絡(luò)上一層傳輸?shù)较乱粚?,網(wǎng)絡(luò)模塊的隱含層每個時刻的輸出都依賴于以往時刻的信息。RNNs的鏈式屬性表明其與序列標注問題存在密切聯(lián)系,目前已被應(yīng)用到文本分類器和機器翻譯等NLP任務(wù)中。在RNNs的訓練中,存在梯度爆炸和消失的問題;且傳統(tǒng)的RNNs難以保較長時間的記憶。
LSTM[19](Long Short-Term Memory)網(wǎng)絡(luò)是RNNs的擴展,用來避免長期依賴問題。LSTM的重復神經(jīng)網(wǎng)絡(luò)模塊具有不同的結(jié)構(gòu),這與樸素RNNs網(wǎng)絡(luò)不同,存在4個以特殊方式影響的神經(jīng)網(wǎng)絡(luò)層,網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
LSTM網(wǎng)絡(luò)的關(guān)鍵在于細胞狀態(tài),有點類似于傳送帶。在LSTM中,通過門結(jié)構(gòu)對細胞狀態(tài)增加或刪除信息,而門結(jié)構(gòu)采用選擇性讓信息通過的方式,通常由一個sigmoid神經(jīng)網(wǎng)絡(luò)層和逐點乘積操作組成(sigmoid層的輸出在0到1之間,定義了信息通過的程度,0表示什么都不讓過,1表示所有都讓過)。
(1)從細胞狀態(tài)中忘記信息,由忘記門的sigmoid層決定,以當前的輸入xt和上一層的輸出ht-1作為輸入,在t-1時刻的細胞狀態(tài)輸出ft為;
ft=σ(wf·(ht-1,xi)+bf)
(3)
it=σ(wi·(ht-1,xt)+bi)
(4)
(5)
(6)
(3)輸出信息由輸出門決定。先使用sigmoid層決定要輸出細胞狀態(tài)的部分信息,接著用tanh處理細胞狀態(tài),兩部分信息的乘積得到輸出的值。
ot=σ(wo·(h·,)+bo)
(7)
ht=ot·tanh(ct)
(8)
LSTM網(wǎng)絡(luò)模型已成功應(yīng)用于諸如文本/情感分類、機器翻譯、智能問答和看圖說話[20]等自然語言處理任務(wù)中。由于LSTM網(wǎng)絡(luò)記憶單元去學習從細胞狀態(tài)中忘記信息、去更新細胞狀態(tài)的信息,而且具有學習文本序列中遠距離依賴的特性,很自然地想到可以使用LSTM網(wǎng)絡(luò)模型進行中文分詞的任務(wù)。
1.4基于循環(huán)神經(jīng)網(wǎng)絡(luò)的中文分詞架構(gòu)
在以往的大學英語寫作課堂上,教師一直以來都遵循著這樣一個程序:布置英語寫作題目、修改學生作文、給出作文分數(shù)。從某個角度來說,這一流程單一枯燥,讓學生始終處于一個被動的寫作狀態(tài),并使其因此逐漸失去對英語寫作的興趣和自己的寫作風格。就另一個角度而言,由于大學教師平時的教學任務(wù)較為繁重,且英語寫作的批改是一個費時費力的事情,久而久之就會被視為一種負擔,或者會被棄置一邊,或者走形式主義,這樣一來學生就不會得到有效的指導。如果老師對學生的習作的反饋不及時充分,學生的英語寫作水平就得不到有效提高,寫作就會變得沒有動力。
在中文分析任務(wù)中,LSTM記憶單元的輸入來自上下文窗口的漢字。對每個漢字C(t),LSTM記憶單元的輸入為X(t),由上下文字嵌入(c(t),…,c(t+k))連接而成。其中k代表與當前字的距離。LSTM單元的輸出在經(jīng)過線性變換后用于標簽推理函數(shù),推理漢字對應(yīng)的標簽。
(9)
文中提出的架構(gòu)如圖5所示。為了建模標簽間依賴,在以往的神經(jīng)網(wǎng)絡(luò)模型方法中引入轉(zhuǎn)移得分向量Aij,用于衡量從標簽i跳轉(zhuǎn)到標簽j的概率。對于輸入文本序列c(1:n),其標注的標簽序列為y(1:n),序列級的得分是標簽轉(zhuǎn)移得分和網(wǎng)絡(luò)標注得分的總和。
(10)
圖5 文中提出的架構(gòu)
中文分詞性能評估指標,采用了分詞評測常用的R(召回率)、P(準確率)和F-measure(F值),以F值為主要評測指標。
P=正確詞數(shù)/識別的詞數(shù)*100%
(11)
R=正確詞數(shù)/原有詞數(shù)*100%
(12)
F=2PR/(P+R)
(13)
3.1實驗設(shè)備
實驗設(shè)備如表1所示。
軟件方面使用python2.7,安裝好了keras,theano及相關(guān)庫。
表1 實驗設(shè)備
3.2實驗結(jié)果
語料庫由2億字的中文語料訓練形成,該中文語料含有50本電子書、2年的人民日報,內(nèi)容涵蓋范圍非常廣泛,包含外交、政治、經(jīng)濟、文化、民生等眾多領(lǐng)域。測試集為新疆維吾爾自治區(qū)科技計劃項目提供的3組數(shù)據(jù),共2 000句,內(nèi)容包含政治、外交、體育、民俗、文化和日常生活等方面。實驗結(jié)果如下:P為0.973,R為0.971,F(xiàn)為0.972。
文中實驗基于循環(huán)神經(jīng)網(wǎng)絡(luò)模型,采用四詞位標注,在循環(huán)神經(jīng)網(wǎng)絡(luò)層輸入預先訓練的詞向量,對實驗的中文語料庫進行分詞。測試結(jié)果表明,該算法較傳統(tǒng)的中文分詞效果要好。
[1] 漢語信息處理詞匯01部分;基本術(shù)語(GB12200.1-90)6[S].北京:中國標準出版社,1991.
[2] 奉國和,鄭 偉.國內(nèi)中文自動分詞技術(shù)研究綜述[J].圖書情報工作,2011,55(2):41-45.
[3] 李 華,陳 碩,練睿婷.神經(jīng)網(wǎng)絡(luò)和匹配融合的中文分詞研究[J].心智與計算,2010(2):117-127.
[4] 巫黃旭.基于統(tǒng)計學習的中文分詞改進及其在面向應(yīng)用分詞中的應(yīng)用[D].杭州:浙江大學,2012.
[5] 何 嘉.基于遺傳算法優(yōu)化的中文分詞研究[D].成都:電子科技大學,2012.
[6] Graves A.Supervised sequence labelling with recurrent neural networks[M].Berlin:Springer,2012.
[7] 蔣銳瀅,崔 磊,何 晶,等.基于主題模型和統(tǒng)計機器翻譯方法的中文格律詩自動生成[J].計算機學報,2015,38(12):2426-2436.
[8] 王山海,景新幸,楊海燕.基于深度學習神經(jīng)網(wǎng)絡(luò)的孤立詞語音識別的研究[J].計算機應(yīng)用研究,2015,32(8):2289-2291.
[9] Bebis G,Georgiopoulos M.Feed-forward neural networks[J].IEEE Potentials,1994,13(4):27-31.
[10] Landauer T K,Foltz P W,Laham D.An introduction to latent semantic analysis[J].Discourse Processes,1998,25(2-3):259-284.
[11] 陳天瑩,陳 蓉,潘璐璐,等.基于前后文n-gram模型的古漢語句子切分[J].計算機工程,2007,33(3):192-193.
[12] 欒悉道,王衛(wèi)威,謝毓湘,等.非線性稀疏表示理論及其應(yīng)用[J].計算機科學,2014,41(8):13-18.
[13] 張建明,詹智財,成科揚,等.深度學習的研究與發(fā)展[J].江蘇大學學報:自然科學版,2015,36(2):191-200.
[14] Hinton G E.Learning distributed representations of concepts[C]//Proceedings of the 8th annual conference of the cognitive science society.[s.l.]:[s.n.],1986.
[15] Blei D M,Ng A Y,Jordan M I.Latent Dirichlet allocation[J].Journal of Machine Learning Research,2003,3:993-1022.
[16] 梁喜濤,顧 磊.中文分詞與詞性標注研究[J].計算機技術(shù)與發(fā)展,2015,25(2):175-180.
[17] 王 昊,鄧三鴻,蘇新寧.基于字序列標注的中文關(guān)鍵詞抽取研究[J].現(xiàn)代圖書情報技術(shù),2011(12):39-45.
[18] Zheng X,Chen H,Xu T.Deep learning for Chinese word segmentation and POS tagging[C]//Proceedings of conference on empirical methods in natural language processing.[s.l.]:[s.n.],2013:647-657.
[19] Graves A,Jaitly N,Mohamed A.Hybrid speech recognition with deep bidirectional LSTM[C]//IEEE workshop on automatic speech recognition and understanding.[s.l.]:IEEE,2013:273-278.
[20] 翟 艷,馮紅梅.基于“看圖說話”任務(wù)的漢語學習者口語流利性發(fā)展研究[J].華文教學與研究,2014(4):1-7.
ResearchonChineseWordSegmentationMethodofSequenceLabelingBasedonRecurrentNeuralNetworks
DIAO Qi1,Gulimila·KEZIERBIEKE1,Zhong Li-feng2,ZHANG Jian3,ZHANG Zhi-qiang1
(1.College of Computer & Information Engineering,Xinjiang Agricultural University,Urumqi 830052,China; 2.Library of Xinjiang Uygur Autonomous Region,Urumqi 830052,China; 3.Xinjiang Honglian Software Co.,Ltd.,Urumqi 830052,China)
Word segmentation is a key technology in Chinese natural language processing.In natural language processing,sequence labeling plays an important role in Chinese word segmentation.The current mainstream Chinese word segmentation method is based on supervised learning,extraction of feature information from the Chinese text.However,they cannot make full use of context information to segment Chinese,and lack of long-distance information constraint.In order to solve it,Chinese word segmentation is carried on based on bi-directional recurrent neural network model on the premise of sequence labeling,avoiding the limitation of window size on context,obtaining the context information of the front and back of a word.It can effectively solve the problem of gradient explosion and explosion by adding context information,and then add a good context vector in the input layer to obtain a relatively good word segmentation effect.The experimental results show that it can achieve 97.3% accuracy of Chinese word segmentation and is superior to the traditional machine learning segmentation algorithm in the effect.
natural language processing;recurrent neural network;sequence annotation;Chinese word segmentation;supervised learning
TP301.6
A
1673-629X(2017)10-0065-04
2016-11-18
2017-03-09 < class="emphasis_bold">網(wǎng)絡(luò)出版時間
時間:2017-07-19
新疆維吾爾自治區(qū)科技計劃項目(2015X0106)
刁 琦(1989-),男,碩士研究生,研究方向為智能計算及應(yīng)用;古麗米拉·克孜爾別克,通信作者,副教授,研究方向為現(xiàn)代通信技術(shù)及嵌入式技術(shù)。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170719.1112.072.html
10.3969/j.issn.1673-629X.2017.10.014