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