手把手教你用Jieba做中文分词
導讀:近年來,隨著NLP技術日益成熟,開源實現的分詞工具越來越多,如Ansj、HanLP、盤古分詞等。本文我們選取了Jieba進行介紹。
作者:杜振東 涂銘
來源:大數據DT(ID:hzdashuju)
01 Jieba的特點
1. 社區(qū)活躍
Jieba在GitHub上已經有25.3k的star數目。社區(qū)活躍度高,代表著該項目會持續(xù)更新,能夠長期使用,用戶在實際生產實踐中遇到的問題也能夠在社區(qū)進行反饋并得到解決。
2. 功能豐富
Jieba并不是只有分詞這一個功能,它是一個開源框架,提供了很多在分詞之上的算法,如關鍵詞提取、詞性標注等。
3. 提供多種編程語言實現
Jieba官方提供了Python、C++、Go、R、iOS等多平臺多語言支持,不僅如此,還提供了很多熱門社區(qū)項目的擴展插件,如ElasticSearch、solr、lucene等。在實際項目中,使用Jieba進行擴展十分容易。
4. 使用簡單
Jieba的API總體來說并不多,且需要進行的配置并不復雜,適合新手上手。下載完成后,可以使用如下命令進行安裝。
pip?install?jiebaJieba分詞結合了基于規(guī)則和基于統(tǒng)計兩類方法。首先基于前綴詞典進行詞圖掃描,前綴詞典是指詞典中的詞按照前綴包含的順序排列,如詞典中出現了“上”,之后以“上”開頭的詞都會出現在一起,如詞典中出現“上海”一詞,進而會出現“上海市”等詞,從而形成一種層級包含結構。
如果將詞看作節(jié)點,詞和詞之間的分詞符看作邊,那么一種分詞方案則對應著從第一個字到最后一個字的一條分詞路徑。因此,基于前綴詞典可以快速構建包含全部可能分詞結果的有向無環(huán)圖,這個圖包含多條分詞路徑,有向是指全部的路徑都始于第一個字、止于最后一個字,無環(huán)是指節(jié)點之間不構成閉環(huán)。
其次,基于標注語料、使用動態(tài)規(guī)劃的方法可以找出最大概率路徑,并將其作為最終的分詞結果。對于未登錄詞,Jieba使用了基于漢字成詞的HMM模型,采用了Viterbi算法進行推導。
02 Jieba的3種分詞模式
Jieba提供了以下3種分詞模式。
精確模式:試圖將句子精確地切開,適合文本分析。
全模式:把句子中所有可以成詞的詞語都掃描出來。全模式處理速度非常快,但是不能解決歧義。
搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適用于搜索引擎分詞。
下面是使用這3種模式的對比。
import?jiebasent?=?'中文分詞是文本處理不可或缺的一步!' seg_list?=?jieba.cut(sent,?cut_all=True)print('全模式:',?'/?'?.join(seg_list))?seg_list?=?jieba.cut(sent,?cut_all=False) print('精確模式:',?'/?'.join(seg_list))?seg_list?=?jieba.cut(sent)?? print('默認精確模式:',?'/?'.join(seg_list))seg_list?=?jieba.cut_for_search(sent)?? print('搜索引擎模式',?'/?'.join(seg_list))運行結果如下所示。
全模式:中文/?分詞/?是/?文本/?文本處理/?本處/?處理/?不可/?不可或缺/?或缺/?的/?一步/?/? 精確模式:中文/?分詞/?是/?文本處理/?不可或缺/?的/?一步/?! 默認精確模式:中文/?分詞/?是/?文本處理/?不可或缺/?的/?一步/?! 搜索引擎模式中文/?分詞/?是/?文本/?本處/?處理/?文本處理/?不可/?或缺/?不可或缺/?的/?一步/?!可以看到,在全模式和搜索引擎模式下,Jieba會把分詞的所有可能都打印出來。一般直接使用精確模式即可,但是在某些模糊匹配場景下,使用全模式或搜索引擎模式更適合。
關于作者:杜振東,國家標準委人工智能技術專家和AIIA(中國人工智能產業(yè)發(fā)展聯(lián)盟)技術專家。擁有8年機器學習與文本挖掘相關技術經驗,6年中文自然語言處理相關項目實戰(zhàn)經驗,擅長PyTorch、TensorFlow等主流深度學習框架,擅長運用NLP前沿技術解決真實項目的難題。
涂銘,數據架構師和人工智能技術專家,曾就職于阿里,現就職于騰訊。對大數據、自然語言處理、圖像識別、Python、Java等相關技術有深入的研究,積累了豐富的實踐經驗。?
本文摘編自《會話式AI:自然語言處理與人機交互》,經出版方授權發(fā)布。
延伸閱讀《會話式AI:自然語言處理與人機交互》
點擊上圖了解及購買
轉載請聯(lián)系微信:DoctorData
推薦語:騰訊、國家標準委AI專家撰寫,詳解NLP和人機交互,從算法、實戰(zhàn)3維度講解聊天機器人原理、實現與工程實踐。
劃重點????
干貨直達????
終于有人把智能語音處理講明白了
終于有人把5G+人工智能講明白了
終于有人把條件概率和貝葉斯公式講明白了
手把手教你用ECharts畫柱狀圖
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優(yōu)質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?|?講明白?|?神操作
大數據?|?云計算?|?數據庫?|?Python?|?可視化
AI?|?人工智能?|?機器學習?|?深度學習?|?NLP
5G?|?中臺?|?用戶畫像?|?1024?|?數學?|?算法?|?數字孿生
據統(tǒng)計,99%的大咖都完成了這個神操作
????
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的手把手教你用Jieba做中文分词的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么雷军指责“华为不懂研发”?
- 下一篇: 那个陪你聊微信、发自拍的妹子,可能不是人