python定制词云图


前言

善始者繁多,克终者盖寡。

问题描述:我们已经通过爬虫获取到了大量的课程评论信息,有没有一种直观形象的方法来判断学习者对这门课程的态度呢?

答案是有的,我们可以通过词云图来从整体上粗略的判断学习者们的整体态度!!!


一、python实现

“word_filename”表示文本文件的名称;
为了增强程序的复用性,使用配置文件"background_config.txt"定位词云图的背景,该文件在程序文件的同级目录下;
wordcloud.WordCloud定义了词云图的显示,“background_color”属性指定了词云图的背景颜色,根据个人需求也可以更改为"black”等颜色;
w.generate是词云图的核心方法,根据文本中词语出现频次以不同大小和颜色显示;
程序运行后生成一张赋有时间戳的图片。

import cv2
import wordcloud
import time

def get_wordcloud(word_filename):
    with open("background_config.txt", "r", encoding="utf-8") as f:
        img = f.readline()[6:]
    font_path = r"楷体.ttf"
    img = cv2.imread(img)
    # w = wordcloud.WordCloud(font_path=font_path, background_color="white" \
    #                    , max_words=5000, width=800, height=50000, mask=img)
    w = wordcloud.WordCloud(font_path=font_path, background_color="white" \
                            , max_words=5000, width=800, height=50000, mask=img)
    strtext = ""
    with open(word_filename, encoding="utf-8") as f:
        strtext = str(f.read())
    w.generate(strtext)
    time_flag = str(time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime()))
    out_picture = "result\\wordcloud" + time_flag + ".png"
    w.to_file(out_picture)
    show_img = cv2.imread(out_picture)
    cv2.imshow("wordcloud",show_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

二、程序测试

测试代码为:

if __name__ == '__main__':
    word_filename = "result/comment2023_04_01_21_02_45.txt"
    get_wordcloud(word_filename=word_filename)

2.1 心形词云图

"background_config.txt"内容如图所示:
配置文件
使用的背景图片为:

heart
程序运行结果为:
心形词云图

2.2 皮卡丘型词云图

"background_config.txt"内容如图所示:

在这里插入图片描述
使用的背景图片为:

pkq.jpg

程序运行结果为:

皮卡丘型词云图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的墨菲特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值