Python制作WordCloud詞云

暫時領先,未必最先達到終點

命運的起點

終究,命運的齒輪開始轉動了,從這一刻起

幾日不見,甚是思念!小夜斗又回來啦!

這幾日小夜斗一直在折騰于詞云制作、力扣刷題、java學習、還有爬取微博評論數(shù)據的爬蟲項目,一直沒有功夫寫博客,內心感到無比空虛,哈哈好啦,今天小夜斗給大家分享一期WordCloud詞云制作

所需數(shù)據集: 停用詞文本、b站彈幕數(shù)據文本

這兩個數(shù)據小夜斗會在文末給大家分享的哈!

其中b站彈幕數(shù)據文本也可以自己動手去爬一下

好啦,前言介紹就這么多啦,下面讓小夜斗給大家整活吧!

先導入需要利用到的庫!

import jieba  # 分詞
from wordcloud import WordCloud  # 詞云
from PIL import Image  # 圖片處理
import numpy as np  # 圖片處理
import matplotlib.pyplot as plt  # 畫圖

一: jieba分詞

所謂的分詞就是將一句話分成一個或幾個詞語的形式,例如
[圖片上傳失敗...(image-45ddbf-1611472232678)]
小夜斗爬取冰冰vlog數(shù)據中,有一句老婆好美!通過jieba分詞后

就會形成兩個詞語: "老婆","好美"! 小夜斗一雙涼涼的手敲代碼,

但心卻是冰冰的!下面讓我們來看分詞代碼吧!

# 讀取停用詞庫,注意編碼應為‘utf8’
f = open('小夜斗的停用詞表.txt', encoding='utf8')
stopwords = f.read().split('\n')
print(stopwords)  # 打印停用詞
f.close()  # 關閉停用詞文件

[圖片上傳失敗...(image-fe16c4-1611472232678)]
如上圖所示,打印出的為一個停用詞列表

with open("冰冰vlog2.txt", "r", encoding='utf8') as fp:
    text = fp.read()        

這是一個讀取冰冰彈幕數(shù)據文件的操作,將其保存到text變量中!

segs = jieba.cut(text)  # 進行jieba分詞
mytext_list = []  # 構建一個容納過濾掉停用詞的冰冰彈幕數(shù)據文件
# 文本清洗
for seg in segs:  # 循環(huán)遍歷每一個分詞文本
    # 如果該詞不屬于停用詞表 并且非空 長度不為1
    if seg not in stopwords and seg != "" and len(seg) != 1:
        # 將該詞語添加到mytext_list列表中
        mytext_list.append(seg.replace(" ", ""))
print(mytext_list)  # 打印過濾后的冰冰彈幕數(shù)據

[圖片上傳失敗...(image-d35b8e-1611472232678)]

如上圖所述,選取其中一小部分展示,上述操作的核心目的是:

jieba.cut(string) 精確模式:把文本精確的切分開,不存在冗余單詞,適合做文本分析
jieba.cut(string,cut_all = True) 全模式:把文本中所有可能的詞語都掃描出來,速度快,但有冗余。
jieba.cut_for_search(string) 搜索引擎模式:在精確模式基礎上,對長詞再次切分。

獲取過濾停用詞后的冰冰彈幕數(shù)據相當于處理臟數(shù)據一樣

cloud_text = ",".join(mytext_list)  # 連接列表里面的詞語
print(cloud_text) 

[圖片上傳失敗...(image-ce7655-1611472232678)]
打印cloud_text的結果如上,這個數(shù)據是最終為詞云服務的!

二: 制作WordCloud詞云

  • 詞云的目的: 將出現(xiàn)頻率最高的哪些詞匯展示出來!
  • 注意圖片的選取要用色彩相差較大的,會發(fā)現(xiàn)整個矩形都堆滿了詞匯,而不是那種剛好出現(xiàn)人物形狀的詞云
  • 如果你制作的詞云是整個矩陣鋪滿詞語,不煩換一張圖片試試
  • 這里小夜斗從csdn博主那搞來了一張冰冰的帥氣照片!感覺這張圖片制作圖云的效果最nice了,圖片上面的水印加的是kimi君的博客鏈接!
    冰冰美照
plt.figure()  # 圖形窗口
mask = plt.imread('冰冰冰.jpeg')  # 導入冰冰圖形蒙版
wc = WordCloud(
            background_color="white",  # 背景顏色
            max_words=200,  # 顯示最大次數(shù)
            font_path=r'C:/Windows/Fonts/STXINGKA.TTF',  # 字體
            width=400,  # 寬
            height=200,  # 高
            mask=mask,
            scale=10).generate(cloud_text)  # 迭代生成詞云
wc.to_file("博客展示詞云.png")
plt.imshow(wc, interpolation="bilinear")  # 插值為雙線性,會使顯示平滑更加平滑
plt.axis("off")  # 坐標軸隱藏
plt.show()
print("小夜斗立項成功!")
詞云生成
  • 上面是小夜斗自己做的幾副詞云,其中有人物圖形的是博客中分享的那張照片,其余幾張因為圖片的問題導致要么顯示不完全,要么是全鋪滿!
  • 獲取源碼以及數(shù)據集,小夜斗公眾號回復”004詞云制作“即可!

微信公眾號: 夜斗小神社

好啦今天的分享就到這里啦,然后小夜斗就要滾去學習啦,see you!

  • 在這個星球上,你很重要,請珍惜你的珍貴! ~~~夜斗小神社
    星空
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容