Python之wordcloud庫的使用


1. wordcloud庫簡介

wordcloud是優秀的詞雲展示第三方庫,它能夠將一段文本變成一個詞雲。

詞雲:將詞語通過圖形可視化的方式直觀和藝術的展示出來。


2. wordcloud庫安裝

cmd命令行下:
pip install wordcloud

3. wordcloud庫的基本使用

wordcloud庫把詞雲當作一個WordCloud對象

  • wordcloud.WordCloud()代表一個文本對應的詞雲

  • 可以根據文本中詞語出現的頻率等參數繪制詞雲

  • 詞雲的繪制形狀、尺寸和顏色都可以設定

wordcloud庫常規方法

wordcloud對具體詞雲的繪制有一個基本的思路,它的思路是用wordcloud中的WordCloud來表名一個詞雲。以WorldCloud對象為基礎。

w = wordcloud.WordCloud()
方法 描述
w.generate(txt) 向WordCloud對象w中加載文本txt
w.to_file(filename) 將詞雲輸出為圖像文件,.png或.jpg格式

例如:

>>>w.generate( "Python and WordCloud" )
>>>w.to_file( "outfile.png" )

詞雲繪制步驟:

import wordcloud
c = wordcloud.WordCloud()				#步驟1:配置對象參數
c.generate("wordcloud by Python")		#步驟2:加載詞雲文本
c.to_file("pywordcloud.png")			#步驟3:輸出詞雲文件

從文本生成詞雲,wwordcloud庫做了9件事情:

  • ① 分隔:以空格分隔單詞
  • ② 統計: 單詞出現次數並過濾。出現次數多的單詞顯示效果就會變的很大,反之就小
  • ③ 字體: 根據統計配置字號
  • ④ 布局: 顏色環境尺寸

配置對象參數

w = wordcloud.WordCloud(<參數>)
參數 描述
width 指定詞雲對象生成圖片的寬度,默認400像素
height 指定詞雲對象生成圖片的高度,默認200像素
min_font_size 指定詞雲中字體的最小字號,默認4號
max_font_size 指定詞雲中字體的最大字號,根據高度自動調節
font_step 指定詞雲中字體字號的步進間隔,默認為1
font_path 指定字體文件的路徑,默認None
max_words 指定詞雲顯示的最大單詞數量,默認200
stop_words 指定詞雲的排除詞列表,即不顯示的單詞列表
mask 指定詞雲形狀,默認為長方形,需要引用imread()函數
background_color 指定詞雲圖片的背景顏色,默認為黑色

例子

>>>w=wordcloud.WordCloud(width=600)
>>>w=wordcloud.WordCloud(height=400)
>>>w=wordcloud.WordCloud(min_font_size=10)
>>>w=wordcloud.WordCloud(max_font_size=20)
>>>w=wordcloud.WordCloud(font_step=2)
>>>w=wordcloud.WordCloud(font_path="msyh.ttc")
>>>w=wordcloud.WordCloud(max_words=20)
>>>w=wordcloud.WordCloud(stop_words={"Python"})

# 指定詞雲形狀
>>>from scipy.misc import imread
>>>mk=imread("pic.png")
>>>w=wordcloud.WordCloud(mask=mk)

# 指定詞雲背景色
>>>w=wordcloud.WordCloud(background_color="white")

注:在將中文構成詞雲的時候,它是用空格來去分隔單詞的,在中文中我們沒有辦法使用空格來區分單詞,所以在用中文形詞雲的時候,首先需要對中文文本進行分詞。中文分詞使用 jieba 庫,關於jieba庫的使用請參考文章:https://www.cnblogs.com/keepcode/p/14436010.html

中文生詞詞雲實例

import jieba
import wordcloud
txt = "程序設計語言是計算機能夠理解和\
識別用戶操作意圖的一種交互體系,它按照\
特定規則組織計算機指令,使計算機能夠自\
動進行各種運算處理。"
w = wordcloud.WordCloud( width=1000,\
	font_path = "msyh.ttc",height=700)
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("pywcloud.png")

jieba.lcut(txt) 將 txt 文本分詞並生成一個列表變量,其中過的每一個元素是分隔之后的單詞。我們需要這樣的單詞以文本的形式由空格來分隔組成。

使用 "".join函數將這樣的列表由空格將各個元素組織起來。

使用w.generate()加載一段(" ".join(jieba.lcut(txt)))的內容。


以上內容資料均來源於中國大學MOOC網-北京理工大學Python語言程序設計課程
課程地址:https://www.icourse163.org/course/BIT-268001


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM