使用jieba庫分詞python
一.什麼是jieba庫dom
1.jieba庫概述
函數
jieba是優秀的中文分詞第三方庫,中文文本須要經過分詞得到單個詞語。字體
2.jieba庫的使用:(jieba庫支持3種分詞模式)搜索引擎
經過中文詞庫的方式識別spa
精確模式:把文本精確的切分開,不存在冗餘單詞命令行
全模式:把文本全部可能的詞語都描述出來,有冗餘3d
搜索引擎模式:在精確模式的基礎上,對長詞進行切分code
3.jieba庫是屬於python中優秀的中文分詞第三方庫,須要額外安裝orm
二.安裝jieba庫
途徑1:百度jieba庫下載(百度上不少jieba庫的安裝教程,能夠參考一下)
方法2:在計算機命令行輸入
pip install jieba
![](http://static.javashuo.com/static/loading.gif)
按下回車就會自動安裝,稍微等待就能夠了
三.函數庫的調用
jieba庫在python的 IDLE中運行時能夠使用兩種導入方式
(1)
導入庫函數:import <庫名>
使用庫中函數:<庫名> . <函數名> (<函數參數>)
例如:import jieba
jieba.lcut()
jieba.lcut(" ",cut_all=True)
jieba.lcut_for_search()
(2) 導入庫函數:from <庫名> import * ( *爲通配符 )
使用庫中函數:<函數名> (<函數參數>)
例如:from jieba import *
lcut()
lcut(" ",cut_all=True)
lcut_for_search()
四.jieba庫的實際應用(對文本的詞頻統計)
文本是水滸傳,百度上下載的
1 from jieba import * 2 excludes=lcut_for_search("頭領兩個一個武松如何只見說道軍馬衆人那裏") 3 txt=open("水滸傳.txt","r").read() 4 words=lcut(txt) 5 counts={} 6 for word in words: 7 if len(word)==1: 8 continue 9 elif word =="及時雨" or word == "公明" or word =="哥哥" or word == "公明曰": 10 rword ="宋江" 11 elif word =="黑旋風" or word =="黑牛": 12 rword ="李逵" 13 elif word =="豹子頭" or word == "林教頭": 14 rword ="林沖" 15 elif word =="智多星" or word =="吳用曰": 16 rword ="吳用" 17 else: 18 rword=word 19 counts[word]=counts.get(word,0)+1 20 for word in excludes: 21 del(counts[word]) 22 items=list(counts.items()) 23 items.sort(key=lambda x:x[1],reverse=True) 24 for i in range(10): 25 word,count=items[i] 26 print("{0:<10}{1:>5}".format(word,count))
運行結果:(有些多餘的詞語未作好排除,代碼仍須要改進)
![](http://static.javashuo.com/static/loading.gif)
五.詞雲圖(jieba庫與wordcloud庫的結合應用)
from wordcloud import WordCloud import matplotlib.pyplot as plt from jieba import * # 生成詞雲 def create_word_cloud(filename): text = open("{}.txt".format(filename)).read() font = 'C:\Windows\Fonts\simfang.ttf' wordlist = cut(text, cut_all=True) # 結巴分詞 wl = " ".join(wordlist) # 設置詞雲 wc = WordCloud( # 設置背景顏色 background_color="black", # 設置最大顯示的詞雲數 max_words=200, # 這種字體都在電腦字體中,通常路徑 font_path= font, height=1200, width=1600, # 設置字體最大值 max_font_size=100, # 設置有多少種隨機生成狀態,即有多少種配色方案 random_state=100, ) myword = wc.generate(wl) # 生成詞雲 # 展現詞雲圖 plt.imshow(myword) plt.axis("off") plt.show() wc.to_file('img_book.png') # 把詞雲保存下 if __name__ == '__main__': create_word_cloud('水滸傳')
運行結果