王佳楠,梁永全
(山東科技大學計算機科學與工程學院,山東青島 266590)
隨著自然語言處理的發展,分詞作為基礎任務成為研究重點,中文因其復雜性和特殊性成為分詞熱點話題。中國知網和Web of Science 的相關論文顯示,自2010 年分詞研究達到小高峰后,中文分詞研究熱度再次緩步增長,見圖1、圖2。但是,作為自然語言處理的基礎任務,分詞究竟有沒有必要,Li 等[1]在2019 年ACL 會議上提出此觀點,并在機器翻譯、文本分類、句子匹配和語言建模4 個NLP任務上驗證分詞的非必要性,但這并不說明分詞研究不再有意義。詞級別模型欠佳表現在數據稀疏、過擬合、OOV以及數據遷移能力缺乏等,要解決此類問題,提高分詞性能仍有重大意義,例如谷歌提出的知識圖譜概念。知識圖譜強大的語義關聯能力為網絡搜索提供便利。知識圖譜本質是一種語義網絡,用圖的形式描述客觀事物,由邊和節點組成。邊一般指關系和屬性,節點指概念和實體。現實中,書本和網頁中的內容屬于非結構化或半結構化數據,無法直接構建知識圖譜,分詞成為構建知識圖譜的第一步。英文通過空格區分單詞,中文則需要根據上下文信息理解分詞,但這對于計算機而言相當困難。

Fig.1 Statistics on the number of word segmentation documents of CNKI圖1 中國知網分詞文獻數量統計

