使用python生成定制化詞云的代碼示例
引言
數(shù)據(jù)可視化已成為我們理解復(fù)雜信息的關(guān)鍵工具。詞云,作為一種流行的數(shù)據(jù)可視化形式,能夠?qū)⒋罅课谋緮?shù)據(jù)中的關(guān)鍵詞以視覺(jué)化的方式呈現(xiàn),讓我們迅速捕捉到文本的核心。本文將通過(guò)Python編程語(yǔ)言,使用jieba和wordcloud庫(kù),并基于斗破蒼穹第一章的內(nèi)容,生成一個(gè)具有特定形狀的詞云。
環(huán)境搭建
在開(kāi)始之前,確保你的Python環(huán)境中安裝了必要的庫(kù)。如果尚未安裝,可以通過(guò)以下命令進(jìn)行安裝:
pip install matplotlib jieba wordcloud numpy pillow
讀取與準(zhǔn)備文本
我們將使用《斗破蒼穹第一章》的文本作為示例。首先,確保文本文件以UTF-8編碼保存,以避免編碼錯(cuò)誤:
with open('斗破蒼穹第一章.txt', 'r', encoding='utf-8') as file: text = file.read()
中文分詞
中文文本處理的第一步是分詞。我們使用jieba庫(kù),它是中文文本分詞的常用工具:
import jieba cut_text = jieba.cut(text) word = ' '.join(cut_text)
定義停用詞
在生成詞云之前,我們需要定義一組停用詞,以排除那些在文本中頻繁出現(xiàn)但對(duì)分析沒(méi)有太大意義的詞:
stopwords={ '了', '的', '和', '是', '我', '你', '這', '就', '有', '在', '也', '一', '不', '人', '都', '一個(gè)', '我們', '他', '她', '得', '地', '很', '到', '說(shuō)', '要', '去', '上', '說(shuō)', '知道', '能', '看', '自己', '出來(lái)', '過(guò)', '著', '聽(tīng)', '覺(jué)得', '但是', '而且', '因?yàn)?, '所以', '雖然', '如果', '就是', '只有', '可以', '什么', '哪', '哪個(gè)', '那些', '什么', '怎么', '怎樣', '這么', '那么', '這樣', '那樣', '一點(diǎn)', '一些', '一點(diǎn)', '一些', '一下', '一下', '一會(huì)兒', '一點(diǎn)兒', '現(xiàn)在', '然后', '再', '曾經(jīng)', '曾經(jīng)', '曾經(jīng)', '曾經(jīng)', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '與', '跟', '同', '跟', '與', '跟', '和', '與', '而且', '并且', '或者', '還是', '或者', '或者', '又', '也', '還', '再', '另外', '那', '然后', '接著', '之后', '起來(lái)', # ... 其他語(yǔ)氣助詞 ... }
選擇詞云形狀
詞云的形狀可以是任何形式,本例中我們將使用一張圖片來(lái)定義詞云的形狀:
from PIL import Image import numpy as np pic = Image.open('test1.png') pic_array = np.array(pic)
現(xiàn)在,我們將所有元素結(jié)合在一起,生成詞云:
import wordcloud from matplotlib import colors color_list = ['black', 'red', 'blue', 'green'] colormap = colors.ListedColormap(color_list) wc = wordcloud.WordCloud( mask=pic_array, font_path='simhei.ttf', background_color='white', colormap=colormap, stopwords=stopwords ) wc.generate(word)
顯示詞云
最后,我們使用matplotlib庫(kù)來(lái)顯示我們生成的詞云:
plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show()
結(jié)語(yǔ)
通過(guò)上述步驟,我們不僅學(xué)習(xí)了如何使用Python生成詞云,還了解了如何通過(guò)jieba進(jìn)行中文分詞,以及如何使用wordcloud庫(kù)自定義詞云的生成。
import matplotlib.pyplot as plt import jieba import wordcloud from PIL import Image import numpy as np from matplotlib import colors # 讀取文本文件 str1 = open('斗破蒼穹第一章.txt', 'r', encoding='utf-8').read() # 確保使用正確的編碼 cut_text = jieba.cut(str1) # 分詞處理 word = ' '.join(cut_text) # 以空格分割文本 color_list = ['black', 'red','blue','green'] colormap = colors.ListedColormap(color_list) # matplotlib色圖 # 使用Pillow讀取圖片 pic = Image.open('test1.png') # 讀取圖片 # 將Pillow圖像轉(zhuǎn)換為numpy數(shù)組 pic_array = np.array(pic) wc = wordcloud.WordCloud( mask=pic_array, # 使用轉(zhuǎn)換后的數(shù)組作為背景圖形 font_path='simhei.ttf', # 可以改成自己喜歡的字體 background_color='white', # 詞云圖背景顏色可以換成自己喜歡的顏色 colormap=colormap, stopwords={ '了', '的', '和', '是', '我', '你', '這', '就', '有', '在', '也', '一', '不', '人', '都', '一個(gè)', '我們', '他', '她', '得', '地', '很', '到', '說(shuō)', '要', '去', '上', '說(shuō)', '知道', '能', '看', '自己', '出來(lái)', '過(guò)', '著', '聽(tīng)', '覺(jué)得', '但是', '而且', '因?yàn)?, '所以', '雖然', '如果', '就是', '只有', '可以', '什么', '哪', '哪個(gè)', '那些', '什么', '怎么', '怎樣', '這么', '那么', '這樣', '那樣', '一點(diǎn)', '一些', '一點(diǎn)', '一些', '一下', '一下', '一會(huì)兒', '一點(diǎn)兒', '現(xiàn)在', '然后', '再', '曾經(jīng)', '曾經(jīng)', '曾經(jīng)', '曾經(jīng)', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '與', '跟', '同', '跟', '與', '跟', '和', '與', '而且', '并且', '或者', '還是', '或者', '或者', '又', '也', '還', '再', '另外', '那', '然后', '接著', '之后', '起來(lái)', # ... 其他語(yǔ)氣助詞 ... } ) wc.generate(word) # 生成詞云 # 顯示詞云圖 plt.imshow(wc, interpolation='bilinear') # 使用bilinear插值可以使詞云看起來(lái)更平滑 plt.axis('off') plt.show()
到此這篇關(guān)于使用python生成定制化詞云的代碼示例的文章就介紹到這了,更多相關(guān)python生成定制化詞云內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)將元組中的元素作為參數(shù)傳入函數(shù)的操作
這篇文章主要介紹了Python實(shí)現(xiàn)將元組中的元素作為參數(shù)傳入函數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06pandas學(xué)習(xí)之df.fillna的具體使用
本文主要介紹了pandas學(xué)習(xí)之df.fillna的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08python使用requests設(shè)置讀取超時(shí)時(shí)間
在Python中,使用requests庫(kù)進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),可以通過(guò)設(shè)置?timeout參數(shù)來(lái)指定讀取超時(shí)時(shí)間,本文就來(lái)介紹一下,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11python 表達(dá)式和語(yǔ)句及for、while循環(huán)練習(xí)實(shí)例
下面小編就為大家?guī)?lái)一篇python 表達(dá)式和語(yǔ)句及for、while循環(huán)練習(xí)實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07PyQt 實(shí)現(xiàn)使窗口中的元素跟隨窗口大小的變化而變化
今天小編就為大家分享一篇PyQt 實(shí)現(xiàn)使窗口中的元素跟隨窗口大小的變化而變化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Python趣味挑戰(zhàn)之turtle庫(kù)繪畫(huà)飄落的銀杏樹(shù)
銀杏還是和恐龍同時(shí)代的植物,被稱(chēng)為活化石,適應(yīng)能力強(qiáng),生長(zhǎng)期漫長(zhǎng),壽命可達(dá)千年.因此,銀杏是長(zhǎng)壽的代表和象征,接下來(lái)用Python的turtle庫(kù)來(lái)繪畫(huà)銀杏樹(shù)唯美的一幕,需要的朋友可以參考下2021-05-05使用python Telnet遠(yuǎn)程登錄執(zhí)行程序的方法
今天小編就為大家分享一篇使用python Telnet遠(yuǎn)程登錄執(zhí)行程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟
我們?cè)谶M(jìn)行算法評(píng)估是通常會(huì)針對(duì)每個(gè)樣本的算法處理結(jié)果進(jìn)行統(tǒng)計(jì),例如每個(gè)樣本正確預(yù)測(cè)數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測(cè)試結(jié)果自動(dòng)保存到excel表格的實(shí)現(xiàn)步驟,感興趣的朋友可以參考下2023-12-12