自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你使用Python打造絢麗的詞云圖

大數(shù)據(jù) 數(shù)據(jù)分析
相信大家對這個概念比較陌生,它其實(shí)就是指的是對某一段文本中出現(xiàn)頻率最高的關(guān)鍵詞進(jìn)行特殊描繪,過濾到太多沒用的字眼,以此達(dá)到視覺上的突出,讓人一看就知道這篇文章講的什么。

[[404891]]

前言

大家好,我是黃偉。詞云,相信大家對這個概念比較陌生,它其實(shí)就是指的是對某一段文本中出現(xiàn)頻率最高的關(guān)鍵詞進(jìn)行特殊描繪,過濾到太多沒用的字眼,以此達(dá)到視覺上的突出,讓人一看就知道這篇文章講的什么。

一、詞云的運(yùn)用

設(shè)計到的模塊:wordcloud

編輯器:sublime text 3

編譯器:Python 3.6

1.下載安裝wordcloud模塊

  1. pip install wordcloud 

2.導(dǎo)入模塊并初始化詞云對象

下面我們打開它的幫助文檔看看它的使用方法:

可以看到這個類就是詞云初始化的主要類,下面都是它的初始化參數(shù),所以我們要使用它:

  1. import wordcloud 
  2. wc=wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\華康少女文字簡W5.ttc',width=200,height=100) #初始化 

這里為了使得生成的詞云圖更好看,所以我加入了華康少女字體,這個字體不是系統(tǒng)自帶的,得下載。下載好后把它放到window 字體文件夾中。

3.加入文本到詞云中

使用初始化的對象來調(diào)用文本生成器,我們從幫助函數(shù)中可以得出它有兩個生成器函數(shù)。

