python實現詞雲效果
阿新 • • 發佈:2018-12-31
一、說明
wordcloud是Python中的一個小巧的詞雲生成器。繪製圖片是也通過第三方模組 pillow和matplotlib 實現的,因此需要安裝matplotlib和wordcloud模組
pip install wordcloud
pip install matplotlib
pip install jieba #識別中文
pip install pillow #影象處理
二、wordcloud中文識別
需要有識別中文的字型庫,windows上面在 C:\Windows\Fonts 路徑下,比較常用的有 宋體(simsun.ttc),黑體(simhei.ttf),楷體(simkai.ttf)
三、示例程式碼塊
#!/usr/bin/env python #-*- coding:utf-8 -*- import matplotlib.pyplot as plt from PIL import Image as image import jieba import numpy from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS def chinese_jieba(text): #通過jieba工具將中文文字做處理,並返回指定格式的內容 wordlist_jieba = jieba.cut(text) text_jieba = ' '.join(wordlist_jieba) return text_jieba def main(filename): with open(filename,'rb') as f: text = chinese_jieba(f.read().decode()) mask_pic = numpy.array(image.open('test.jpg')) #開啟影象處理,設定遮罩層 #設定固定的詞個數為0 # stopwords = {'黑娃':0,'白嘉軒':0} #也可以按照下面格式設定 stopwords = set(STOPWORDS) stopwords = stopwords.union(set(['黑娃', '白嘉軒'])) #將不想在詞雲上出現的詞,放入集合中,也就是設定固定詞個數為0 wordclod = WordCloud( background_color='white', #設定背景顏色,預設是黑色 margin=0, max_words=2000, #關鍵字的個數 max_font_size=100, #字型大小 font_path=r'C:\Windows\Fonts\simsun.ttc', #設定中文識別 mask=mask_pic, #新增遮罩層,也就是設定詞雲形狀 stopwords = stopwords, #過濾固定的詞 ).generate(text) #將text裡面所有的詞統計,產生詞雲 # image_colors = ImageColorGenerator(mask_pic) plt.imshow(wordclod) # plt.imshow(wordclod.recolor(color_func=image_colors)) plt.axis('off') plt.show() wordclod.to_file('bailuyuan.jpg') #儲存圖片 if __name__ == "__main__": filename = '白鹿原.txt' main(filename)
備註:我是在網上找了白鹿原小說做的詞雲效果