[點晴永久免費OA]中文分詞研究入門
當前位置:點晴教程→點晴OA辦公管理信息系統
→『 經驗分享&問題答疑 』
導讀 本文首先簡單介紹了自然語言處理和科研過程中重要的四部曲——調研、思考、編程和寫作,然后對中文分詞問題進行了說明,介紹了中文分詞存在的難點如消歧、顆粒度問題、分詞標準等。接著,本文總結了調研文獻中的分詞方法,包括基于詞典的最大匹配法以及其相應的改進方法、基于字標注的分詞方法等,同時也介紹了當前中文分詞的研究進展和方向,如統計與詞典相結合、基于深度學習的分詞方法等。而后,本文具體介紹了如何基于詞典的雙向最大匹配法以及基于字標注的平均感知機進行分詞的實驗,對實驗結果進行了分析并給出了幾種改進模型的思路。最后,本文給出了相應的參考文獻以及其他資料。
1. 導論 1.1 自然語言處理簡介自然語言處理(NLP, Natural Language Processing)是用機器處理人類語言(有別于人工語言,如程序設計語言)的理論和技術。自然語言處理是人工智能的一個重要分支,屬于計算機應用技術(有別于計算機技術)。計算機應用技術作為二級學科所屬于一級學科計算機科學技術。自然語言處理又可以稱作自然語言理解或計算語言學。 自然語言處理是一個貼近應用的研究方向。NLP大致可分為基礎研究和應用技術研究。基礎研究包括詞法分析、句法分析、語義分析和篇章理解等;應用技術研究包括文本挖掘、自動問答、信息檢索、信息抽取、機器翻譯等。 1.2 科學研究方法研究活動的大致流程可以遵循如下四個階段[1]:
第一階段閱讀大約占整個過程的30%。收集并閱讀資料是研究過程的第一步。現在的資料浩如煙海,如何收集到有價值的資料極為重要。研究的資料主要是論文,我們應該閱讀重要的論文,而重要的論文往往具有以下一種或多種特征:
如何閱讀一篇論文?閱讀論文時應注意以下幾點:
第二階段思考大約占整個過程的20%。"學而不思則罔",在閱讀過程中以及閱讀后應該積極思考。 第三階段編程大約占整個過程的20%。第一步是收集數據,數據可以是標準的評測數據,也可以是自己采集的真實數據。第二步是編寫程序,實現算法。第三步是分析結果。 第四階段寫作大約占整個過程的30%。寫作是科學研究的一個重要過程。論文是研究成果的體現,將自己的研究成果很好的展示給學術界,才能體現出研究的價值。 上述四個階段不是瀑布式而是螺旋式,是對研究的方向不斷深入的過程。 1.3 中文分詞問題介紹中文信息處理是指自然語言處理的分支,是指用計算機對中文進行處理。和大部分西方語言不同,書面漢語的詞語之間沒有明顯的空格標記,句子是以字串的形式出現。因此對中文進行處理的第一步就是進行自動分詞,即將字串轉變成詞串。 自動分詞的重要前提是以什么標準作為詞的分界。詞是最小的能夠獨立運用的語言單位。詞的定義非常抽象且不可計算。給定某文本,按照不同的標準的分詞結果往往不同。詞的標準成為分詞問題一個很大的難點,沒有一種標準是被公認的。但是,換個思路思考,若在同一標準下,分詞便具有了可比較性。因此,只要保證了每個語料庫內部的分詞標準是一致的,基于該語料庫的分詞技術便可一較高下[3]。 分詞的難點在于消除歧義,分詞歧義主要包括如下幾個方面:
除了上述歧義,有些歧義無法在句子內部解決,需要結合篇章上下文。例如,"乒乓球拍賣完了",可以切分為"乒乓/球拍/賣/完/了",也可以切分成"乒乓球/拍賣/完/了"。這類分詞歧義使得分詞問題更加復雜。 詞的顆粒度選擇問題是分詞的一個難題。研究者們往往把"結合緊密、使用穩定"視為分詞單位的界定準則,然而人們對于這種準則理解的主觀性差別較大,受到個人的知識結構和所處環境的很大影響[3]。選擇什么樣的詞的顆粒度與要實現具體系統緊密相關。例如在機器翻譯中,通常顆粒度大翻譯效果好。比如"聯想公司"作為一個整體時,很容易找到它對應的英文翻譯Lenovo,如果分詞時將其分開,可能翻譯失敗。然而,在網頁搜索中,小的顆粒度比大的顆粒度好。比如"清華大學"如果作為一個詞,當用戶搜索"清華"時,很可能就找不到清華大學。[10] 2. 中文分詞文獻調研 2.1 最大匹配法梁南元在1983年發表的論文《書面漢語的自動分詞與另一個自動分詞系統CDWS》提到,蘇聯學者1960年左右研究漢俄機器翻譯時提出的 6-5-4-3-2-1 分詞方法。其基本思想是先建立一個最長詞條字數為6的詞典, 然后取句子前6個字查詞典,如查不到, 則去掉最后一個字繼續查, 一直到找著一個詞為止。梁南元稱該方法為最大匹配法——MM方法(The Maximum Matching Method)。由MM方法自然引申,有逆向的最大匹配法。它的分詞思想同MM方法,不過是從句子(或文章)末尾開始處理的,每次匹配不成詞時去掉最前面的字。雙向最大匹配法即為MM分詞方法與逆向MM分詞方法的結合。梁南元等人首次將MM方法應用于中文分詞任務,實現了我國第一個自動漢語自動分詞系統CDWS。[2] 2.2 復雜最大匹配法復雜最大匹配算法, 由Chen 和Liu在《Word identification for Mandarin Chinese sentences》提出[4]。該文提出了三詞語塊(three word chunks)的概念。三詞語塊生成規則是: 在對句子中的某個詞進行切分時,如果有歧義拿不定主意,就再向后展望兩個漢語詞,并且找出所有可能的三詞語塊。在所有可能的三詞語塊中根據如下四條規則選出最終分詞結果。 規則1: 最大匹配 (Maximum matching) 其核心的假設是:最可能的分詞方案是使得三詞語塊(three-word chunk)最長。 規則2: 最大平均詞長(Largest average word length) 在句子的末尾,很可能得到的"三詞語塊"只有一個或兩個詞(其他位置補空),這時規則1就無法解決其歧義消解問題,因此引入規則2:最大平均詞長,也就是從這些語塊中找出平均詞長最大的語塊,并選取其第一詞語作為正確的詞語切分形式。這個規則的前提假設是:在句子中遇到多字詞語的情況比單字詞語更有可能。 規則3:最小詞長方差(Smallest variance of word lengths) 還有一些歧義是規則1和規則2無法解決的。因此引入規則3:最小詞長方差,也就是找出詞長方差最小的語塊,并選取其第一個詞語作為正確的詞語切分形式。在概率論和統計學中,一個隨機變量的方差描述的是它的離散程度。因此該規則的前提假設是:句子中的詞語長度經常是均勻分布的。 規則4:最大單字詞語語素自由度之和(Largest sum of degree of morphemic freedom of one-character words) 有可能兩個"三詞語塊"擁有同樣的長度、平均詞長及方差,因此上述三個規則都無法解決其歧義消解問題。規則4主要關注其中的單字詞語。直觀來看,有些漢字很少作為詞語出現,而另一些漢字則常常作為詞語出現,從統計角度來看,在語料庫中出現頻率高的漢字就很可能是一個單字詞語,反之可能性就小。計算單詞詞語語素自由度之和的公式是對"三詞語塊"中的單字詞語頻率取對數并求和。規則4則選取其中和最大的三詞語塊作為最佳的詞語切分形式。 最大匹配算法以及其改進方案是基于詞典和規則的。其優點是實現簡單,算法運行速度快,缺點是嚴重依賴詞典,無法很好的處理分詞歧義和未登錄詞。因此,如何設計專門的未登錄詞識別模塊是該方法需要考慮的問題。 2.3 基于字標注的分詞法2002年,Xue等人在《Combining Classifiers for Chinese Word Segmentation》一文中首次提出對每個字進行標注,通過監督機器學習算法訓練出分類器從而進行分詞[5]。一年后,Xue在最大熵(ME, Maximum Entropy)模型上實現的基于字標注的分詞系統參加了Bakeoff-2003的評測獲得很好的成績引起關注。而后,Xue在《Chinese word segmentation as character tagging》一文中較為詳細的闡述了基于字標注的分詞法[6]。 基于字標注的分詞法基本思想是根據字所在詞的位置,對每個字打上LL、RR、MM和LR四種標簽中的一個。四種標簽的具體含義如下: 類似于詞性標注中的POS(part-of-speech) tags,我們稱上述字標簽為POC(position-of-character) tags。這樣,我們將分詞問題轉變成對漢字進行序列標注的問題。例如: POC tags反映了的一個事實是,分詞歧義問題是由于一個漢字可以處于一個詞的不同位置,而漢字的位置取決于字的上下文。 字標注本質上是訓練出一個字的分類器。模型框架如圖1所示。 圖1 字標注訓練模型框架 設計字特征的關鍵是包含足夠的上下文關系。黃昌寧等人在《中文分詞十年回顧》中提到,在[3]中所有語料庫99%以上的詞都是5字或5字以下的詞。因此,使用寬度為5個字的上下文窗口足以覆蓋真實文本中絕大多數的構詞情形。進一步,該文提到了一個確定有效詞位標注集的定量標準——平均加權詞長。其定義為: 是i≥k時的平均加權詞長,是語料中詞長為k的詞次數,K是語料中出現過的最大詞長,N是語料庫的總詞次數。如果k=1,那么代表整個語料的平均詞長。 經統計,Bakeoff-2003和Bakeoff-2005所有語料庫的平均加權詞長在1.51~1.71之間。因此,5字長的上下文窗口恰好大致表達了前后各一個詞的上下文。 Xue在[6]文給出了如下的特征模板。 學習算法是指監督機器學習算法,常用的有最大熵算法、條件隨機場(CRF, Conditional Random Fields)、支持向量機(SVM, Support Vector Machine)、平均感知機(AP, Averaged Perceptron)等。 基于字標注的分詞方法是基于統計的。其主要的優勢在于能夠平衡地看待詞表詞和未登錄詞的識別問題。其缺點是學習算法的復雜度往往較高,計算代價較大,好在現在的計算機的計算能力相較于以前有很大提升;同時,該方法依賴訓練語料庫,領域自適應較差。基于字標注的分詞方法是目前的主流分詞方法。 2.4中文分詞研究進展2.4.1 統計與字典相結合張梅山等人在《統計與字典相結合的領域自適應中文分詞》提出通過在統計中文分詞模型中融入詞典相關特征的方法,使得統計中文分詞模型和詞典有機結合起來。一方面可以進一步提高中文分詞的準確率,另一方面大大改善了中文分詞的領域自適應性。[7] 圖2 領域自適應性分詞系統框架圖 2.4.2基于深度學習的分詞方法近幾年,深度學習方法為分詞技術帶來了新的思路,直接以最基本的向量化原子特征作為輸入,經過多層非線性變換,輸出層就可以很好的預測當前字的標記或下一個動作。在深度學習的框架下,仍然可以采用基于子序列標注的方式,或基于轉移的方式,以及半馬爾科夫條件隨機場。[11]深度學習主要有兩點優勢:
《Neural Architectures for Named Entity Recognition》一文中提出了一種深度學習框架,如圖3,利用該框架可以進行中文分詞。具體地,首先對語料的字進行嵌入,得到字嵌入后,將字嵌入特征輸入給雙向LSTM,輸出層輸出深度學習所學習到的特征,并輸入給CRF層,得到最終模型。[9] 圖3 一個深度學習框架 3. 中文分詞方法實踐 3.1 基本思路我們首先利用正則表達式提取URL、英文一類特殊詞,對文本數據進行預處理。而后分別實現雙向最大匹配法和基于字標注的平均感知機分詞兩個分詞模塊并一起集成到分詞系統。在使用平均感知機進行分詞訓練時嘗試增加訓練數據集,如使用Bakeoff-2005的PKU訓練數據集和雙向最大匹配法的分詞結果進行增量訓練。 3.2 雙向最大匹配法雙向最大匹配法即對句子分別用正向最大匹配和逆向最大匹配進行分詞,然后根據一定的規則選擇某一分詞結果。我們在實現是所制定的規則為:
3.3 基于字標注的平均感知機分詞方法3.3.1 特征設計我們選擇5個字為上下文窗口大小,即: 該上下文窗口包含如下7個特征: 由于感知機的基本形式是二分類的,而字標注為四分類(多分類)。為了基于感知機實現多分類,將每個字的某一特征權重設計為長度為4的向量,向量的每個分量對于某一分類的權值,如圖4所示。 圖4 字的特征設計 3.3.2 算法設計對于預測算法而言,如果是簡單的序列標注問題,那么取得分最高的標簽即可,但是在中文分詞問題中,當前字的標簽與前一個字的標簽密切相關,例如若前一個字標簽為S(單字成詞),則當前字的標簽只可能為S或B(詞首),為了利用上述信息,我們引入狀態轉移和Viterbi算法。預測算法的偽代碼如圖5所示。 圖5 預測算法偽代碼 在使用隨機梯度下降法的訓練過程中,我們采取平均化參數方法防止某一訓練數據對結果影響較大。訓練算法的偽代碼如圖6所示。 圖6 訓練算法偽代碼 3.3.3 增量訓練在增量訓練中,首先使用初始訓練語料訓練一個初始模型,然后結合初始模型以及增量語料進行增量訓練得到一個增量模型。增量訓練可以提高分詞系統的領域適應性,進一步提高切分中文分詞準確率, 同時避免了對初始語料的需求以及使用全部語料訓練模型所需要的時間。[8]模型增量訓練流程圖如圖7所示: 圖7 模型增量訓練流程圖 3.4 實驗結果及分析表1給出了不同模型下測試數據1(130KB)的評測結果。該測試數據為新聞文本。從表1中可以看出,雙向最大匹配的分詞結果還算不錯,并且算法效率高。平均感知機模型在使用Bakeoff2005的PKU訓練集進行增量訓練后效果提升顯著,同時需要花費額外的訓練時間。最后我們希望結合統計與詞典的優點,嘗試使用最大雙向匹配分詞結果集進行增量訓練,分詞結果有少量提升但并不明顯。 表2給出了不同模型下測試數據2(31KB)的評測結果。該測試數據為微博文本。從表2中可以看出,測試數據2的分詞結果比測試數據1的分詞結果差。并且,值得注意的是,基于平均感知機使用原始訓練集訓練出的模型分詞效果不太理想,而在增量訓練后效果提升非常顯著。這是微博文本相較于新聞文本更加不規范,新詞(如網絡詞)更多等原因造成的。可以推測,若使用分詞標準一致的微博訓練集進行增量訓練,將進一步提高測試數據2的分詞結果。 表1 不同模型下測試數據1的評測結果
表2 不同模型下測試數據2的評測結果
3.5 模型改進思路基于字標注的平均感知機分詞模型的分詞結果已經達到不錯的精度,但是在模型性能和模型分詞精度上仍有提升的空間。 為了提高模型性能,有如下幾種思路[8]:
為了提高模型的分詞精度,有如下幾種思路:
4. 參考文獻 [1] 劉挺, 怎樣做研究, 新浪博客http://blog.sina.com.cn/s/articlelist_1287570921_1_1.html,2007 [2] 梁南元, 書面漢語的自動分詞與另一個自動分詞系統CDWS, 中國漢字信息處理系統學術會議, 桂林, 1983 [3] 黃昌寧,趙海. 中文分詞十年回顧. 中文信息學報. 2007 [4] Chen, K. J. and Liu S.H. Word identification for Mandarin Chinese sentences. Proceedings of the 14th International Conference on Computational Linguistics. 1992. [5] Nianwen Xue and Susan P. Converse. Combining Classifiers for Chinese Word Segmentation, First SIGHAN Workshop attached with the 19th COLING, Taipei, 2002 [6] Nianwen Xue. Chinese word segmentation as character tagging. Computational Linguistics and Chinese Language Processing. 2003 [7] 張梅山. 鄧知龍. 統計與字典相結合的領域自適應中文分詞. 中文信息學報. 2012 [8] 鄧知龍,基于感知器算法的高效中文分詞與詞性標注系統設計與實現,哈爾濱工業大學,2013 [9] Guillaume Lample, Miguel Ballesteros, Sandeep Subramanian, Kazuya Kawakami, and Chris Dyer. Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360. 2016 [10] 吳軍. 數學之美(第二版).人民郵電出版社. 2014 [11] 李正華等,中文信息處理發展報告(2016). 中國中文信息學會. 2016
5. 其他資料 另附常見分詞系統評測結果如下(圖片來源見水印): 該文章在 2020/3/7 15:12:46 編輯過 |
關鍵字查詢
相關文章
正在查詢... |