魅力标签云,奇幻词云图 —— 数据可视化新境界

news2024/11/28 9:45:48

目录

  • 目的
    • 原理详解
      • 建议
  • 标签云:用于汇总生成的标签,一般是独立词汇
    • 运行前的准备
    • 代码示例
  • 词云:对本文中出现频率较高的词,视觉上突出显示
  • 总结

目的

  1. 掌握文本与文档可视化:使用特定软件或编程语言(如Python, R等)来实现文本和文档的可视化。
  2. 能够进行日志数据可视化操作:日志数据通常包含大量的时间戳信息,对其进行可视化有助于发现系统运行的趋势和异常。
  3. 了解社交网络可视化:社交网络数据通常表现为用户之间的关系网络,通过可视化可以清晰地展示用户间的交互模式和社区结构。常用的工具有Gephi、NetworkX等。

原理详解

  1. 关键词可视化

    • 标签云:是一种流行的关键词展示方式,通过字体大小和颜色的变化来反映关键词的重要性。
    • 文档散:不同于简单的标签云,文档散考虑了词汇之间的关系,使得关键词的布局更有意义。
  2. 时序文本可视化

    • 这种类型的可视化特别适合于展示随时间变化的文本数据,如新闻报道、社交媒体帖子等。
    • 主题河流图文本流图都是用来表示随着时间推移,话题或情绪变化的有效方法。
  3. 基于图的文本关系可视化

    • 词语树短语网络可以帮助我们理解文本中词汇之间的关系,例如同义词、反义词、上下位关系等。
    • 在短语网络中,节点代表词汇或短语,而带有方向的连线则表示这些词汇或短语之间的关系。
  4. 文档间关系可视化

    • 星系视图是一种有效的展示大量文档之间相似度的方法,通过将文档投影到二维空间中,可以直观地看到文档群组的形成。

建议

  • 实践操作:选择合适的工具(如D3.js、Tableau、Gephi等)进行实际操作,尝试对给定的数据集(如新闻文章、微博帖子等)进行上述各种类型的可视化。
  • 案例分析:挑选几个典型的案例,比如分析某个热门话题在社交媒体上的传播路径,或者研究一段时期内公众对某一事件的态度变化。
  • 反思总结:在完成每个可视化任务后,思考其背后的设计理念和技术实现,以及这种表现形式的优点和局限性。

标签云:用于汇总生成的标签,一般是独立词汇

运行前的准备

  • 安装依赖库:如果您还没有安装pytagcloud库,可以通过pip安装:pip install pytagcloud

国内阿里云镜像
安装pygame:



pip install pygame -i https://mirrors.aliyun.com/pypi/simple/

安装pytagcloud:


pip install pytagcloud -i https://mirrors.aliyun.com/pypi/simple/
  • 字体文件:确保您的系统中安装了msyh(微软雅黑)字体,否则可能需要指定其他可用的字体。

代码示例

为了确保代码的可读性和健壮性,以下是稍微调整后的版本:

from pytagcloud import create_tag_image, make_tags
import re
import time
from collections import Counter

# 去除内容中的非法字符
def validate_content(content):
    rstr = r"[\/\\\:\*\?\"\<\>\|\.\*\+\-\(\)\"\'\(\)\!\?\“\”\,\。\;\:\{\}\=\%\*\~\·]"
    new_content = re.sub(rstr, "", content)
    return new_content

