python 生成词云小工具

本文介绍如何使用Python生成词云,包括配置WordCloud类参数、背景图片读取、词云颜色调整等步骤,并提供了解决pyinstaller打包时遇到的问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python生成词云的主要代码

    def create_word_cloud(self):
        self.save_config()
        img_file = 'static/background.jpg' # 设置背景图片
        mask_img = imageio.imread(img_file) # 读取背景图片

        # 进行分词 jieba将中文的一句分成词语
        # word_cut=jieba.cut(word_content)
        # 把分词用空格连起来
        # word_cut_join=" ".join(word_cut)

        word_cut_join = self.myconfig.join_word_cloud()  #生成词云图片需要文字

        # 生成词云
        wc = WordCloud(
            font_path='static/font.TTF',  # 设置字体
            max_words=150,  # 词云显示的最大词数
            mask=mask_img,  # 设置背景图片
            background_color=self.myconfig.back_color  # 背景颜色
        ).generate(word_cut_join)

        # 识别原先背景的颜色,用于生成的词云颜色
        if self.myconfig.is_back_color == '1':
            image_color = wordcloud.ImageColorGenerator(mask_img)
            wc_color = wc.recolor(color_func=image_color)
            
        # 显示生成的词云图片
        plt.imshow(wc)
        # 去掉坐标轴
        plt.axis('off')
        # 将图片保存到本地
        plt.savefig('heart_cy.jpg')
        plt.show()

备注:
用pyinstaller打包WordCloud需要注意,
1:wordcloud下载的包源文件 wordcloud.py文件内获取‘stopwords.txt‘ 33-35行指定的路径是绝对路径需要改成相对路径

#源文件
FILE = os.path.dirname(__file__)
FONT_PATH = os.environ.get('FONT_PATH', os.path.join(FILE, 'DroidSansMono.ttf'))
STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords')).readlines()))

#现修改文件
FILE = os.path.dirname(sys.executable)
FONT_PATH = os.environ.get('FONT_PATH', os.path.join(FILE, 'DroidSansMono.ttf'))
STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords')).readlines()))

2:pyinstaller 打包的时候,wordcloud 中 stopwords 文件不会被打包到依赖包中,需要手动添加到 exe 根目录依赖包 wordcloud 中。
ps:用 -F 这种方式打包的同学注意了,同样stopwords文件不会被打包,测试放到exe根目录下面也是无效(有解决方法求告知)

番外篇:
使用pyqt5简单制作生成词云的图形化界面:
在这里插入图片描述
生成界面:
在这里插入图片描述
源代码:
https://gitee.com/juanzi_5/worlCloud.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值