這兩個生成器函數(shù)差不多,而且意思相近,這里不做過多討論,我們來看下它的使用方法:

  1. wc.generate('任性的90后boy'

這樣就從文本中生成詞云了。

4.顯示詞云對象

生成之后,我們需要把它顯示出來,那怎么辦呢?如圖所示:

由此可以看出它有四種生成方式,即為:數(shù)組,文件,html,圖片。我們隨機(jī)選擇一種,就選文件。

  1. wg.to_file('gf.jpg'

[[404892]]

這樣就生成了一個以剛才的文本為主的華康少女字體的詞云圖了,是不是很簡單了?別著急,還有大菜。

5.顯示詞云背景

我們從上幅圖片可以看出,字體和圖片的顏色都很讓人揪心,那么有沒有方法改變它們呢?答案當(dāng)然是有的。

我們可以通過設(shè)置詞云的背景顏色來改變詞云背景:

  1. wordcloud.WordCloud(font_path=r'C:\Windows\Fonts\華康少女文字簡W5.ttc',width=200,height=100,background_color="gray"

這樣我們可以將背景顏色改為灰色,要是改變字體顏色該怎么辦呢?由剛才的幫助文檔,我們可以看出有個顏色

生成器類ImageColorGenerator,它負(fù)責(zé)專門定義我們喜歡的顏色方案,而且它還可以隨時修改,不過要在初始化后使用color_func函數(shù)進(jìn)行回調(diào)才行,因為ImageColorGenerator傳入的是一個圖片數(shù)組,所以我們需要用到一個可以將圖片轉(zhuǎn)化為數(shù)組的模塊numpy,今天我們只講它的一個方法,下面我們來看下:

  1. from wordcloud import ImageColorGenerator 
  2. from wordcloud import WordCloud as wc 
  3. from PIL import Image 
  4. import numpy as n 
  5. ff=open('OSI.txt','r',encoding='utf-8').read() #導(dǎo)入文本文件并讀取內(nèi)容 
  6. bg=n.array(Image.open('g.png')) #將圖片以數(shù)組形式輸出 
  7.  
  8. #注意如果背景圖片是png,那么模式必須是RGBA,因為png圖片支持透明度設(shè)置,設(shè)置背景圖片,背景顏色必須是白色 
  9. w=wc(font_path=r'C:\Windows\Fonts\華康少女文字簡W5.ttc',mode='RGBA',mask=bg,repeat=True,background_color='#FFFFFF'
  10. wg=w.generate(ff) #嵌入文本 
  11. ig=ImageColorGenerator(bg) #圖片顏色導(dǎo)入 
  12. wg.recolor(color_func=ig) #重新設(shè)置詞云圖顏色 
  13. wg.to_file('gf.png') #保存圖片 

可以看到,最后圖片里文字的顏色和引用的圖片顏色一樣:

除此之外WordCloud還有很多優(yōu)秀的方法,比如:

  1. mask='' #設(shè)置背景圖片 
  2. font_path='C:\Windows\Fonts\STZHONGS.TTF' #解決中文無法輸出的尷尬 
  3. max_words=5      #設(shè)置單詞顯示最多的數(shù)目 
  4. stopwords=''  #設(shè)置停用詞 如果為空,則使用內(nèi)置的STOPWORDS方法 
  5. max_font_size=4   #設(shè)置字體最大值 int類型 
  6. random_state=1   #設(shè)置有多少種配色方案 int類型 
  7. mode:'RGB'  #當(dāng)參數(shù)為“RGBA”并且背景顏色不為空時,背景為透明。 
  8. color_func  # 生成新顏色的回調(diào)函數(shù) 
  9. scale #按比例放大畫布 類型為float 
  10. colormap  # 給每個詞隨機(jī)分配顏色,若指定color_func,則忽略該方法。 
  11. repeat=True #如果文本太少無法充滿整個照片導(dǎo)致效果不明顯就用這個 

6.選擇性輸出

不知道大家注意到?jīng)]有,這里有一個停用詞設(shè)置,它就是stopwords,它就是限制某些字不能輸出在詞云上,不過必須使用wordcloud內(nèi)置的STOPWORDS方法才可以,下面我們來看下:

因為它只涉及到英文的分詞限制,于是我們先選擇個英文單詞,就選擇頻率比較高的control:

  1. sd=STOPWORDS.add('Control') #添加Control為禁用詞 

然后我們在給初始化時的wordcloud添加一個屬性stopwords屬性:

  1. wc(font_path=r'C:\Windows\Fonts\華康少女文字簡W5.ttc',mode='RGBA',mask=bg,width=500,height=300 repeat=True,stopwords=sd,background_color='#FFFFFF'

可以看到我們的Control沒了,這就是詞云的神奇之處。

二、詞云拓展

在這里,小編還要教大家解鎖一個詞云的新方式,那就是它不光是一個圖片生成神器,還是一個看圖,制圖,圖表生成神器,因為它與PIL ,matplotlib完美的契合在一起,使得它可以隨心所欲的調(diào)用這兩個模塊的功能,不信的話,你可以隨我來看看:

可以看到基本上都是pillow的方法,而且還有matplotlib 和random以及os的方法,可以說是很全了。

  1. im=wordcloud.wordcloud.Image.open('q.jpg'
  2. im.show() 

這樣基本上你就可以打開一個詞云生成的圖片了,相信很多小伙伴還沒解鎖這一知識吧,哈哈哈。

三、總結(jié)

通過對詞云的學(xué)習(xí),可以使我們很直觀的了解到文本中的數(shù)據(jù)的占比情況,其實(shí)它就是比較簡單的數(shù)據(jù)分析。

本文轉(zhuǎn)載自微信公眾號「Python爬蟲與數(shù)據(jù)挖掘」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Python爬蟲與數(shù)據(jù)挖掘公眾號。

 

責(zé)任編輯:武曉燕 來源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2021-11-12 14:50:32

Kubectl命令Linux

2022-12-07 08:42:35

2021-12-30 08:56:57

Python摸魚倒計界面Python基礎(chǔ)

2022-02-17 10:26:17

JavaScript掃雷游戲前端

2021-08-02 07:35:19

Nacos配置中心namespace

2020-12-08 10:32:15

Python郵件tcp

2020-08-12 09:07:53

Python開發(fā)爬蟲

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2021-11-01 10:26:07

CanvasAPI畫布技術(shù)HTML5

2021-07-09 08:52:19

Python視頻生成神器Python基礎(chǔ)

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2021-03-12 10:01:24

JavaScript 前端表單驗證

2022-07-22 12:45:39

GNU

2021-12-15 08:49:21

gpio 子系統(tǒng)pinctrl 子系統(tǒng)API

2022-10-30 10:31:42

i2ccpuftrace

2021-01-19 09:06:21

MysqlDjango數(shù)據(jù)庫

2020-07-10 08:24:18

Python開發(fā)工具

2021-09-26 16:08:23

CC++clang_forma
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號