if __name__ == '__main__':
    # 文件路径
    file_path = 'D:/edge/shuju/Lib/site-packages/pytagcloud/fonts/guzhai_tag.txt'
    
    # 读取文件内容
    with open(file_path, 'r', encoding='UTF-8') as file:
        data = file.read().split('\r\n')
    
    # 处理内容,生成关键词列表
    words = []
    for line in data:
        cleaned_line = validate_content(line)
        words.extend(cleaned_line.split())
    
    # 统计关键词频次
    word_counts = Counter(words).most_common()
    
    # 生成标签云
    tags = make_tags(word_counts, maxsize=65)
    current_time = time.strftime('%Y%m%d%H%M%S', time.localtime())
    image_filename = f'tagcloud_{current_time}.png'
    
    # 创建标签云图片
    create_tag_image(tags, image_filename, size=(1000, 800), fontname='msyh', background=(255, 255, 255))
    
    print(f'标签云已保存至 {image_filename}')
  1. 文件路径:确保文件路径正确无误,特别是当您的工作目录不是/Users/teacher/Jupyter/时,需要调整文件路径以匹配实际的文件位置。

  2. 编码:您的代码中指定了encoding='UTF-8',这是正确的做法,因为很多中文文本文件都使用UTF-8编码。如果遇到乱码问题,请检查文本文件的实际编码。

  3. 正则表达式:您使用的正则表达式rstr = r"[\/\\\:\*\?\"\<\>\|\.\*\+\-\(\)\"\'\(\)\!\?\“\”\,\。\;\:\{\}\{\}\=\%\*\~\·]"用于去除一些特殊字符,这对于生成标签云来说是有必要的,但请确保没有删除掉重要的词汇部分。

  4. Counter对象Counter对象会自动统计列表中元素出现的次数,这里用于计算每个单词的频率。

  5. make_tags函数:这个函数将关键词及其出现次数转换成pytagcloud所需的格式,同时可以设置最大字体大小。

  6. create_tag_image函数:此函数负责生成标签云图片,您可以指定图片的尺寸、字体名称、背景颜色等参数。

报错

AttributeError:
Invalid font name. Should be one of Nobile, Old
Standard TT, Cantarell, Reenie Beanie, Cuprum, Molengo, Neucha,
Philosopher, Yanone Kaffeesatz, Cardo, Neuton, Inconsolata, Crimson
Text, Josefin Sans, Droid Sans, Lobster, IM Fell DW Pica, Vollkorn,
Tangerine, Coustard, PT Sans Regular

错误表明pytagcloud库无法识别您指定的字体名称。pytagcloud支持的字体名称是有限的,您需要确保使用的是受支持的字体之一。

解决方法
在这里面修改Lib\site-packages\pytagcloud\fonts

D:\edge\shuju\Lib\site-packages\pytagcloud\fonts
将下载字体拷贝在这里插入图片描述
在fonts.json添加

{
"name": "msyh",
"ttf":"msyh.ttf",
"web":"none"
},

在这里插入图片描述

在上一级可以看到,http://localhost:8888/view/tagcloud_20241107102044.png
在这里插入图片描述
国内镜像
pip install jieba -i https://mirrors.aliyun.com/pypi/simple/
pip install wordcloud -i https://mirrors.aliyun.com/pypi/simple/

词云:对本文中出现频率较高的词,视觉上突出显示

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import os

# 设置字体路径
fontpath = 'D:/edge/shuju/Lib/site-packages/pytagcloud/fonts/msyh.ttf'

# 验证字体文件路径
if not os.path.exists(fontpath):
    print(f"字体文件不存在: {fontpath}")
    fontpath = None  # 使用默认字体
else:
    print(f"字体文件存在: {fontpath}")

# 读取文本文件
file_path = 'D:/edge/shuju/Lib/site-packages/pytagcloud/fonts/guzhai_word.txt'
with open(file_path, 'r', encoding='UTF-8') as f:
    text = f.read()

# 过滤词汇
removes = ['这里', '那里', '有着', '一般', '就是', '可以', '想要', '人们', '看着', '不要', '更是', '千户']

# 分词
words = jieba.lcut(text)
filtered_words = [word for word in words if word not in removes]
cuted = ' '.join(filtered_words)

# 绘制词云
wc = WordCloud(
    font_path=fontpath,  # 设置字体
    background_color="white",  # 背景颜色
    max_words=1000,  # 词云显示的最大词数
    max_font_size=500,  # 字体最大值
    min_font_size=20,  # 字体最小值
    random_state=42,  # 随机数
    collocations=False,  # 避免重复单词
    width=1600,  # 图像宽度
    height=1200,  # 图像高度
    margin=10  # 字间距
)
wc.generate(cuted)  # 生成词云

