自然語言處理系列六》中文分詞》中文分詞原理

2021-10-18 16:20:40 字數 2264 閱讀 8809

《分布式機器學習實戰》(人工智慧科學與技術叢書)【陳敬雷編著】【清華大學出版社】

總結中文分詞(chinese word segmentation) 指的是將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。我們知道,在英文的行文中,單詞之間是以空格作為自然分界符的,而中文的詞沒有乙個形式上的分界符,雖然英文也同樣存在短語的劃分問題,不過在詞這一層上,中文比英文要複雜得多、困難得多。

我們先來看下中文分詞的實現有幾種方式,簡單來說,中文分詞根據實現特點大致可分為兩個類別:基於詞典的分詞方法、基於統計的分詞方法。

基於詞典的分詞方法

基於詞典的分詞方法首先會建立乙個充分大的詞典,然後依據一定的策略掃瞄句子,若句子中的某個子串與詞典中的某個詞匹配,則分詞成功。

常見的掃瞄策略有:正向最大匹配、逆向最大匹配、雙向最大匹配和最少詞數分詞。

1)正向最大匹配

對輸入的句子從左至右,以貪心的方式切分出當前位置上長度最大的詞,組不了詞的字單獨劃開。其分詞原理是:詞的顆粒度越大,所能表示的含義越精確。

2)逆向最大匹配

原理與正向最大匹配相同,但順序不是從首字開始,而是從末字開始,而且它使用的分詞詞典是逆序詞典,其中每個詞條都按逆序方式存放。在實際處理時,先將句子進行倒排處理,生成逆序句子,然後根據逆序詞典,對逆序句子用正向最大匹配。

3)雙向最大匹配

將正向最大匹配與逆向最大匹配組合起來,對句子使用這兩種方式進行掃瞄切分,如果兩種分詞方法得到的匹配結果相同,則認為分詞正確,否則,按最小集處理。

4)最少詞數分詞

即一句話應該分成數量最少的詞串,該方法首先會查詢詞典中最長的詞,看是不是所要分詞的句子的子串,如果是則切分,然後不斷迭代以上步驟,每次都會在剩餘的字串中取最長的詞進行分詞,最後就可以得到最少的詞數。

總結:基於詞典的分詞方法簡單、速度快,效果也還可以,但對歧義和新詞的處理不是很好,對詞典中未登入的詞沒法進行處理。

基於統計的分詞方法

基於統計的分詞方法是從大量已經分詞的文字中,利用統計學習方法來學習詞的切分規律,從而實現對未知文字的切分。隨著大規模語料庫的建立,基於統計的分詞方法不斷受到研究和發展,漸漸成為了主流。

常用的統計學習方法有:隱馬爾可夫模型(hmm)、條件隨機場(crf)和基於深度學習的方法。

1)hmm和crf

這兩種方法實質上是對序列進行標註,將分詞問題轉化為字的分類問題,每個字有4種詞位(類別):詞首(b)、詞中(m)、詞尾(e)和單字成詞(s)。由字構詞的方法並不依賴於事先編制好的詞典,只需對分好詞的語料進行訓練即可。當模型訓練好後,就可對新句子進行**,**時會針對每個字生成不同的詞位。其中hmm屬於生成式模型,crf屬於判別式模型。

2)基於深度學習的方法

神經網路的序列標註演算法在詞性標註、命名實體識別等問題上取得了優秀的進展,這些端到端的方法也可以遷移到分詞問題上。與所有深度學習的方法一樣,該方法需要較大的訓練語料才能體現優勢,代表為bilstm-crf。

總結:基於統計的分詞方法能很好地處理歧義和新詞問題,效果比基於詞典的要好,但該方法需要有大量人工標註分好詞的語料作為支撐,訓練開銷大,就分詞速度而言不如前一種。在實際應用中一般是將詞典與統計學習方法結合起來,既發揮詞典分詞切分速度快的特點,又利用了統計分詞結合上下文識別生詞、自動消除歧義的優點。

上面給大家講了中文分詞的原理,下面自然語言處理系列會接著更詳細的講解具體實現和主流的開源分詞工具。

【新書介紹】

《分布式機器學習實戰》(人工智慧科學與技術叢書)【陳敬雷編著】【清華大學出版社】

【精品課程】

《分布式機器學習實戰》大資料人工智慧ai專家級精品課程

從python程式設計零基礎小白入門到人工智慧高階實戰系列課

【充電了麼公司介紹】

專注工作職業技能提公升和學習,提高工作效率,帶來經濟效益!今天你充電了麼?

充電了麼官網

功能特色如下:

【全行業職位】 - 專注職場上班族職業技能提公升

除了專業技能學習,還有通用職場技能,比如企業管理、股權激勵和設計、職業生涯規劃、社交禮儀、溝通技巧、演講技巧、開會技巧、發郵件技巧、工作壓力如何放鬆、人脈關係等等,全方位提高你的專業水平和整體素質。

【牛人課堂】 - 學習牛人的工作經驗

1.智慧型個性化引擎:

2.聽課全網搜尋

2.閱讀全網搜尋

【機械人老師】 - 個人提公升趣味學習

基於搜尋引擎和智慧型深度學習訓練,為您打造更懂你的機械人老師,用自然語言和機械人老師聊天學習,寓教於樂,高效學習,快樂人生。

【精短課程】 - 高效學習知識

海量精短牛人課程,滿足你的時間碎片化學習,快速提高某個技能知識點。

自然語言處理 中文分詞原理

1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...

自然語言處理入門 中文分詞原理

1.中文分詞原理介紹 1.1 中文分詞概述 中文分詞 chinese word segmentation 指的是將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2 中文分詞方法介紹 現有的分詞方法可分為三大類 基於字串匹配的分詞方法 基於理解的分...

自然語言處理之中文分詞工具彙總

import jieba jieba.load userdict txt 載入自定義詞 deffunc jieba posseg ret jieba.posseg.cut 這衣服都起球了,給我退了吧 list jieba i for i in posseg ret print list jieba ...