当前位置: 首页 > news >正文

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 基于wordcloud库实现词云图

大家好,我是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.dtcms.com/a/287199.html

相关文章:

  • 使用nvm安装node、npm、pnpm以及编译项目教程
  • 告别项目混乱:基于 pnpm + Turborepo 的现代化 Monorepo 工程化最佳实践
  • 【音视频协议篇】RTSP系列
  • gitlab+jenkins
  • 综合实验--eNSP实验
  • k8s 基本架构
  • Flowable31动态表单-----------------------终章
  • AI编程工具对比:Cursor、GitHub Copilot与Claude Code
  • bws-rs:Rust 编写的 S3 协议网关框架,支持灵活后端接入
  • 【Linux】AKHQ实现kafka可视化
  • 电力载波通信技术全景解析:从历史演进到智能电网创新应用
  • 【Linux服务器】-MySQL数据库参数调优
  • 打造高效订单处理!ZKmall开源商城的统一履约中心架构解析
  • 本地部署开源的 AI 驱动的搜索引擎 Perplexica 并实现外部访问
  • 【黑马SpringCloud微服务开发与实战】(三)微服务01
  • 快速上手AI整合包!GPT-SoVITS-v2打包教程,解锁AIStarter应用市场潜力
  • freertos任务调度关键函数理解
  • 笔试强训——第一周
  • 标准文件和系统文件I/O
  • 鸿蒙与web混合开发双向通信
  • 云服务器磁盘IO性能优化的测试与配置方法
  • docker|Linux|以centos基础镜像为基础制作nmap专用镜像(镜像瘦身计划)
  • SQL基础操作指南:约束、表设计与复杂查询
  • 【RK3576】【Android14】USB开发调试
  • install_arm_docker.sh
  • 【Qt开发】Qt的背景介绍(三)-> 认识Qt Creator
  • python网络爬虫之selenium库(二)
  • Android回调机制入门
  • 工程图矢量化 笔记 | potrace ezdxf svgpathtools | png转svg保存dxf用matplotlib画出来
  • 基于springboot的考研互助小程序