使用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中argparse模塊及action='store_true'詳解
argparse?是一個(gè)用來(lái)解析命令行參數(shù)的?Python?庫(kù),它是?Python?標(biāo)準(zhǔn)庫(kù)的一部分,這篇文章主要介紹了python中argparse模塊及action=‘store_true‘詳解,需要的朋友可以參考下2023-02-02
Python+selenium破解拼圖驗(yàn)證碼的腳本
很多網(wǎng)站在登錄或者注冊(cè)時(shí)都會(huì)遇到拼圖驗(yàn)證碼,這種拼圖驗(yàn)證碼實(shí)際上是多個(gè)小碎片經(jīng)過(guò)重新組合成的一張整體。本文將和大家分享一個(gè)基于Python selenium的破解拼圖驗(yàn)證碼的腳本,需要的可以參考一下2022-02-02
Python實(shí)現(xiàn)簡(jiǎn)易信息分類存儲(chǔ)軟件
這篇文章主要介紹的是通過(guò)Python制作一個(gè)簡(jiǎn)易的文件分類存儲(chǔ)文件,可以實(shí)現(xiàn)信息的增刪改查以及內(nèi)容的導(dǎo)出和回復(fù),文中的示例代碼對(duì)我們的學(xué)習(xí)有一定的價(jià)值,感興趣的同學(xué)可以了解一下2021-12-12
Python實(shí)現(xiàn)PNG圖片黑色邊框自動(dòng)去除工具
在日常的圖像處理工作中,我們經(jīng)常會(huì)遇到需要去除圖片黑色邊框的需求,本文將使用Python實(shí)現(xiàn)一個(gè)自動(dòng)化的 PNG 圖片黑色邊框去除工具,需要的可以了解下2025-06-06
MoviePy簡(jiǎn)介及Python視頻剪輯自動(dòng)化
MoviePy是一個(gè)用于視頻編輯的Python模塊,可用于基本操作(如剪切、拼接、字幕插入)、視頻合成、視頻處理或創(chuàng)建高級(jí)效果等。本文給大家介紹MoviePy簡(jiǎn)介及Python視頻剪輯自動(dòng)化的相關(guān)知識(shí),感興趣的朋友一起看看吧2020-12-12
使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)PDF頁(yè)面設(shè)置操作,例如旋轉(zhuǎn)頁(yè)面和調(diào)整頁(yè)面順序,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
python計(jì)算機(jī)視覺(jué)opencv卡號(hào)識(shí)別示例詳解
這篇文章主要為大家介紹了python計(jì)算機(jī)視覺(jué)opencv卡號(hào)識(shí)別的實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下 希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11

