Macropodus中文分詞方法綜述詳解(CWS, chinese word segment)

一、Macropodus簡介

        Macropodus自然語言處理工具(Albert+BiLSTM+CRF) 擁有中文分詞 命名實體識別 新詞發現 關鍵詞 文本摘要 計算器 中文

數字阿拉伯數字轉換等算法,其中,中文分詞無疑是最最重要的,對於一個通用的自然語言處理工具來說。

        github地址: https://github.com/yongzhuo/Macropodus

二、 中文分詞概述

        中文分詞,是東亞地區自然語言處理NLP所獨有的一個任務,包括CJKV(中日韓越統一表意文字),即Unicode編碼。這

是一種有別於字母文字(語言以空格間隔)的分詞方法。這是漢文化圈獨有的自然語言,人類智慧的結晶。當然,這種高級的語

言也帶了高難度的挑戰,那就是分詞的挑戰。

       不同於英文等語言,中文分詞的難點在於 :

               1、中文分詞標準不統一(主要是粒度,例如"/姜嫄嫄/","/姜/嫄嫄/");

               2、未登錄問題(即新詞,如網絡新詞"給力","坑爹", "盤它"等);

               3、歧義問題(如句子"民可使由之不可使知之")

               4、複合詞的識別(限定量詞,重疊詞,派生詞,例如"一個個", "範範范瑋琪", "上班族", "氣功熱")

               5、專有名詞的識別(例如"哈工大SCIR實驗室")

       從某種意義上說,標點符號未被創造前,中國古代的"斷句","句讀"也是一種廣義上的分詞,或者更說是分句。那麼,這一

延續了五千多年的難題,在新時代,信息時代,互聯網時代,尤其是移動互聯網時代、人工智能時代,有了怎樣的進展呢,下面

我們一一道來。

 
三、 分詞方法大全

       1.自我感觸

        從80年代末九十年代電腦走進千家萬戶,尤其是互聯網的迅猛發展,中文分詞算法也得以快速發展。第一次接觸中文分詞算法,是在使用Java版全文檢索引擎Lence的時候。當時感覺到內置的CJKAnalyzer算法很不錯。記憶中,印象中最深刻的開分詞算法,無疑是IKAnalyzer了,準確,輕量,高效,當時就爲這個算法深深所吸引。這種機械式分詞,讓我感受到的是,工業時代那摧毀一切的神祕力量。

        後來又慢慢接觸了ansj和HanLP,深深爲其所着迷。其強大的性能,以及無與倫比的用戶體驗,讓我感受到了開源運動的強大魅力。傳統機器學習的有監督算法散發出強大的力量,由於其超高的準確率和新詞發現效能,開始統治江湖,透露出無與倫比的統治力量。

        深度學習興起以後,python火了,其高效、簡潔的編程思想深深震撼了我,這時候我又接觸到了Jieba、snownlp等,查看他們的原理,我不禁感慨萬千。近年來,開源社區迅猛發展,THULAC-Python, pkuseg-python, Jiagu, Jiayan, Macropodus等優秀開源NLP工具不斷湧現,帶給我們的不只感動,還有不斷踏上新徵程的信息。

        近些年來,大數據與雲計算的發展,百度、阿里、騰訊、搜狗等互聯網企業;哈工大、復旦大學、清華北大等院校科研機構;更是把分詞、詞性標註、實體識別等通用NLP任務做成微服務,就像蓄水池一樣,提供線上流量計算。

        新時代新發展新徵程,我感覺十分有必要,回顧一下中文分詞的發展歷程,只有銘記歷史,我們才能更好地引領未來。