Fig.2 Statistics on the number of word segmentation documents in Web of Science圖2 Web of Science 分詞文獻數量統計
本文通過詳細閱讀近20 年文獻資料,總結歸納中文分詞的瓶頸和算法,提出新的瓶頸及改進方向。
由于中文的復雜性,分詞時粒度的選擇尤為重要。目前分詞粒度分為粗粒度和細粒度兩類,例如“中華人民共和國”,粗粒度:中華人民|共和國;細粒度:中華|人民|共和國。
雖然人類閱讀不會發生障礙,但對于計算機來說,尤其是當分詞用于搜索引擎時,細粒度可能導致搜索準確率降低;當用于知識圖譜構建時則導致圖譜復雜性增加,準確度降低。
歧義字段在中文中普遍存在,而歧義字段又是中文切分的一個難點。梁南元教授[2]最早對歧義字段進行了兩種基本定義:
(1)交集型切分歧義。漢字串ASB 稱作交集型切分歧義,如果滿足AS、SB 同時為詞(A、S、B 分別為漢字串),此時漢字串S 稱作交集串。如句子“人民生活幸福”,分詞的可能結果有:
Eg1:人民|生活|幸福
Eg2:人|民生|活|幸福
如果由計算機判斷,則“人民”和“民生”皆為可能詞匯,就會造成交集型歧義。
(2)組合型切分歧義。漢字串AB 稱作多義組合型切分歧義,如果滿足A、B、AB 同時為詞,如“校友會”一詞:
Eg1:我|在|校友會|工作
Eg2:我|的|校友|會|來
“校友”和“會”可以單獨成詞,也可組合成詞,就造成了組合型歧義。
歧義字段給分詞帶來極大困擾,想要作出正確的切分判斷,需要結合上下文語境,甚至韻律、語氣、重音、停頓等,這對機器來說無疑是困難的。
未登錄詞有兩種,一種指已有的詞表中沒有收錄的詞,另一種指訓練語料中未曾出現過的詞,而后一種也可被稱作集外詞(Out of Vocabulary,OOV),即訓練集以外的詞。未登錄詞通常包含以下幾種類型:
(1)新出現的普通詞匯。隨著時代變遷,語言不斷發展,詞匯也在更新,尤其是網絡用語中層出不窮的新詞,這對分詞甚至自然語言處理都是一大挑戰。
(2)專有名詞。如人名、地名以及組織機構名稱等。
(3)專業名詞和研究領域名稱。將分詞運用到某些特定領域或專業,需要特定的領域詞典。
(4)其它專用名詞。如新產生的產品名、電影名稱、書籍名稱等。
由此可見,粒度選擇、歧義消除和未登錄詞識別是干擾中文分詞的重要原因。孫茂松等[3]發現在真實語料庫中,由未登錄詞造成的分詞錯誤是歧義切分的5 倍以上,提高未登錄詞識別對提升分詞性能有重大影響。
基于規則的匹配方法又稱為機械分詞方法或基于字典的分詞方法,就是按照一定的規則將測試的字段與機器詞典中的詞條相匹配。
1984 年梁南元教授根據漢俄翻譯機器提到的6-5-4-3-2-1 分詞方法,利用詞典中最長詞的長度作為匹配字段長度進行匹配,成功則輸出,失敗則去掉匹配字段中的最后一個字,繼續匹配,直到全部切分為止,稱為最大匹配法,并首次將最大匹配法用于中文分詞任務,實現了我國第一個自動漢語分詞系統CDWS。除此之外,還有逆向最大匹配法和雙向最大匹配法。
基于詞典的分詞方法直觀簡單,可以通過增減詞典調整最終的分詞效果。當詞典直接決定分詞結果的好壞時,詞典的構造就成了重中之重,即使到現在詞典的作用仍然不可磨滅。
分詞的詞典機制主要有:基于整詞二分、基于TRIE 索引樹以及基于逐字二分。2000 年孫茂松等通過實驗比較3 種詞典機制,認為基于逐字二分的分詞詞典機制簡潔、高效,能較好地滿足實用型漢語自動分詞系統需要;2001 年楊文峰等[4]則認為原始的3 種詞典機制在更新時維護成本較高且效率較低,故根據PATRICIA tree 的數據結構設計一種新的分詞詞典機制,可以實現快速查詢及快速更新功能;2003 年李慶虎等[5]提出雙子哈希機制,在不提升現有詞典機制空間復雜度和維護復雜度基礎上,提高了中文分詞的速度和效率。
隨后,通過改進分詞詞典提高分詞性能的文章層出不窮。雖然基于詞典的分詞方法簡潔高效、操作簡單,但是準確度不高,不能很好地處理歧義切分和未登錄詞識別。
基于統計的分詞方法是把每個詞看作字組成,相鄰的字在語料庫中出現的次數越多,就越可能是一個詞。
Mashall 于1993 年提出了CLAWS 算法,利用概率統計模型對語料庫的詞性進行自動標注;Derose[6]在CLAWS算法基礎上提出WOLSUNGA 算法。此后,中文分詞利用統計方法在詞性標注方面取得了巨大成就。2002 年第一屆SIGHAN 會議召開后,Xue 等[7]第一次提出基于字標注分詞,成為中文分詞領域的重要方法。一年后,在最大熵模型上實現基于字標注的分詞系統,在2003 年的bakeoff測評中取得好成績,之后發表論文詳細闡述了基于字標注的分詞模型。序列標注就是將每個中文單字標注為B(),I(),O(),E(),S()的形式,以此進行分詞,開啟了分詞領域新模式。
目前,基于統計的字序列標注分詞方法最常用的步驟如下:①構建語言模型;②對句子作單詞劃分,對劃分結果利用隱馬爾可夫(Hidden Markov Model,HMM)或條件隨機場(Conditional Random Field,CRF)等進行概率計算,獲得概率最大分詞方式。
其中,HMM 模型是利用已分詞的訓練集訓練模型,得到三概率矩陣,利用維特比算法和三概率矩陣分析測試集標簽,利用標簽進行分詞,最常用的結巴分詞就是基于此模型;此后,Peng 等(2004)又將CRF 引入分詞學習中。CRF 模型較于HMM 模型能更好地利用上下文信息,以及外部信息特征完成實驗。
基于統計的分詞方法可以很好地識別未登錄詞和消除歧義,但是統計模型復雜度高,運行周期長,依賴人工特征提取。隨著計算機運行速度加快,神經網絡逐漸進入分詞領域。
2001 年,Bengio 等[8]提出第一個神經語言模型——前饋神經語言模型,并誕生了詞嵌入這一概念,隨后又提出一種基于神經網絡變種的概率語言模型,將神經網絡引入自然語言處理任務。神經網絡因其自動學習特征,避免了傳統的特征構建,早在20 世紀就有學者試圖在中文分詞任務中運用神經網絡,但是分詞速度不理想。到了21 世紀,隨著技術提升以及深度學習的發展,神經網絡在中文分詞領域有了重大進步。自序列標注方法在bakeoff 測試中取得優異成績后,將神經網絡與序列標注相結合成為中文分詞領域的通用框架。
2011 年Collobert 等[9]為改善以往每個NLP 任務需要設計構造新模型的思想,提出一種可以推廣到其它多種NLP 任務中的多層神經網絡體系結構;2013 年Zheng 等[10]在Collobert 的基礎上,為減少學習算法對特征提取的依賴性,將整個句子作為輸入進行多層特征提取,得到抽象的特征表示,同時提出了Perceptron-Style 算法,并首次探討利用以上模型算法在中文分詞和詞性標注任務中與CRF統計模型比較速度上的優劣;2014 年,Pei 等[11]在此基礎上提出了最大邊緣張量神經網絡模型,模型模擬了標簽和上下文字符之間的交互,以獲得更多的語義信息,加快訓練速度,防止過擬合,提高了準確度。
但是,這些算法受限于輸入窗口大小,無法利用文本的時間序列信息進行分詞,遞歸神經網絡(Recursive Neural Network,RNN)的分詞方法應運而生。遞歸神經網絡利用順序信息,在處理新輸入信息的同時存儲上一時刻信息。利用當前輸入和上一時刻輸出,同時得到這一時刻輸出。利用遞歸神經網絡可以在序列標記任務中考慮序列信息,提高分詞準確度。
2015 年,為了對輸入上下文進行建模,Chen 等[12]提出門控遞歸神經網絡模型,利用重置門和更新門控制信息的傳送和抽取。而為了解決神經網絡利用固定窗口而忽視長距離信息問題,在Sutskever 等[13]基礎上提出在分詞領域運用長短時記憶網絡(Long-short-term memory,LSTM)思想,成為分詞領域里程碑式的進步。
LSTM 是在RNN 基礎上提出的。雖然RNN 已經在語音識別、語言建模和文本生成方面取得巨大成就,但是由于梯度消失和梯度爆炸導致很難訓練長距離信息,LSTM則允許網絡學習何時忘記先前信息以及何時在給定信息的情況下更新存儲單元,將重要信息保留在存儲單元中以避免窗口大小限制,可以很好地應用在分詞領域;Chen等[14]在一般模型(包括字嵌入層、神經網絡層和標簽推理層)基礎上在網絡層運用LSTM,從精確度(precision)、召回率(recall)、FI 值以及OVV 召回率4 個方面評估,發現與最新模型相比,LSTM 可以利用較小的窗口獲得最好的性能。
但是LSTM 分詞模型自提出后并沒有在分詞領域得到廣泛研究與應用,直到2016 年Yao 等[15]為了充分利用上下文信息進行分詞才提出了雙向LSTM;早在2015 年,為解決詞性標注問題,Huang 等[16]提出雙向LSTM-CRF 模型,實驗證明該模型在詞性標注上的準確度要優于當前模型,最高可達到97.55%;隨后,Xu[17]提出一種基于依賴的門控遞歸網絡,將LSTM 和門控遞歸神經網絡相結合;黃丹丹等[18]將注意力機制融入雙向LSTM-CRF 模型;Zhang等[19]第一次提出將Lattice LSTM 應用到中文實體識別中;Yang 等[20]在Zhang 的基礎上提出在Lattice LSTM 中加入子詞編碼,發現使用Lattice+word(詞)或Lattice+subword(子詞)替換字符信息后模型性能更好,并提出將具有域詞典的Lattice LSTM 結構用于跨領域分詞的可行性。
2018 年,新型語言模型BERT 刷新了11 項NLP 任務的性能記錄。Huang 等[21]提出采用多準則的學習方法進行中文分詞,利用BERT 進行預訓練產生詞向量進行特征提取,對BERT 模型進行層級修剪來平衡分割速度和準確度,同時采集不同準則的數據集,捕獲每個數據集的異構分段標準以及公共知識,最后利用CRF 推理層得到最佳標簽序列。這種方法不僅提高了分詞性能,加快了計算速度,還減小了模型尺度。BERT 為中文分詞開創了新的突破口,大幅提高了分詞準確度。
基于神經網絡的分詞模型經過近20 年的研究已趨于成熟,研究人員在序列標注、網絡模型以及推理機制等方面不斷改進,大大提高了中文分詞的準確度。但是分詞速度和跨領域分詞等方面仍然存在不足。
隨著計算機技術的發展,分詞領域的準確度也隨之提高,但是通過增加模型內部復雜度來提高準確度,損害了運行速度;除此之外,未登錄詞的影響仍然存在,專業名詞的識別失誤在跨領域分詞中尤為明顯。
自從將神經網絡應用到中文分詞領域,隨著網絡模型的不斷改進,中文分詞的準確度大大提升,歧義切分的影響逐漸縮小,但是未登錄詞的識別方法仍需改進,尤其在跨領域分詞任務中。
2018 年,Ma 等[22]使用雙向LSTM(Bi-LSTM)模型進行中文分詞,但未提出新的模型或改進模型,而是在LSTM 模型基礎上預訓練字向量、Dropout 和調整超參數以達到State-of-the-art(SOTA),詳細比較了3 種技術對性能的影響。預訓練字向量(詞向量)已經成為NLP 任務的基礎工作,例如Word2vec、ELMO、BERT 等,都是對字向量訓練的提升算法,實驗發現預訓練字向量對性能優化貢獻最大。針對不同的數據集調整參數可以很好地提高模型的準確度。最新的分詞模型大約三分之一的錯誤來自注釋不一致問題,三分之二由詞匯不足造成,使用外部詞典或知識庫非常重要,而調整模型結構對這類錯誤幾乎毫無用處;Zhang 等[23]提出結合字典的神經網絡分詞,該方法可以解決由詞稀少引起的問題,并在模型應用于不同的域時僅需添加額外的域特定詞典,其它參數可保持不變。該方法在跨域CWS 任務中得到明顯改進,也恰恰證明了Ma 等關于詞匯不足的重要性結論。
Zhao 等[24]提出結合未標記和部分標記數據的神經網絡用于跨領域中文分詞方法。發現在跨域分詞中,Bi-LSMT+LM(未標記)+PL(部分標記)在大部分測試集中具有最佳性能,同時在域內數據分詞中有最佳性能。未標記和部分標記數據的結合應用,為跨域分詞乃至域內分詞提供了一種新的研究方向。
跨領域分詞瓶頸主要來自于OOV 的原始瓶頸,專有名詞的限制使該瓶頸不可能完全消除,增加領域詞典可以很好地解決跨領域分詞問題。隨著科技進步,強大知識庫的構建使運用外部輔助方法變得越來越簡便。但是,不同領域的通用分詞算法仍需進一步研究。
速度是任何系統不可避免的熱點問題,分詞模型的高準確率導致復雜的模型層出不窮,損害了分詞速度,即使在CPU 運算速度不斷提高的情況下,LSTM 分詞模型運行時間仍可達3 天,Bi-LSTM 的時間也達17 個小時,而CRF的加入使模型運行速度更加緩慢。分詞作為自然語言處理的基礎步驟,不僅需要高準確度,運行速度也是目前研究熱點。
2016 年,Cai 等[25]提出一種新穎的神經網絡模型,構建句子完整的切分歷史,直接在結果上進行建模可發現訓練和測試速度慢的原因。隨后提出一種貪婪神經詞分割器,通過去掉不必要的設計建立更有效的字符組合模型,大幅降低訓練和運行時間[26]。
劉志明等[27]提出一種最簡門單元模型,在LSTM 基礎上刪除輸出門,將隱藏狀態和細胞狀態合并,輸入門和遺忘門合為更新門以簡化網絡結構。結果顯示MGU 精度并無大的差異,而推理速度是LSTM 模型的3 倍,訓練耗時則是LSTM 的1/2,證明通過簡化模型提高訓練速度減少訓練時間的方法是可行的。
除此之外,循環神經網絡在長距離信息保存上的優越性,使得NLP 中循環神經網絡占主要地位,但實際上卷積神經網絡(Convolutional Neural Network,CNN)能更好地理解語義信息,并利用稀疏連接縮短運算時間,提高效率。文獻[28]為改進人工設計特征提取,采用卷積神經網絡進行特征提取并取得較好效果;涂文博等[29]驗證了采用無池化卷積神經網絡的速度是池化層卷積神經網絡的4 倍左右;王星等[30]認為目前的分詞模型只利用到漢字,字根和五筆等深層次特征也應考慮在內。采用膨脹卷積神經網絡,使用CRF 進行解碼,結果表明準確度和速度都高于Bi-LSTM 模型。可見,卷積神經網絡早已進入分詞領域。
對于分詞速度的影響因素主要有網絡結構的復雜性以及解碼方式。目前,分詞準確度已達到相當高的水平,因此在保證準確率的前提下,速度成為分詞研究的重要方向,而卷積神經網絡對速度和準確率的兼顧性使其具有極大的研究價值。
分詞技術正在逐步改進。基于詞典分詞的機械分詞方法操作簡單,實現快速,但利用已有的詞典直接匹配獲取存在領域局限性,并且歧義性和局外詞匯識別差。基于統計分詞的監督學習算法改進了歧義等問題,將分詞轉換為序列標注問題,CRF 模型和HMM 模型成為統計分詞的主要方法。近年,神經網絡的出現使分詞準確度有了極大提高,但在Bi-LSTM+CRF 算法應用于分詞領域后,準確度的提升空間逐步變小,如表1 所示。

Table 1 F1 value of participle in each document表1 各文獻分詞F1 值
雖然各文獻所用方法存在外部差異,如外加字典、預處理、Dropout 等,但結果波動不大。由此可見,目前分詞領域研究已經趨于成熟,作為基礎任務可滿足絕大部分NLP問題研究。但是,分詞性能和速度存在不一致性,而卷積神經網絡由于速度優勢,近年也常應用于自然語言處理領域并取得顯著成效。
中文分詞研究應該兼顧準確度與速度,在兩者之間選擇平衡點,卷積神經網絡在速度上的優勢勢必會給分詞領域帶來重大改進。