大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解基于wordcloud库实现词云图

视频在线地址:

2026版【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts+爬虫) 视频教程 (火爆连载更新中..)_哔哩哔哩_bilibili

课程简介:


本课程采用主流的Python技术栈实现,Mysql8数据库,Flask后端,Pandas数据分析,前端可视化图表采用echarts,以及requests库,snowNLP进行情感分析,词频统计,包括大量的数据统计及分析技巧。

实现了,用户登录,注册,爬取微博帖子和评论信息,进行了热词统计以及舆情分析,以及基于echarts实现了数据可视化,包括微博文章分析,微博IP分析,微博评论分析,微博舆情分析。最后也基于wordcloud库实现了词云图,包括微博内容词云图,微博评论词云图,微博评论用户词云图等功能。

基于wordcloud库实现词云图

词云(Word Cloud) 是一种文本数据可视化形式,通过不同大小、颜色和布局的词汇展示文本中的关键词频率。词汇出现频率越高,在词云中显示得越大、越突出。常用于快速识别文本主题、情感分析或数据摘要。

核心特点

  1. 视觉突出:高频词汇尺寸更大、更醒目

  2. 自定义灵活:支持形状、颜色、字体等深度定制

  3. 快速洞察:一眼识别文本核心主题

  4. 应用广泛:社交媒体分析、用户评论摘要、报告生成等

安装wordcloud库

pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple

以下是 wordcloud.WordCloud 类构造方法的完整参数说明,掌握这些参数可以创建高度定制化的词云:

WordCloud(# 核心参数font_path=None,      # 字体路径(解决中文显示必备)width=400,           # 图像宽度(像素)height=200,          # 图像高度(像素)margin=2,            # 边距(像素)# 颜色与样式background_color="black",  # 背景色colormap=None,       # 颜色映射(如'viridis'/'plasma',与color_func二选一)color_func=None,     # 自定义颜色函数# 文本处理max_words=200,       # 最大显示词数stopwords=None,      # 停用词集合min_word_length=0,   # 最小词长(过滤短词)collocations=True,   # 是否包含双词搭配(bigram)# 字体控制max_font_size=None,  # 最大字体尺寸(自动计算)min_font_size=4,     # 最小字体尺寸font_step=1,         # 字体步进值(越大渲染越快)relative_scaling=.5, # 词频缩放比例(0-1,1为线性)# 布局与形状mask=None,           # 形状蒙版(numpy数组)contour_width=0,     # 轮廓线宽contour_color='black',# 轮廓颜色# 重复词处理repeat=False,        # 是否允许重复词include_numbers=False, # 是否包含数字normalize_plurals=True # 复数归一化(如word/words)# 其他高级参数prefer_horizontal=.9, # 水平词比例(0.9=90%词水平)scale=1,             # 图像缩放比例(>1提高分辨率)random_state=None,   # 随机种子(固定布局)collocation_threshold=30, # 双词搭配阈值mode="RGB",          # 图像模式(RGB/RGBA)
)

常用参数详解

参数说明示例值
width/height图片尺寸800, 400
background_color背景色"white", "#000000"
max_words最大词汇数量200
colormap颜色映射"viridis", "tab20"
mask形状模板numpy数组
stopwords停用词表set(["a", "the"])
font_path字体路径"arial.ttf"

下面是示例代码:

import sysimport numpy as np
from PIL import Image
from matplotlib import pyplot as plt
from wordcloud import WordCloudsys.path.append('static')if __name__ == '__main__':text = "牛掰 牛逼 大佬 我去 张三 卡卡 嘿嘿 哈哈 生成 商城 气死我了 不去 就不要 好滴 骄傲 好的 大战 发展 求生 共存 火了 刘安 伙计 火鸡 打火机"img = Image.open('article_mask.jpg')  # 形状模版图片img_arr = np.array(img)  # 转成图片数组对象wc = WordCloud(width=800,height=600,background_color='white',colormap='Blues',font_path='STHUPO.TTF',mask=img_arr)wc.generate_from_text(text)# 绘制图片plt.imshow(wc)# 不显示坐标轴plt.axis('off')outImg = 'wordcloud_test.jpg'plt.savefig('wordcloud_test.jpg', dpi=500)

我们可以封装下,做成一个生成词云图的工具方法genWordCloudPic(),其他地方就可以传参直接调用生成词云图。

import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
from wordcloud import WordClouddef genWordCloudPic(str, maskImg, outImg):"""生成云图:param str: 词云 空格隔开:param maskImg: 形状模版图片:param outImg: 输出的词云图文件名:return:"""img = Image.open(maskImg)  # 形状模版图片img_arr = np.array(img)  # 转成图片数组对象wc = WordCloud(width=800,height=600,background_color='white',colormap='Blues',font_path='STHUPO.TTF',mask=img_arr)wc.generate_from_text(str)# 绘制图片plt.imshow(wc)# 不显示坐标轴plt.axis('off')plt.savefig(outImg, dpi=500)if __name__ == '__main__':text = "牛掰2 牛逼 大佬 我去 张三 卡卡 嘿嘿 哈哈 生成 商城 气死我了 不去 就不要 好滴 骄傲 好的 大战 发展 求生 共存 火了 刘安 伙计 火鸡 打火机"genWordCloudPic(text, 'comment_mask.jpg', 'wordcloud_test2.jpg')

运行生成:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92269.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92269.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92269.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 面试题及详细答案120道(31-45 )

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Proxmox VE 8.3/8.4开启Intel 核显的vGPU,搭建vGPU云桌面系统