# 显示词云
plt.figure(figsize=(15, 9))  # 通过这里可以放大或缩小
plt.imshow(wc, interpolation='bilinear', vmax=1000)  # 插值模式,双线性插值
plt.axis("off")  # 隐藏坐标
plt.savefig("WordCloud.jpg")  # 保存词云图片
plt.show()  # 显示词云

版本错误借鉴
在这里插入图片描述

总结

向前冲!!!关键词可视化主要分为两大类:标签云和文档散。标签云通过汇总生成的独立词汇来展示关键词,而文档散则利用词汇库中的结构关系布局关键词,采用具有上下语义关系的词语来展示。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正则表达式在Kotlin中的应用:提取图片链接

在现代的Web开发中&#xff0c;经常需要从网页内容中提取特定的数据&#xff0c;例如图片链接。Kotlin作为一种现代的编程语言&#xff0c;提供了强大的网络请求和文本处理能力。本文将介绍如何使用Kotlin结合正则表达式来提取网页中的图片链接。 正则表达式基础 正则表达式是…

鉴源实验室·加密技术在汽车系统中的应用

随着汽车技术的快速发展&#xff0c;现代汽车已经不再是简单的交通工具&#xff0c;而是融合了多种智能功能的移动终端。无论是自动驾驶、车联网&#xff08;V2X&#xff09;&#xff0c;还是车内娱乐系统&#xff0c;数据传输和存储已经成为汽车生态系统中的关键环节。然而&am…

UE5.1 控制台设置帧率

仅个人记录&#xff0c;未经过严格验证。 也可通过控制台命令蓝图节点&#xff0c;在运行时执行 锁帧&#xff1a; 0->120帧 1-》60帧

SpringCloud Sentinel 服务治理详解

雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 雪崩问题产生的原因&#xff1a; 微服务相互调用&#xff0c;服务提供者出现故障或阻塞。服务调用者没有做好异常处理&#xff0c;导致自身故障。调用链中的…

前端基础-html-注册界面

&#xff08;200粉啦&#xff0c;感谢大家的关注~ 一起加油吧~&#xff09; 浅浅分享下作业&#xff0c;大佬轻喷~ 网页最终效果&#xff1a; 详细代码&#xff1a; ​ <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"…

《TCP/IP网络编程》学习笔记 | Chapter 4:基于TCP的服务器端/客户端(2)

《TCP/IP网络编程》学习笔记 | Chapter 4&#xff1a;基于TCP的服务器端/客户端&#xff08;2&#xff09; 《TCP/IP网络编程》学习笔记 | Chapter 4&#xff1a;基于TCP的服务器端/客户端&#xff08;2&#xff09;回声客户端的完美实现回声客户端的问题回声客户端问题的解决方…

使用 FFmpeg 进行音视频转换的相关命令行参数解释

FFmpeg 是一个强大的多媒体框架&#xff0c;能够解码、编码、转码、录制、播放以及流化几乎所有类型的音频和视频。它广泛应用于音视频处理任务中&#xff0c;包括格式转换、剪辑、合并、水印添加等。本文中简鹿办公将介绍如何使用 FFmpeg 进行一些常见的音视频转换任务。 安装…

ctfshow(316)--XSS漏洞--反射性XSS

Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;显示的cookie还是这样…

从0开始学习Linux——网络配置

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 从0开始学习Linux——远程连接工具 从0开始学习Linux——文件目录 上一个教程中&#xff0c;我们了解了…

python在word中插入图片

本文讲解python如何在word文档中插入图片&#xff0c;以及指定插入图片的段落。 1、在新建的word文档中插入图片 import win32com.client as win32 from win32com.client import constants # 1&#xff09;打开word应用程序 doc_app win32.gencache.EnsureDispatch(Word.App…

亚信安全新一代WAF:抵御勒索攻击的坚固防线

