您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Python+wordcloud怎樣生成詞云,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
什么是詞云
詞云又叫文字云,是對文本數據中出現頻率較高的“關鍵詞”在視覺上的突出呈現,形成關鍵詞的渲染形成類似云一樣的彩色圖片,從而一眼就可以領略文本數據的主要表達意思。
準備工作:
python開發環境、wordcloud、jieba、matplotlib、numpy 、PIL 等庫文件安裝好。
pip 安裝方法:
wordcloud生成詞云的原理簡介
wordcloud生成詞云的原理其實并不復雜,大體分成5步(具體可自行查看源碼):
1.wordcloud制作詞云時,首先要對對文本數據進行分詞,使用process_text()方法,這一步的主要任務是去除停用詞
2.第二步是計算每個詞在文本中出現的頻率,生成一個哈希表。詞頻用于確定一個詞的重要性
3.根據詞頻的數值按比例生成一個圖片的布局,類IntegralOccupancyMap 是該詞云的算法所在,是詞云的數據可視化方式的核心。生成詞的顏色、位置、方向等
4.最后將詞按對應的詞頻在詞云布局圖上生成圖片,核心方法是generate_from_frequencies,不論是generate()還是generate_from_text()都最終用到generate_from_frequencies
完成詞云上各詞的著色,默認是隨機著色
5.詞語的各種增強功能大都可以通過wordcloud的構造函數實現,里面提供了22個參數,還可以自行擴展。
pip install xxx
使用idea 直接安裝
#coding:utf-8 import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS import jieba import numpy as np from PIL import Image #讀入背景圖片 abel_mask = np.array(Image.open("filepath")) #讀取要生成詞云的文件 text_from_file_with_apath = open('filepath').read() #通過jieba分詞進行分詞并通過空格分隔 wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all = True) wl_space_split = " ".join(wordlist_after_jieba) #my_wordcloud = WordCloud().generate(wl_space_split) 默認構造函數 my_wordcloud = WordCloud( background_color='white', # 設置背景顏色 mask = abel_mask, # 設置背景圖片 max_words = 200, # 設置最大現實的字數 stopwords = STOPWORDS, # 設置停用詞 font_path = C:/Users/Windows/fonts/simkai.ttf',# 設置字體格式,如不設置顯示不了中文 max_font_size = 50, # 設置字體最大值 random_state = 30, # 設置有多少種隨機生成狀態,即有多少種配色方案 scale=.5 ).generate(wl_space_split) # 根據圖片生成詞云顏色 image_colors = ImageColorGenerator(abel_mask) #my_wordcloud.recolor(color_func=image_colors) # 以下代碼顯示圖片 plt.imshow(my_wordcloud) plt.axis("off") plt.show()
實例
生成李克強總理2017年政府工作報告詞云
1.采用默認構造函數WordCloud().generate()生成
2.WordCloud()中設置一些參數設置mask 參數添加如下背景圖案:
根據上面的背景圖案,最終生成的詞云時這樣的:
看完上述內容,你們對Python+wordcloud怎樣生成詞云有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。