以生成愛心,以及想要的任何形狀的詞云圖像,可自定義文字
首先,需要下載 wordcloud包,采用pip install 的方式
接下來導(dǎo)入這個包以及需要的其他包
from wordcloud import WordCloud
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
然后
text=' aaa'#復(fù)制你想要展示的文本信息在這里
mask=np.array(Image.open(r'photo/love01.png'))
我的圖片我用windows的畫圖工具畫的,有點不太好看,如下圖所示:
然后我們將這個上面的圖片保存下來,并使用下面的代碼就可以輸出結(jié)果拉
word_cloud=WordCloud(background_color='white', max_words=2000,repeat=True, mask=mask,min_font_size=1)
word_cloud.generate(text)
word_cloud.to_file('mask_wordcloud.jpg')
#顯示效果圖
plt.axis("off")
plt.imshow(word_cloud, interpolation="bilinear")
plt.show()
結(jié)果如下圖所示:
注意,上面的文本和mask可以根據(jù)自己的需要進行替換
文本可視化中大家會經(jīng)常用的“詞云圖”吧。“詞云”就是通過形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”,對文本中出現(xiàn)頻率較高的關(guān)鍵詞進行視覺上的突出。詞云圖過濾掉大量的文本信息,使瀏覽者只要一眼掃過詞云圖就可以領(lǐng)略文本的主旨。
制作詞云圖有幾種方法:
1.pyecharts —— 簡單易用但不夠美觀
使用 pyecharts 生成詞云圖是一件非常簡單的事情,只需要簡單的幾行代碼即可。
2.wordcloud —— 使用最多的的詞云庫
wordcloud 是使用Python 制作詞云圖使用最廣泛的工具,但是使用它制作詞云圖并不是一件簡單的事情:首先,在安裝它的時候,就很有可能遇到麻煩,因為 wordcloud 庫需要依賴 Microsoft Visual C++ 環(huán)境,需要事先安裝該組件;其次,為了詞云圖的美觀,使用過程中需要配合其他第三方庫使用,比如 PIL(用于加載背景圖)
以上都是經(jīng)常見到的,今天來說一下stylecloud —— 最接近完美的 Python 詞云庫
stylecloud是一款簡單易用的 Python 詞云生成第三方庫,使用非常簡單,但是得到的詞云圖卻高級感十足。事實上,stylecloud 是 wordcloud 的高級封裝版本。這意味著 stylecloud 庫需要依賴 wordcloud 庫。這也是我們認(rèn)為它接近完美而非真正完美的原因。
1.安裝stylecloud庫并導(dǎo)入
# 導(dǎo)入 stylecloud 庫
from stylecloud import gen_stylecloud
2.準(zhǔn)備數(shù)據(jù)
3.選擇詞語形狀
stylecloud 詞云形狀使用特定網(wǎng)站中的圖標(biāo),進入該網(wǎng)站,滾動鼠標(biāo)下拉找到【查看圖標(biāo)】,點擊進入后即可在 1600+ 圖形中選擇中意的形狀,選擇圖形后,點擊圖形右上角即可復(fù)制圖形的名稱,如下圖所示:
我們再將復(fù)制到的內(nèi)容賦給參數(shù) icon_name 即可生成這個形狀的詞云,代碼如下:
words=' '.join(tfidf_df_chaping)
gen_stylecloud(
#file_path='詞頻最高的200詞.csv', # 必要參數(shù),語料的路徑,如果語料是列表格式,則改用 text 參數(shù)
text=words,#文本內(nèi)容
size=(600,600), # 詞云圖的長寬,設(shè)置更大的數(shù)字可以增加成圖的分辨率,但代碼運行時間會隨之增加
max_words=200, # 詞云圖中的最大詞語數(shù)量
max_font_size=120, # 詞云圖中字號的最大值, 默認(rèn)值是 200
#font_path=r'C:\Windows\Fonts\SimHei.ttf', # 字體是必要的參數(shù),否則中文會顯示異常
output_name='詞云圖.png', # 保存詞云圖的路徑
icon_name='fas fa-cloud' # 設(shè)置詞云形狀為云朵,設(shè)置此參數(shù)后,系統(tǒng)會到自動到網(wǎng)頁端獲取對應(yīng)的背景圖
)
報錯:
如果是10.0改為9.5還不行,再次嘗試一個版本,比如說,9.4.0。
圖形1
另外,再添加參數(shù) invert_mask=True 還可以將形狀反轉(zhuǎn),(代碼省略)直接展示結(jié)果:
4.配色方案
配色方案將直接影響詞云圖的觀感,在展示某些主題下的文本詞云時,可以選擇合適的配色。比如當(dāng)我們制作與海洋產(chǎn)業(yè)有關(guān)系的文本詞云時,可以設(shè)置主題顏色為藍(lán)色/綠色/青色系列顏色。stylecloud 中詞云的配色可以由 Python 配色工具庫 palettable 來提供,其默認(rèn)的配色方案也是由palettable 所提供的。我們找到了民間大神整理的配色方案PDF文檔,文檔中部分配色方案如下圖所示:
如果想要使用圖中的配色方案,只需在生成詞云的代碼前面聲明(使用上圖中左側(cè)的代碼)即可,例如,我們使用上圖中 Blues_7 藍(lán)色配色方案,聲明配色方案的代碼如下
# 導(dǎo)入配色方案庫
import palettable
palettable.colorbrewer.sequential.Blues_7
# 下面在添加生成詞云的代碼即可
gen_stylecloud(
#file_path='詞頻最高的200詞.csv', # 必要參數(shù),語料的路徑,如果語料是列表格式,則改用 text 參數(shù)
text=words,#文本內(nèi)容
size=(600,600), # 詞云圖的長寬,設(shè)置更大的數(shù)字可以增加成圖的分辨率,但代碼運行時間會隨之增加
max_words=200, # 詞云圖中的最大詞語數(shù)量
max_font_size=120, # 詞云圖中字號的最大值, 默認(rèn)值是 200
#font_path=r'C:\Windows\Fonts\SimHei.ttf', # 字體是必要的參數(shù),否則中文會顯示異常
output_name='詞云圖2.png', # 保存詞云圖的路徑
icon_name='fas fa-cloud' ,# 設(shè)置詞云形狀為云朵,設(shè)置此參數(shù)后,系統(tǒng)會到自動到網(wǎng)頁端獲取對應(yīng)的背景圖
palette='cartocolors.qualitative.Bold_7', # 配色方案,由于前面聲明了其他的配色方案(Blues_7),
)
此外,假如配色方案中沒有我們喜歡的配色方案,那么我們還可以自定義配色方案,將選擇的顏色填入一個列表,再將顏色列表賦給參數(shù) colors 即可。那么如何選擇顏色呢?我們?yōu)榇蠹彝扑]一個可以 DIY 的無廣告調(diào)色網(wǎng)頁http://www.ku51.net/rgbhex.html。該網(wǎng)頁支持用戶自己調(diào)色(通過控制 R.G.B 顏色權(quán)重)來生成對應(yīng)顏色的十六進制代碼,如下圖所示:
選中顏色后只需將對應(yīng)的顏色代碼填入 colors 參數(shù)列表中即可。我們選擇幾種較淺的暖色系顏色組成一個配色方案,代碼如下:
gen_stylecloud(
text=words,#文本內(nèi)容, # 必要參數(shù),語料的路徑,如果語料是列表格式,則改用 text 參數(shù)
size=(600,600), # 詞云圖的長寬,設(shè)置更大的數(shù)字可以增加成圖的分辨率,但代碼運行時間會隨之增加
max_words=200, # 詞云圖中的最大詞語數(shù)量
max_font_size=120, # 詞云圖中字號的最大值, 默認(rèn)值是 200
font_path=r'C:\Windows\Fonts\SimHei.ttf', # 字體是必要的參數(shù),否則中文會顯示異常
output_name='詞云圖3.png', # 保存詞云圖的路徑
icon_name='fas fa-cloud', # 詞云形狀
# 自定義顏色列表
colors=['#FFDAB9', '#FFE4E1', '#FFC1C1', '#CDCDB4', '#EECBAD']
)
除了顏色的變化,我們還可使用參數(shù) gradient 來控制詞云圖色溫變化的梯度,當(dāng)不使用這個參數(shù)時,每個詞語的顏色是可用顏色中隨機的一種。也就是上面詞云圖中混亂無序的樣子。當(dāng)我們將gradient 參數(shù)設(shè)置為任意非空字符串,就可以使詞云圖中的顏色分布按照色溫,色深沿著特定方向變化,效果非常 Nice。代碼如下(注意參數(shù) size變?yōu)檎麛?shù),否則會報錯):
gen_stylecloud(
text=words,#文本內(nèi)容, # 必要參數(shù),語料的路徑,如果語料是列表格式,則改用 text 參數(shù)
size=600, # 詞云圖的長寬,設(shè)置更大的數(shù)字可以增加成圖的分辨率,但代碼運行時間會隨之增加
max_words=200, # 詞云圖中的最大詞語數(shù)量
max_font_size=200, # 詞云圖中字號的最大值, 默認(rèn)值是 200
font_path=r'C:\Windows\Fonts\SimHei.ttf', # 字體是必要的參數(shù),否則中文會顯示異常
output_name='詞云圖4.png', # 保存詞云圖的路徑
icon_name='fas fa-cloud', # 詞云形狀
palette='cartocolors.qualitative.Bold_5', # 配色方案,由于前面聲明了其他的配色方案(Blues_7),
# 我們這里重新指定配色為 Bold_5,這也是默認(rèn)的配色)
gradient='666',
)
5.字體
使用不同字體同樣可以優(yōu)化詞云圖的觀感,對 Windows 用戶來說,選擇字體并不難,系統(tǒng)字體默認(rèn)的存儲路徑為:C:\Windows\Fonts\,找到這個文件夾就可以查看系統(tǒng)中的字體,雙擊字體圖標(biāo)可以預(yù)覽字體,不過很多字體并沒有對中文做優(yōu)化,因此設(shè)置后可能存在無法顯示的情況。預(yù)覽字體的截圖如下:
鼠標(biāo)右擊圖標(biāo)后選擇【屬性(R)】可以查看該字體文件的名稱,如下圖所示:
我們使用 【仿宋】 字體(字體名為 msyhbd.ttc,使用 font_path參數(shù)設(shè)置字體路徑)重新生成一個詞云(由于字體加粗,我們將最大詞數(shù)由 200 減少到 100)。最大字號下調(diào)至 150,圖片尺寸由 600 調(diào)整為 1000,這個操作可以提高詞云圖的分辨率,防止小詞語模糊不清。代碼如下:
本分析時,可能涉及到一些新詞,比如‘內(nèi)卷’,這個詞很可能在詞典中并未出現(xiàn)過,詞庫也不認(rèn)識它。但研究者自己認(rèn)識它,此時可將該詞納入到新詞詞庫中,讓系統(tǒng)統(tǒng)計詞頻等信息時也對該詞進行統(tǒng)計。當(dāng)然還有一些停用詞,比如‘好了’,這個詞沒有實際的意義沒有統(tǒng)計詞頻等必要,此時可對該詞設(shè)置為停用詞。除此之外,還可設(shè)置情感詞,比如:‘元宇宙’可能是個正向詞(也可能是負(fù)向情感,由研究者決定),那么可自主設(shè)置其情感分值。操作上為點擊‘我的詞庫’,然后選擇即可,如下圖:
接下來針對三個詞庫的設(shè)置進行具體說明。
新詞詞庫
如果是新詞,那么其操作方式為輸入或者粘貼即可,通??稍凇略~發(fā)現(xiàn)’時找出一些潛在的新詞,然后整理在EXCEL中,最后一次性復(fù)制和粘貼到框框中就好。比如下圖:
批量加入新詞后,左側(cè)框中即呈現(xiàn)出全部新詞。當(dāng)然也可對新詞進行移除處理,也可以搜索是否某個新詞已經(jīng)加入新詞庫,也或者下載出所有設(shè)置好的新詞等。如下圖所示:
特別提示:
在‘新詞發(fā)現(xiàn)’功能處,有加入或者移出新詞的功能。但通常情況下建議一次性將新詞批量處理,在處理完成后,重新進行分析,重新進行分析的方式為:點‘我的項目’-》點擊‘重新分析ICON’。
停用詞
停用詞是指已經(jīng)不再需要計算頻率的詞,研究者可自行批量設(shè)置,類似如下圖操作即可:
批量加入停用詞后,左側(cè)框中會展示所有的停用詞,研究者也可刪除停用詞,搜索是否某個詞為停用詞,并且下載所有的停用詞等。如下圖所示:
特別提示:
在詞云分析和詞定位分析處,均有加入或者移出停用詞的功能。但通常情況下建議一次性將停用詞批量處理,在處理完成后,重新進行分析,重新進行分析的方式為:點‘我的項目’-》點擊‘重新分析ICON’。
情感詞
如果系統(tǒng)未識別到某個關(guān)鍵詞的情感得分,也或者希望自己設(shè)置情感詞,此時可進行設(shè)置。其輸入格式為:“情感詞,情感分值”,比如“很好,0.8”,此處情感分值建議規(guī)則為:-1到1分之間,大于1/3為情感正向,小于-1/3為情感負(fù)向[SPSSAU的情感計分規(guī)則是這樣],情感得分絕對值越大意味著情感程度越高。
當(dāng)有多個情感詞時,換行輸入(或者粘貼即可),操作類似如下圖:
在加入情感詞之后,左側(cè)框中會展示所有自定義的情感詞,研究者也可刪除它,搜索是否某個詞為自定義情感詞,并且下載所有自定義情感詞等。如下圖所示:
特別提示:
在情感詞自定義設(shè)置之后,如果需要查看按詞情感分析,那么需要重新分析,重新進行分析的方式為:點‘文本情感分析’-》“按詞”-》點擊‘重新分析’。如下圖所示: