Python分詞模塊01: jieba安裝鸯旁,分詞噪矛,提取關(guān)鍵詞,自定義分詞铺罢,切換詞庫

講python的pypinyin的時候艇挨,我提到了分詞模塊jieba,說話結(jié)巴的jieba韭赘。它是python比較好用的分詞模塊, 支持中文簡體缩滨,繁體分詞,還支持自定義詞庫泉瞻。
那在01這里我主要講jieba的分詞脉漏,提取關(guān)鍵詞,自定義詞語袖牙,詞庫切換這幾個功能侧巨。

安裝jieba####

命令安裝:

pip install jieba
**github里下載安裝**
地址 :https://github.com/fxsjy/jieba

jieba的基本使用:分詞,提取關(guān)鍵字####

分詞cut
jieba.cut()分詞提供了多種模式:全模式鞭达,精確模式司忱,搜索引擎模式
全模式:速度塊,掃描成詞的詞語畴蹭,但時會出現(xiàn)歧義的詞語
精確模式:盡可能最準確非切分詞語坦仍,比較適合作文本分析
搜索引擎模式:就是精確模式的基礎(chǔ)上 ,對長詞再次切分撮胧,提高召回率
例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
import jieba
strt = "人人編程時我們桨踪,適合編程初學者學習python的教材,也是好專業(yè)的童鞋關(guān)注學習" 
# 全模式
sl = jieba.cut(strt, cut_all=True)
print "全模式分詞結(jié)果:", ",".join(sl)
print('\n')
 
# 精確模式,默認hi精確模式芹啥,所以可以不指定cut_all=False
sl = jieba.cut(strt, cut_all=False)
print "精確模式分詞結(jié)果:", ",".join(sl)
print('\n')
 
# 搜索引擎模式
sl = jieba.cut_for_search(strt)
print "搜索引擎模式分詞結(jié)果:", ",".join(sl)
(venv) allenwoo@~/renren$ python test.py 
Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/5c/0vmv6d5d2pqdwfl78gc436zw0000gn/T/jieba.cache
Loading model cost 0.438 seconds.
Prefix dict has been built succesfully.
全模式分詞結(jié)果: 人人,編程,時,我們,,,適合,合編,編程,初學,初學者,學者,學習,python,的,教材,,,也,是,好,專業(yè),的,童鞋,關(guān)注,學習


精確模式分詞結(jié)果: 人人,編程,時,我們,锻离,,適合,編程,初學者,學習,python,的,教材,,,也,是,好,專業(yè),的,童鞋,關(guān)注,學習


搜索引擎模式分詞結(jié)果: 人人,編程,時,我們,墓怀,,適合,編程,初學,學者,初學者,學習,python,的,教材,汽纠,,也,是,好,專業(yè),的,童鞋,關(guān)注,學習
解釋:從結(jié)果可以看出"全模式"有不少歧義,比如適合,合編,編程,初學,初學者,學者傀履,而精確模式的結(jié)果是:適合,編程,初學者

執(zhí)行前jieba會初始化加載詞庫虱朵,如下

Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/5c/0vmv6d5d2pqdwfl78gc436zw0000gn/T/jieba.cache
Loading model cost 0.438 seconds.
Prefix dict has been built succesfully.

附:如果不希望每次都加載詞庫,可以讓jieba初始化后再后臺一直運行:
比如在flask中使用的時候應(yīng)該在初始化app文件中初始化jieba钓账,然后其他程序再調(diào)用初始化后的碴犬,這個之后講flask的時候會講到

關(guān)鍵字提取nalyse.extract_tags:
jieba.analyse.extract_tags(sentence,topK)
sentence: 文本字符串
topK:  前幾個,默認時20

例子:
注意:import jieba.analyse梆暮,而不是jieba

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
import jieba
import jieba.analyse
strt = "人人編程是適合編程初學者學習python關(guān)注的公眾號服协,也是好專業(yè)的童鞋關(guān)注學習。我們講講解python基礎(chǔ)編程啦粹,python一些第三方模塊的使用偿荷,python一些第三方框架如flask web框架等"
# topK 默認為20
keywords = jieba.analyse.extract_tags(strt)
print(",".join(keywords))
print("\n")
 
keywords = jieba.analyse.extract_tags(strt, topK=3)
print(",".join(keywords))
print("\n")
 
# 有時候我們不確定該取幾個關(guān)鍵詞窘游,這個時候我們可以取總詞的百分比
sl = jieba.cut(strt)
w_cnt = len(list(sl))
print("一共有{}個詞".format(w_cnt))
# 取5%
get_cnt = int(w_cnt*0.05)
print("取5%數(shù)量的關(guān)鍵詞:{}個".format(get_cnt))
keywords = jieba.analyse.extract_tags(strt, topK=get_cnt)
print(",".join(keywords))
python,編程,第三方,框架,童鞋,web,flask,學習,初學者,關(guān)注,模塊,講解,一些,人人,公眾,適合,專業(yè),基礎(chǔ),使用,我們


python,編程,第三方


一共有46個詞
取5%數(shù)量的關(guān)鍵詞:2個
python,編程

jieba動態(tài)添加自定義詞

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
import jieba
strt = "我是巴拉巴拉小魔鬼" 
sl = jieba.cut(strt)
print "[自定義前]:","/".join(sl)
 
# 添加自定義詞
jieba.add_word('巴拉巴拉')
jieba.add_word('小魔鬼')
sl = jieba.cut(strt)
print "[自定義后]:", "/".join(sl)
[自定義前]: 我/是/巴拉巴/拉小/魔鬼
[自定義后]: 我/是/巴拉巴拉/小魔

自定義詞庫
我們也可以自己定義了詞庫,需要使用的時候把我們自定義的詞庫也load進來跳纳,這樣jieba就會同時使用 “jieba初始化時加載的詞庫” 和 “我們自定義的詞庫”

在我們本地下新建一個文件renren-dict.txt, 寫入一個詞語
(venv) allenwoo@~/renren$ cat renren-dict.txt 
python人 5 nz
#!/usr/bin/python
# -*- coding: UTF-8 -*- 
import jieba
strt = "我們python人忍饰,玩蛇者" 
sl = jieba.cut(strt)
print "[加載自定義詞庫前]:","/".join(sl)
 
# 加載自定義詞庫
jieba.load_userdict("./renren-dict.txt")
sl = jieba.cut(strt)
print "[加載自定義詞庫后]:", "/".join(sl)
[加載自定義詞庫前]: 我們/python/人/,/玩蛇者
[加載自定義詞庫后]: 我們/python人/寺庄,/玩蛇者
因為我們自定義的詞庫將 “python人”定義為一個詞了

詞庫切換:
上面的load_userdict時加載自定義詞庫和jieba初始化詞庫一同使用
但是艾蓝,默認的初始化詞庫放在安裝目錄下,很多時候我們需要替換掉它斗塘,替換成我們覺得更全面的詞庫饶深。還有時候我們需要將它放到自己的目錄下面。
這個時候我們就可以使用jieba的詞庫切換功能set_dictionary()
我們可以將jieba默認詞庫copy到我們自己目錄下逛拱,也可以網(wǎng)上尋找更全面的詞庫
(ubuntu)默認詞庫路徑在模塊安裝路徑下:
如果是虛擬環(huán)境

venv/lib/python2.7/site-packages/jieba/dict.txt

例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 
import jieba
# 切換詞庫
jieba.set_dictionary("./renren-dict.txt")
strt = "我們python人,玩蛇者" 
sl = jieba.cut(strt)
print "/".join(sl)

如果我們切換了詞庫台猴,這個時候程序就會初始化我們指定的詞庫朽合,而不加載默認路徑的詞庫

(venv) allenwoo@~/renren$ python test.py 
Building prefix dict from /Users/allenwoo/renren/renren-dict.txt ...
Dumping model to file cache /var/folders/5c/0vmv6d5d2pqdwfl78gc436zw0000gn/T/jieba.ue964acea829f11ec25dab31f363e67bf.cache
Loading model cost 0.003 seconds.
Prefix dict has been built succesfully.
我們/python人/,/玩蛇者

jieba的功能還沒講完饱狂,還有其他幾個功能就留著下吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曹步,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子休讳,更是在濱河造成了極大的恐慌讲婚,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俊柔,死亡現(xiàn)場離奇詭異筹麸,居然都是意外死亡,警方通過查閱死者的電腦和手機雏婶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門物赶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人留晚,你說我怎么就攤上這事酵紫。” “怎么了错维?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵奖地,是天一觀的道長。 經(jīng)常有香客問我赋焕,道長参歹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任宏邮,我火速辦了婚禮泽示,結(jié)果婚禮上缸血,老公的妹妹穿的比我還像新娘。我一直安慰自己械筛,他們只是感情好捎泻,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著埋哟,像睡著了一般笆豁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赤赊,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天闯狱,我揣著相機與錄音,去河邊找鬼抛计。 笑死哄孤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的吹截。 我是一名探鬼主播瘦陈,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼波俄!你這毒婦竟也來了晨逝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤懦铺,失蹤者是張志新(化名)和其女友劉穎捉貌,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冬念,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡趁窃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了急前。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棚菊。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叔汁,靈堂內(nèi)的尸體忽然破棺而出统求,到底是詐尸還是另有隱情,我是刑警寧澤据块,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布码邻,位于F島的核電站,受9級特大地震影響另假,放射性物質(zhì)發(fā)生泄漏像屋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一边篮、第九天 我趴在偏房一處隱蔽的房頂上張望己莺。 院中可真熱鬧奏甫,春花似錦、人聲如沸凌受。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胜蛉。三九已至挠进,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誊册,已是汗流浹背领突。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留案怯,地道東北人君旦。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像嘲碱,于是被迫代替她去往敵國和親于宙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容