2019-04-03Jieba庫使用和好玩的詞雲dom
1、下載jieba庫、wordcloud函數庫、matplotlib函數庫:函數
依然是用打開cmd索引到scripts裏,輸入pip intall XXX(xxx是函數庫名稱),便可下載字體
注:可能要升級pip,輸入pip install --upgrade pip來升級spa
2、代碼展現(附有註釋):code
1 from wordcloud import WordCloud 2 import matplotlib.pyplot as plt 3 import jieba 4 #定義建立詞雲的函數
5 def create_word_cloud(filename): 6
7 text = open("人間失格.txt","r",encoding='utf-8').read() #打開本身想要的文本
8 wordlist = jieba.cut(text, cut_all=True) # 結巴分詞
9
10 wl = " ".join(wordlist) 11
12 wc = WordCloud( #設置詞雲
13
14 background_color="white", # 設置背景顏色
15
16 max_words=20, # 設置最大顯示的詞雲數
17
18 font_path='C:/Windows/Fonts/simfang.ttf', # 索引在C盤上的字體庫
19
20 height=500, 21
22 width=500, 23
24 max_font_size=150, # 設置字體最大值
25
26 random_state=150, # 設置有多少種隨機生成狀態,即有多少種配色方案
27
28 ) 29
30 myword = wc.generate(wl) # 生成詞雲
31 plt.imshow(myword) # 展現詞雲圖
32
33 plt.axis("off") 34
35 plt.show() 36
37 wc.to_file('img_book.png') # 把詞雲保存下
38
39 #展現本身想要的文本的高頻詞出現次數代碼
40 txt=open("人間失格.txt","r",encoding='utf-8').read() #打開本身想要的文本
41 words=jieba.lcut(txt) 42 counts={} 43 for word in words: 44 if len(word)==1: #排除單個字符的分詞結果
45 continue
46 else : 47 counts[word]=counts.get(word,0)+1
48 items=list(counts.items()) 49 items.sort(key=lambda x:x[1],reverse=True) 50 for i in range(20): #展現的高頻詞個數
51 word,count=items[i] 52 print ("{0:<20}{1:>5}".format(word,count)) 53 if __name__ == '__main__': 54 create_word_cloud('人間失格') #將詞雲展示出來,調用詞雲函數
(本身下載的一些小說、文章的形式要txt)orm
3、視圖展現:blog
( 高頻詞的出現次數運行圖)索引
(詞雲視圖展現)圖片
(詞雲還有背景能夠設置成你想要的圖片形式,可是我不會,若是想要了解,另尋高人吧,或者等我學會以後再來教大家)ip