首頁 > 軟體

python詞雲庫wordcloud自定義詞雲製作步驟分享

2022-08-11 14:01:33

wordcloud庫常規方法

import wordcloud
c=wordcloud.WordCloud()  #構建詞雲物件,設定物件引數
c.generate("wordcloud by python ")  #載入詞雲文字
c.to_file("pywordcloud.png")      #輸出詞雲檔案

詞雲生成步驟:

  • 分隔:以空格分隔單詞
  • 統計:單詞出現次數並過濾(1-2個字母會被濾掉)
  • 字型:根據統計設定字號
  • 佈局:顏色環境尺寸

c=wordcloud.WordCloud(引數) 設定物件引數

引數(畫素)描述
width(預設400px)c=wordcloud.WordCloud(width=600)
height(預設200px)c=wordcloud.WordCloud(height=400)
min_font_size(預設4號)c=wordcloud.WordCloud(min_font_size=10)
max_font_size(根據高度自動調節)c=wordcloud.WordCloud(max_font_size=20)
font_step(預設1,步長)c=wordcloud.WordCloud(font_step=2)
font_path(預設None,字型路徑)c=wordcloud.WordCloud(font_path="msyh.ttc")
max_words(預設200,最大數量)c=wordcloud.WordCloud(max_words=20)
stop_words(指定去除單詞的列表)c=wordcloud.WordCloud(stop_words={"python"})
background_color(預設黑色,詞雲背景色)c=wordcloud.WordCloud(background_color="red")

Scale 預設值1。值越大,影象密度越大越清晰

mask引數自定義詞雲形狀:

#指定詞雲形狀,預設是長方形,需要參照imread()函數
from scipy.misc import imread
mk=imread("pic.png")
c=wordcloud.WordCloud(mask=mk)

第三方庫

  • numpy :多維陣列運算
  • matplotlib :繪圖與資料視覺化
  • pillow :圖片處理
  • wordcloud :詞雲製作
  • imageio :影象輸入輸出
  • jieba :中文分詞
  • snownlp :中文情感和自然語言處理
  • itchat :微信好友抓取

讀取檔案

政府工作報告詞雲:

import wordcloud
# 從外部.txt檔案中讀取大段文字,存入變數txt中
f = open('政府工作報告.txt',encoding='utf-8')
txt = f.read()
# 構建詞雲物件w,設定詞雲圖片寬、高、字型、背景顏色等引數
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path='msyh.ttc')
# 將txt變數傳入w的generate()方法,給詞雲輸入文字
w.generate(txt)
# 將詞雲圖片匯出到當前資料夾
w.to_file('Test1.png')

==wordcloud中文分詞(適合中文詞雲)==

# 匯入詞雲製作庫wordcloud和中文分詞庫jieba
import jieba
import wordcloud
# 構建並設定詞雲物件w
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',
                        font_path='msyh.ttc')
# 呼叫jieba的lcut()方法對原始文字進行中文分詞,得到string
txt = '由於Python語言的簡潔性、易讀性以及可延伸性, 
      在國外用Python做科學計算的研究機構日益增多, 
      一些知名大學已經採用Python來教授程式設計課程。 
      例如卡耐基梅隆大學的程式設計基礎、 
      麻省理工學院的電腦科學及程式設計導論就使用Python語言講授。'
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)
# 將string變數傳入w的generate()方法,給詞雲輸入文字
w.generate(string)
# w.generate(" ".join(jieba.lcut(txt)))  #三段程式碼合一簡寫
# 將詞雲圖片匯出到當前資料夾
w.to_file('Teste2.png')

自定義繪製指定形狀的詞雲

import jieba
import wordcloud
from scipy.misc import imread
mask=imread("圖片形狀.png") #匯入自定義形狀圖片賦給mask
# 從外部.txt檔案中讀取大段文字,存入變數txt中
f = open('政府工作報告.txt',encoding='utf-8')
txt = f.read() #閱讀提取
f.close()   #關閉
# 構建詞雲物件w,設定詞雲圖片寬、高、字型、背景顏色等引數
w = wordcloud.WordCloud(width=1000,
                        height=700,
                        background_color='white',mask=mask,
                        font_path='msyh.ttc')
# 將txt變數傳入w的generate()方法,給詞雲輸入文字
w.generate(" ".join(jieba.lcut(txt)))
# 將詞雲圖片匯出到當前資料夾
w.to_file('Test1.png')

==勾勒詞雲輪廓==

# 匯入詞雲製作庫wordcloud
import wordcloud
# 將外部檔案包含的文字儲存在string變數中
string = open('hamlet.txt').read()
# 匯入imageio庫中的imread函數,並用這個函數讀取本地圖片,作為詞雲形狀圖片
import imageio
mk = imageio.imread("ren.png")
# 構建詞雲物件w,注意增加引數contour_width和contour_color設定輪廓寬度和顏色
w = wordcloud.WordCloud(background_color="white",
                        mask=mk,
                        contour_width=1,
                        contour_color='steelblue'
                        )
# # 將string變數傳入w的generate()方法,給詞雲輸入文字
w.generate(string)
# 將詞雲圖片匯出到當前資料夾
w.to_file('p2.png')

==按模板自身顏色繪製詞雲==

# 匯入繪相簿matplotlib和詞雲製作庫wordcloud
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator

# 將外部檔案包含的文字儲存在text變數中
text = open('alice.txt').read()

# 匯入imageio庫中的imread函數,並用這個函數讀取本地圖片queen2.jfif,作為詞雲形狀圖片
import imageio
mk = imageio.imread("alice.png")

# 構建詞雲物件w
wc = WordCloud(background_color="white",
               mask=mk,)
# 將text字串變數傳入w的generate()方法,給詞雲輸入文字
wc.generate(text)

# 呼叫wordcloud庫中的ImageColorGenerator()函數,提取模板圖片各部分的顏色
image_colors = ImageColorGenerator(mk)

# 顯示原生詞雲圖、按模板圖片顏色的詞雲圖和模板圖片,按左、中、右顯示
fig, axes = plt.subplots(1, 3)
# 最左邊的圖片顯示原生詞雲圖
axes[0].imshow(wc)
# 中間的圖片顯示按模板圖片顏色生成的詞雲圖,採用雙線性插值的方法顯示顏色
axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
# 右邊的圖片顯示模板圖片
axes[2].imshow(mk, cmap=plt.cm.gray)
for ax in axes:
    ax.set_axis_off()
plt.show()

# 給詞雲物件按模板圖片的顏色重新上色
wc_color = wc.recolor(color_func=image_colors)
# 將詞雲圖片匯出到當前資料夾
wc_color.to_file('out-alice.png')

到此這篇關於python詞雲庫wordcloud自定義詞雲製作步驟分享的文章就介紹到這了,更多相關python wordcloud詞雲製作內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com