<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

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

          共 3191字,需瀏覽 7分鐘

           ·

          2021-06-13 19:50

          點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

          回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

          昨夜西風(fēng)凋碧樹,獨(dú)上高樓,望盡天涯路。

          前言

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


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

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

          編輯器:sublime text 3

          編譯器:Python 3.6

          1.下載安裝wordcloud模塊

          pip install wordcloud

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

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

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

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

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


          3.加入文本到詞云中

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

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

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

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


          4.顯示詞云對(duì)象

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

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

          wg.to_file('gf.jpg')

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


          5.顯示詞云背景

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

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

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

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

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

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

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

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

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

          6.選擇性輸出

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

          因?yàn)樗簧婕暗接⑽牡姆衷~限制,于是我們先選擇個(gè)英文單詞,就選擇頻率比較高的control:

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

          然后我們?cè)诮o初始化時(shí)的wordcloud添加一個(gè)屬性stopwords屬性:

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

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


          二、詞云拓展

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

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

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

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


          三、總結(jié)

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

          ------------------- End -------------------

          往期精彩文章推薦:

          歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬水千山總是情,點(diǎn)個(gè)【在看】行不行

          /今日留言主題/

          隨便說一兩句吧~~

          瀏覽 35
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人伊人网站 | 吴梦梦精品一区二区三区观看 | 日韩欧美三级片在线观看 | 亚洲啪啪视频 | 日韩国产免费 |