2.中文分詞歷史

        歷史早已久遠,很多也找不到資料,我們只能從別人的歷史回顧、中文分詞比賽、里程碑式論文等,探究那不爲人知的歷史進程。

        自然語言處理是人工智能的終極目標之一,二十世紀以前,中文分詞還是傳統規則分詞的天下。必須指出的是,中文分詞是隨着電子技術的發展而發展起來的,尤其是文本翻譯(中外翻譯)、電腦錄入(拼音輸入法)、搜索引擎等的推動作用。自動化是解放勞動力的、提高勞動生產效率的必由之路。人們一直希望能夠讓機器達到自動翻譯、自動搜索檢索的目標,達到這些目標的關鍵點在於理解詞義、語義等,其中最基礎的便是分詞,劃分出中文的基本單元之一。中文分詞是如此基本和基礎的任務,以致於人們很早就開始研究它們。在二十一世紀以前,東北亞地區的人們逐漸總結出了一套有效的分詞方法。

         第一種流派是字符串匹配派,純字典式的,基於詞典的高效分詞方法,也稱機械分詞方法,諸如”反向切詞”、”正向切詞”、 “近鄰匹配算法”、“雙向切詞”、”最大切詞”、“最小切詞”、“最短路徑匹配算法”、“最大最小切詞”等。這一大批高效、準確的機械分詞方法實質就是字符串匹配。構建一個好的詞庫,優化工程,準確率便能達到70%-80%。必須要需要指出的是,這個流派的集大成者是mmseg4J算法,論文《Word Identification_For_Mandarin Chinese Sentences》,1992年論文中總結的6條規律,歧義消除的成功率可以達到99.77%,至今仍然被廣泛使用。

         第二種流派是傳統統計學派,這裏的統計學派指的是狹義上的統計學派。基於統計學的分詞方法一般也需要海量的中文語料庫,統計挖掘語言的統計信息,結合構建語言模型來分詞,如”N-Gram信息”。統計是非常有必要的,是數據挖掘的重要基石。該流派最出名的算法要數”最大概率分詞算法”了,在一個大的語料庫中,成詞的字共同出現的概率是比較大的,這也是新詞發現的理論基礎。

       利用N-Gram和馬爾可夫鏈原理當前詞的出現只與其前一個詞出現有關,所以一個句子分詞的概率就等於句中各個詞語出現概率的乘積。利用這一思想,python語言編寫的jieba中的最大概率分詞方法,結合字典和動態規劃,開發出史上最成功的中文分詞算法,github上star超過20k。

         第三個流派是傳統機器學習派, 機器學習,有監督的學習。2002年第一篇字標註中文分詞論文《Combining Classifiers for Chinese Word Segmentation》的發表,標誌着機器學習在分詞領域中得到應用。隨後2003年的論文《Chinese Word Segmentation as LMR Tagging》,使用最大熵訓練的字標註分詞算法,在Bakeoff2003的測評中,OOV召回率取得了最好成績,由此,字標註的方法開始得到重視,並迅速催生到ME、SVM、CRF和特徵抽取的比拼上,其影響延續至今。

        其中,近來喧囂一時的LTP、THULAC和pkuseg,使用的便是特徵提取+CRF方案。

        第四個流派是深度學習派,該派別也是多使用有監督的學習方案,主張引入更多的外部信息(如字/詞/句embedding、外部字典),以達到更好的分詞效果。在Bakeoff開放測試效果已經超出了傳統機器學習方法。近來的熱點,如多標準語料協同訓練(如pku數據集和msra數據集),多任務聯合訓練(如分詞和詞性標註),前景更是不可估量。現在多用得比較多的網絡架構還是Embedding + BI-LSTM+CRF等,如萬年老版本0.39的Jieba加入了paddlepaddle深度學習框架的雙向GRU分詞模型,HanLP也全部轉python,上線了BERT等embedding的各種模型(tensorflow=2.1.0),展露頭角的Jiagu是基於tensorflow1.5和BiLSTM。

        第五個流派是語義理解派,該派別認爲要從句法分析、語義理解的基礎上進行分詞,如文法、依存句法等。不過似乎歷史上並沒有做出很大的成果,由於系統複雜,效果不佳,暫時沒有了聲音。近年來的聯合訓練,倒是可以勉強劃分部分進入這個派別。

        

四、 Macropodus分詞實踐簡述

        中文分詞CWS:

                       1.  使用Embedding(char,word,albert) + BiLSTM + CRF網絡架構(或單獨BiLSTM, 單獨CRF)

                       2.  使用4標註法BMES,使用人民日報199801語料訓練

                       結論: acc等只能達到80%,甚至不如詞典分詞,原因未知(可能是語料不足,無規律性的上下文信息)

        詞性標註POS:

                      1.  使用Embedding(char, albert) + BiLSTM + CRF詞性標註

                       2.  使用3標註法BIO,使用人民日報199801語料訓練

                       結論: acc等只能達到97%左右,效果還可以,應該是有上下文的原因

        命名實體提取NER:

                      1.  使用Embedding(char, albert) + BiLSTM + CRF詞性標註

                       2.  使用3標註法BIO,使用人民日報199801語料訓練

                       結論: acc等只能達到97%左右,效果還可以,應該是有上下文的原因

希望對你有所幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章