鐘靜晨 祁云嵩
(江蘇科技大學計算機學院 鎮(zhèn)江 212003)
中文分詞對中文信息處理來說是第一要務(wù),也可以說是自然語言處理的首要任務(wù)[1],在機器翻譯[2]、信息檢索[3]、文本挖掘[4]等中發(fā)揮著重要的作用。英文與中文之間存在的顯著區(qū)別在于:英語中存在“單詞”這一概念,空格成為了單詞與單詞之間的自然分隔符,而中文文本中卻沒有“單詞”這一概念,這造成了機器理解變得很困難[5]。在中文文本中只有句子和段落能夠通過標點符號或換行來簡單劃界,但在“詞”這一方面,卻缺少一個直觀的分隔符。讀者們只能從句子的含義中大概判定詞間的距離,卻無法從形式上對句子采取精準的切割。中文分詞指的是將一個句子或者一段話切分成可以獨立存在的詞語,也就是憑借特定的規(guī)則與方法把連續(xù)成句的中文序列重新切割成詞語序列的過程。因為傳統(tǒng)分析過程的前提就是中文分詞,因此倘若中文分詞不能達到一定的準確率,那么存在分詞錯誤的整個語句都有可能不被接受,將直接對語義后續(xù)分析造成影響。
計算機進以追溯到20世紀80年代。我國第一個可以應(yīng)用到實踐上的中文自動分詞系統(tǒng)是CDWS[6](Chinese Distinguishing Word System),這是中文自動分詞的第一次嘗試,具有重要的指導意義。目前為止,也已經(jīng)有了相對來說比較成熟的中文分詞系統(tǒng),例如中科院張華平博士開發(fā)的ICTCLAS[7]系 統(tǒng)(Institute of Computing Technology,Chinese Lexical Analysis System),也被廣泛叫做NLPIR漢語分詞系統(tǒng)??捎脕磉M行詞性標注、中文分詞、命名實體識別以及用戶詞典等功能,其支持的編碼有UTF-8、BIG5 和GBK。該系統(tǒng)還新增了許多新的功能,如篇章語義理解、新詞發(fā)現(xiàn)、關(guān)鍵詞提取和微博分詞,不僅分詞精度和分詞效率比較高,能夠達到了98.45%的準確率,而且它的容量比較小,很具有科研參考意義。
另外,哈工大開發(fā)的計算機語言技術(shù)平臺LTP[8],該系統(tǒng)包含了詞性標注、中文分詞、依存句法分析和命名實體識別等自然語言處理的重要部分,該系統(tǒng)的分詞準確率達到了97.4%。用Java 語言開發(fā)的IKAnalyzer 使用的是基于詞典與文法分析的分詞方法,支持細粒度和智能分詞這兩種切分模式。目前為止,中文分詞領(lǐng)域已經(jīng)取得了不錯的成果,在傳統(tǒng)文本的分詞上已經(jīng)達到了比較理想的精準度。由于互聯(lián)網(wǎng)時代的發(fā)展,人們對網(wǎng)絡(luò)的依賴性變得越來越高,網(wǎng)絡(luò)已經(jīng)成為我們生活中必不可少的一部分,因此對網(wǎng)絡(luò)文本進行中文分詞顯得越來越重要,由于網(wǎng)絡(luò)文本與傳統(tǒng)文本的差異性,如網(wǎng)絡(luò)文本中存在著大量的熱詞和表情符號,這造成了傳統(tǒng)的分詞方法應(yīng)用到網(wǎng)絡(luò)文本的分詞上的效果并不是很好,因此需要針對網(wǎng)絡(luò)文本的特點,提出適合網(wǎng)絡(luò)文本的分詞方法,為下一步中文分詞的研究工作指明了方向。
基于詞典的分詞方法、基于理解的分詞方法以及基于統(tǒng)計的分詞方法[9]是目前來說最為常見的三種分詞方法。下面將對幾種分詞方法做介紹。
機械分詞法是以一定的方法和手段把帶切割的字符串與一個足夠大的詞典中的詞條進行比對,如果在詞典中能夠找到待切分的詞則匹配成功[10]。文本掃描順序、分詞詞典和匹配原則是基于詞典分詞的三要素。按照掃描方向的不同,基于詞典的分詞方法有正向匹配和逆向匹配[11];按照不同長度優(yōu)先匹配的情況,基于詞庫的分詞方法有最長匹配和最短匹配。常用的幾種分詞法有:逆向最大匹配法、正向最大匹配法、雙向最大匹配法、最少切分法?;谠~典的分詞方法的優(yōu)點不但比較容易實現(xiàn),而且還能夠精準地切分出所有的在詞典中存在的詞。如圖1 所示是基于詞典的分詞方法的流程圖。
基于詞典的分詞方法雖然比較簡單易實現(xiàn),但是它的分詞準確性和效率可能會受到詞典容量的影響。詞典的結(jié)構(gòu)也會直接對詞典的查詢速度造成影響。此外,基于詞典的分詞方法不能很好地對未登錄詞以及歧義詞進行識別,因此在實際應(yīng)用中,研究人員利用索引表、哈希表以及后綴數(shù)組等結(jié)構(gòu)來改造詞典結(jié)構(gòu),并采用更高效的查詢算法來加快詞典的查詢效率。
讓計算機自動模擬人對語句的理解進行切分句子的方法就是基于理解的分詞方法,從而能夠達到對詞語進行自動識別的目的[12]?;诶斫獾姆衷~方法的基本思想就是一邊進行中文分詞一邊分析文本句法和文本語義,通過上下文中句法所包含的信息和上下文的語義中所包含的信息來對處理文本中出現(xiàn)交疊歧義的現(xiàn)象。一般情況下分詞子系統(tǒng)、句法語義子系統(tǒng)以及總控部分是基于理解的分詞方法的三個部分。但由于中文的理解并不如英文理解那么簡單,存在正話反說,反話正說以及各種句式交疊融合的情況,因此把各類語言信息組織成機器能直接讀取的形式比較困難,并且到目前為止該方法仍舊存在缺少完備的理論知識的問題,雖然其在歧義識別與未登錄詞的識別以及分詞準確性上有很好的精確度,但是由于該方法在技術(shù)上還不是很成熟,造成了實施復(fù)雜性偏高、分詞速度很慢。因此在一般主流應(yīng)用中很少會采用此種方法。
由于基于詞典的分詞方法和基于理解的分詞方法都存在著不可忽視的缺陷,并且其切分精度也不是很高,于是基于統(tǒng)計的分詞方法成為了中文分詞的首要選擇。主要的統(tǒng)計模型有隱馬爾科夫模型(Hidden Markov Model,HMM)、最大熵馬爾科夫模型(Maximum Entropy Markov Model,MEMM)[13]以及條件隨機場模型(Conditional Random Field,CRF)。與隱馬爾科夫模型及最大熵馬爾科夫模型相比較,條件隨機場模型的擬合程度更好、特征選擇更加靈活的優(yōu)勢。CRF 作為新型的基于機器學習的分詞方法,對漢字進行標注是它的基本思路,就是由字構(gòu)詞(組詞),這不僅要將漢字詞語出現(xiàn)的頻率納入考量范圍內(nèi),同時也還要根據(jù)上下文的語義語境進行考察分析,有較為出色的學習能力,所以對未登錄詞和歧義詞來說CRF 具有良好的識別能力。
2001年,Lafferty等[14]將HMM與MEMM的特點相結(jié)合,提出了條件隨機場模型,最大熵模型是其主要的思想來源。在機器學習領(lǐng)域,條件隨機場模型是一種用于序列標記的無向圖模型。近年來,CRF 模型常被用于自然語言處理中序列分析中的句法分析[15]、詞性標注、中文分詞以及命名實體識別中,并且在文本情感分析領(lǐng)域也有著廣泛的應(yīng)用[16~18]。但對任意的CRF 模型來說,不僅簡單的數(shù)學表達式很難描述它的數(shù)學性質(zhì),而且還沒有非常有效的算法來進行訓練和推測工作。因此,本文采用了線性鏈上的特殊的CRF,被叫做線性鏈條件隨機場(linear chain conditional random field,LCCRF),如圖2所示。
圖2 LCCRF模型
在條件概率模型P(Y|X)中,輸出變量用Y 來表示,是對標記序列進行表示的;輸入變量用X 來表示,表示的是需要標注的觀測序列。再進行學習的時候,對訓練數(shù)據(jù)集進行極大似然估計亦或是正則化的極大似然估計得到條件概率模型P(Y|X);在進行預(yù)測的時候,對與給定的輸入序列x 來說,求出條件概率P(y|x) 的最大輸出序列y 。在P(Y|X)中,已有的概率如式(1)所示:
式中,特征函數(shù)為:tk和sl,對應(yīng)的權(quán)值為λk和μl。其中,Z(x)為規(guī)范化因子,Z(x)的表達式如式(2)所示:
對比CRF和HMM,CRF不但避免了HMM 偏標記的問題,而且還可以任意的選擇特征,想對比而言,是最適合中文分詞任務(wù)的機器學習模型。
評價數(shù)據(jù)的分詞任務(wù)能夠用序列標記任務(wù)來表示。先用給定的若干特征標記來標記待切分的評價數(shù)據(jù)中的單字,每個標記表示在切分結(jié)果中標記的單字的位置。再按照漢語的語法規(guī)則與實驗數(shù)據(jù),確定對當前語料來說最合適的特征模板。利用標記方法、特征模板以及當前語料來訓練LCCRF 分詞模型。最后,利用訓練好的LCCRF 分詞模型對將要進行分詞的評價數(shù)據(jù)做相應(yīng)的切分標記來得到分詞的結(jié)果。
本文提出的分詞方法主要適用于電商領(lǐng)域中有關(guān)物流方面的評價數(shù)據(jù)的中文分詞。電商領(lǐng)域的評價數(shù)據(jù)基本上是由一百字以內(nèi)的漢字組成,絕少部分會超過一百字以上,這就造成了評價信息中的語義信息的關(guān)聯(lián)度比較大。物流相關(guān)的評價數(shù)據(jù)中所包含的詞匯一般是由網(wǎng)絡(luò)詞匯,常用詞匯和物流相關(guān)的專業(yè)詞匯(包括未登錄詞)組成,例如:快遞小哥、百世匯通、百世快遞、順風快遞(同順豐快遞,但在評價中,有部分消費者會將順豐快遞打成順風快遞)等。為了解決這些問題,在面對標記選擇和特征選擇這些方面時,本文根據(jù)大部分在線商品評價數(shù)據(jù)的句子長度較短屬于短文本的范疇,對常用的LCCRF分詞方法做出改進和優(yōu)化。
3.2.1 標記選擇
對一個字來說,它有4 個狀態(tài),分別是:多字成詞的第一個字即詞頭(Begin)、中間字即詞中(Middle)、最后一個字即詞尾(End)和單字成詞(Single),簡稱B,E,M,S。經(jīng)常使用的標記方法大致有3 種,分別是2-Tag 標記法、4-Tag 標記法和6-Tag標記法,在2-Tag標記法中,B表示詞頭,E代表以B開始的詞中的字。3 種常用的標記方法如表1 所示。
表1 常用的3種標記方法
根據(jù)之前學者們的實驗結(jié)論可發(fā)現(xiàn),如果分詞系統(tǒng)采用的模型是LCCRF,那么選取6-Tag 標記法則可使分詞的準確率和召回率達到最高。然而漢語中尤其是較短的評價數(shù)據(jù)中,詞語是由5 個及5個以上字組成的概率特別小。大部分評價數(shù)據(jù)的詞語基本上都是4 個或4 個以下的漢字組成。因此,在6-Tag標記法中,不僅多出一個M2標記,而且還容易引起一些無用的特征函數(shù),這些無用的特征函數(shù)會加大LCCRF 訓練過程中所消耗的時間與空間。因此本文采用了5-Tag 標記法,即能夠最大限度的降低無用的特征函數(shù)又能夠完整的保留評價數(shù)據(jù)中所有的4字或4字以下詞匯所蘊含的關(guān)聯(lián)信息。表2是5-Tag法。
表2 5-Tag標記法
3.2.2 特征模板的選擇
在特征模板的選擇方面,本文選擇了表3 所示的特征模板。
表3 特征模板
詞典對分詞來說有很大的作用,采用上節(jié)的方法訓練一個適用于評價數(shù)據(jù)分詞的LCCRF 模型后,再將利用電商領(lǐng)域有關(guān)物流方面的詞典對該模型初步分詞的結(jié)果進行校正,例如:“順豐速度好快,次日達?!被诮y(tǒng)計方法的分詞結(jié)果為“順豐/速度/好快/,/次/日達/。”未能識別出物流方面的專業(yè)術(shù)語“次日達”,利用電商領(lǐng)域有關(guān)物流方面的詞典對采用統(tǒng)計法進行初步分詞的結(jié)果進行逆向最大匹配,最后得到修正后的結(jié)果是:“順豐/速度/好快/,/次日達/?!薄?/p>
字典樹(Trie)又被稱為單詞查找樹,是Hash樹變形的一種樹形結(jié)構(gòu),屬于有序樹,能夠建立有效的數(shù)據(jù)檢索組織結(jié)構(gòu)。使用字典樹的好處是可以用字符串的共有前綴來提高查詢效率,能夠在最大程度上降低無關(guān)字符串的比較次數(shù),Hsah 樹的查詢效率要低于字典樹。
字典樹的逆向最大匹配算法:
輸入:初步切分之后的句子S{d1,d2,d3,…,dn},d 是構(gòu)成句子的詞,D是電商領(lǐng)域中有關(guān)物流方面的詞典。
輸出:分詞結(jié)果。
Step1:將電商領(lǐng)域中有關(guān)物流方面的詞典以詞的長度(詞中所含字數(shù)的多少)進行由大到小的排序,用L 表示詞的長度。
Step2:將S 從t 處向前切分L,能夠得到字符串S1,句子的長度是t的初始值;電商領(lǐng)域中有關(guān)物流方面的詞典最長的詞的長度是L的初始值。
Step3:字典樹的根節(jié)點與S1 中的第一個字相對應(yīng),進行一次搜索,倘若能夠查詢到該字,就按照該字選取相應(yīng)的子樹,并對該子樹繼續(xù)檢索,一旦在某節(jié)點處,取出了全部的字,就將附在該節(jié)點上的信息給讀取出來,并結(jié)束查找,跳轉(zhuǎn)到Step5;沒有找到的跳轉(zhuǎn)到Step4。
Step4:倘若未找到,則L=L-1 ;若L=0,就跳轉(zhuǎn)到Step6;若L ≠0,則跳轉(zhuǎn)到Step2。
Step5:t=t-t′,查詢到的詞的長度用t′表示;未查詢到的為1,跳轉(zhuǎn)到Step2,直到t為0時,也就是遍歷完句子S。
Step6:輸出分詞結(jié)果。
本文的實驗數(shù)據(jù)使用人工標注好的5000 條某知名服裝品牌在天貓旗艦店上有關(guān)物流方面的評價數(shù)據(jù)作為訓練集,除此之外再將人工標注好了的2500條的評價數(shù)據(jù)作為測試集,表4是實驗對比結(jié)構(gòu)。
表4 實驗對比結(jié)果
根據(jù)實驗對比表可知,雖然目前普通的基于CRF的分詞已經(jīng)可以達到較高的準確率、召回率和F 值,但采用符合評價數(shù)據(jù)特征標記與特征模板能使中文分詞的準確率、召回率與F 值分別提高了3.8%、2.7%和0.032;在結(jié)合物流方面的詞典進行修正,使得分詞的準確率、召回率以及F-值都有所提高,與普通的基于CRF的分詞相比可知,其準確率、召回率以及F 值分別提高了4.7%、3.5%和0.041。因為詞典能識別出大部分的未登錄詞與專業(yè)術(shù)語,能夠?qū)y(tǒng)計分詞在物流領(lǐng)域分詞的切分錯誤進行校正。因此本文提出的方法對電商領(lǐng)域有關(guān)物流方面的評價數(shù)據(jù)分詞更具有實用性,一旦分詞的準確率得到保證,那么情感分類的準確率也能得到相應(yīng)的提高。
針對絕大部分的評價數(shù)據(jù)屬于常規(guī)的短文本的這個特性,本文提出了一種基于電商領(lǐng)域有關(guān)物流評價方面的分詞方法。首先使用適用于短文本的標記選擇方法和特征模板對CRF模型進行改進,然后通過改進后的CRF 模型對評價數(shù)據(jù)進行初步分詞,最后利用電商領(lǐng)域中有關(guān)物流評價方面的詞典對初步分詞的結(jié)果進行逆向最大匹配,從而提高了CRF 對未登錄詞的識別能力以及歧義詞的消解能力,進而提高了電商領(lǐng)域中有關(guān)物流方面評價數(shù)據(jù)分詞的準確率和召回率。