1. Intel Graphics SR-IOV 介绍Intel Graphics SR-IOV 是 Intel 最新的图形虚拟化技术。单根 I/O 虚拟化 (SR-IOV) 通过将设备划分为多个虚拟功能来定义共享物理设备功能的标准方法。每个虚拟函数都直接分配给一个虚拟机,从而为虚拟机实现接近…

LeetCode 热题100

文章目录哈希两数之和字母异位词分组最长连续序列双指针移动零盛最多水的容器滑动窗口子串多刷题 LeetCode 热题100 哈希 两数之和 思路分析: 暴力做法:每一个数字都与剩余的数字作比较,时间复杂度是O(n2)O(n^2)O(n2)哈希做法:我…

Idea或Pycharm上.idea的忽略提交的问题总结

文章目录问题描述如果是首次提交或者之后的提交代码时把.idea及其文件提交到远端仓库中,此时再创建.gitignore会不生效。问题描述 由于在代码托管平台上创建的项目,没有关联创建.gitignore文件。导致git 克隆到本地电脑上时,项目的根目录下也…

【锁】MySQL中有哪几种锁?

📚 欢迎来到我的Java八股文专栏! 🎉 各位程序员小伙伴们好呀~ 👋 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨ 🚀 专栏介绍 这个专栏将专注于分享Java面试中的经典"八股文"知识点 &a…

旷视科技视觉算法面试30问全景精解

旷视科技视觉算法面试30问全景精解 ——AI赋能 智能安防 视觉创新:旷视科技视觉算法面试核心考点全览 前言 旷视科技(Megvii)作为全球领先的人工智能公司,专注于计算机视觉、深度学习和智能安防等领域,推动人脸识别、…

docker nginx 部署前端踩坑记录

文章目录坑点1:localhost 与127.0.0.1坑点1:localhost 与127.0.0.1 server {listen 80 default_server;client_max_body_size 20M;# 记录访问日志和错误日志access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.l…

JAVA_TEN-面向对象高级一

一.Static一 定义:叫静态,可以修饰成员变量、成员方法成员变量按有无static修饰,分为两种:类变量:有static 修饰,属于类,在计算机里只有一份,会被类的全部对象共享。实例变量&#x…

幻兽帕鲁开服教程

以下均为个人推荐,不喜勿喷,望审核大大明辨开服条件一台带公网的vps服务器(需开放udp),配置至少为4c16g,推荐8c32g开服需要准备的工具:steamcmd:https://steamcdn-a.akamaihd.net/cl…

lesson21:Python面向对象编程

目录 引言 一、了解面向对象编程(OOP):编程范式的革命 1.1 什么是面向对象编程? 1.2 OOP vs 面向过程:思维方式的差异 1.3 OOP的三大核心特性 二、类与对象:OOP的基石 2.1 类(Class&#…

基于卷积神经网络与小波变换的医学图像超分辨率算法复现

基于卷积神经网络与小波变换的医学图像超分辨率算法复现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 1. 引言 医学图像超分辨率技术在临床诊断和治疗规划…

HCIP第一二章笔记整理

第一章:复习HCIA第一阶段应用层:自然语言转换为编码表示层:编码转换为二进制介质访问控制层:二进制转化为信号物理层:传输电信号第二阶段:OSI参考模型应用层:提供网络服务表示层:对数…

《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——2. C++基础:构建程序的坚实骨架

目录一、概述1.1 背景介绍:从UI到逻辑1.2 学习模式:Qt控制台应用二、C语法快速入门2.1 变量、数据类型与注释2.2 函数与代码封装2.3 循环与容器:批量处理三、面向对象编程:封装数据与行为四、Qt的核心扩展:信号与槽通信…

Navicat 远程连接SQLlite数据库

1、SQLlite数据库是一个本地.db文件,默认不支持远程连接; 2、Navicat 可以通过ntunnel_sqlite.php文件连接远程SQLlite库; 3、安装Navicat,安装完成,在安装目录下找到ntunnel_sqlite.php文件; 4、上传当前文…

OpenCV用于计算光流的一个类cv::optflow::DualTVL1OpticalFlow

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::optflow::DualTVL1OpticalFlow 是 OpenCV 中用于计算光流的一个类,特别地,它实现了基于双帧 TV-L1(Total V…

PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率

软件安装 目标软件: Python解释器Pycharm编辑器 Python官网: 点击访问Python官网 Pycharm官网:点击访问Pycharm官网 环境搭建 搭建完成后最终的环境详情: python安装路径:D:\ProgramEnviron\Python\Python311Pyth…

30天打牢数模基础-卷积神经网络讲解

案例代码实现一、代码说明本案例使用PyTorch实现一个改进版LeNet-5模型,用于CIFAR-10数据集的图像分类任务。代码包含以下核心步骤:数据加载与预处理(含数据增强,划分训练/验证/测试集);定义CNN网络结构&am…

Dev-C++——winAPI贪吃蛇小游戏

🚀欢迎互三👉:雾狩 💎💎 🚀关注博主,后期持续更新系列文章 🚀如果有错误感谢请大家批评指出,及时修改 🚀感谢大家点赞👍收藏⭐评论✍ 今天水一篇吧…

【openbmc6】entity-manager

文章目录 2.1 事件监听:dbus在linux上使用的底层通信方式多半是unix domain socket ,事件的到来可被抽象为:socket上有数据,可读 2.2 事件处理:由于主线程肯定有逻辑得跑,因此新开一个线程甚至多个线程专门用来监听和处理事件,但存在多线程就意味着可能存在竞争,存在竞…

Java 实现 UDP 多发多收通信

在网络通信领域,UDP(用户数据报协议)以其无连接、高效率的特点,在实时通信场景中占据重要地位。本文将结合一段实现 UDP 多发多收的 Java 代码,详细解析其实现逻辑,帮助开发者深入理解 UDP 通信的底层逻辑与…