近年来&#xff0c;勒索攻击已成为黑客的主要攻击手段。新型勒索攻击事件层出不穷&#xff0c;勒索攻击形势愈发严峻&#xff0c;已经对全球制造、金融、能源、医疗、政府组织等关键领域造成严重危害。如今&#xff0c;勒索攻击手段日趋成熟、攻击目标愈发明确&#xff0c;模式…

Linux qt下是使用搜狗輸入發

1.下载一个编译好的包 https://github.com/sixsixQAQ/fcitx5-qt 出处&#xff1a;这里 2.根据QT5&#xff0c;或者QT6选择下载 3.使用 把那个libfcitx5platforminputcontextplugin.so放到下面的路径&#xff1a; <你的Qt安装目录>/gcc_64/plugins/platforminputcontex…

linux命令详解,账号相关

账号相关 用户账号数据库相关文件 /etc/password 存储系统中所有用户账户的基本信息 /etc/shadow 用于存储用户账户的密码和其他安全相关信息 /etc/gshdow 用于存储用户组的密码和其他安全相关信息/etc/passwd: username:password:UID:GID:GECOS:home_directory:shell字段解…

Sentinel — 微服务保护

微服务架构将大型应用程序拆分为多个小而独立的服务&#xff0c;每个服务可以独立部署和扩展。然而&#xff0c;微服务系统需要面对的挑战也随之增加&#xff0c;例如服务之间的依赖、分布式环境下的故障传播和安全问题。因此&#xff0c;微服务保护措施是确保系统在高并发、资…

使用Qt制作一个流程变更申请流程进度以及未读消息提醒

1.1加载界面&#xff1a; 界面要素&#xff1a; 成员信息 变更位置申请 接受消息列表 根据角色加载对应界面。 1.2发起变更申请&#xff1a; 用户点击“发起变更申请”按钮。变更申请对话框可编辑&#xff0c;用户填写申请信息&#xff1a; 申请方&#xff08;自动填充&…

Markdown 全面教程:从基础到高级

Markdown 全面教程&#xff1a;从基础到高级 Markdown 是一种轻量级的标记语言&#xff0c;它的设计目标是使书写和阅读文档变得简单而直观。无论是撰写博客、编写文档还是创建 README 文件&#xff0c;Markdown 都是一个非常实用的工具。 目录 Markdown 简介Markdown 的基…

无插件H5播放器EasyPlayer.js关于硬解码和软解码的详细介绍

在当今这个多媒体内容日益丰富的时代&#xff0c;视频播放体验的重要性不言而喻.EasyPlayer.js H5播放器作为一款专为现代Web环境设计的播放器&#xff0c;它不仅提供了流畅的播放体验&#xff0c;还特别注重性能优化。EasyPlayer.js支持多种解码方式&#xff0c;包括硬解码和软…

Multi‐modal knowledge graph inference via media convergenceand logic rule

摘要 媒体融合通过处理来自不同模式的信息并将其应用于不同的领域来实现。传统的知识图很难利用多媒体特征&#xff0c;因为从其他模态引入大量信息降低了表示学习的有效性&#xff0c;并降低了知识图推理的有效性。为了解决这一问题&#xff0c;提出了一种基于媒体融合和规则…

大模型应用编排工具Dify二开之工具和模型页面改造

1.前言 简要介绍下 dify&#xff1a; ​ 一款可以对接市面上主流大模型的任务编排工具&#xff0c;可以通过拖拽形式进行编排形成解决某些业务场景的大模型应用。 背景信息&#xff1a; ​ 环境&#xff1a;dify-0.8.3、docker-21 ​ 最近笔者在做 dify的私有化部署和二次…

【数学】通用三阶矩阵特征向量的快速求法 超简单!!!

目录 三个定理1、3个特征值&#xff08;即根互不相等&#xff09;例题实践2、2个特征值&#xff08;即有一个双重根&#xff09;3、1个特征值&#xff08;即有一个三重根&#xff09;定理证明 三个定理 本定理适用于 所有三阶矩阵 的特征向量求法&#xff01; 1、3个特征值&…