数据分析之词云图绘制

news2024/11/16 7:36:21

试验任务概述:如下为所给CSDN博客信息表,分别汇总了'ai', 'algo', 'big-data', 'blockchain', 'hardware', 'math', 'miniprog'等7个标签的博客。对CSDN不同领域标签类别的博客内容进行词频统计,绘制词频统计图,并根据词频统计的结果绘制词云图。

数据表链接:https://download.csdn.net/download/m0_52051577/88669409?spm=1001.2014.3001.5503 

import pandas as pd
data=pd.read_csv(open('D://实训课//实训课数据csdn.csv'),sep=',') //导入数据
data  //数据预览

如图,数据信息包括class、url、title、content四个类标签,分别表示博客所属领域类别、对应链接、博文题目和博客内容。下面第一步对这些博文按类别进行分类。

session=data.loc[:,'class'].values
set(session)//对数据表的class类别列切分
def classma(i):
    class1=data.loc[data['class']==class_list[i],:]
    print(class1)
    return class1
//定义切分函数,按类别列作为索引返回每一类别对应的数据信息
class_list=['ai', 'algo', 'big-data', 'blockchain', 'hardware', 'math', 'miniprog']
# for i in range(len(class_list)):
#     classma(i)
ai=classma(0)

分类结果如下图所示: 

 导入停用词表,对所分类数据进行停用词处理。

file_path='D:/..csv'
def getStopword(file_path):
    stop_list=[line[:-1] for line in open(file_path+'/哈工大停用词表 .txt','r',encoding='UTF-8')]
    return stop_list
getStopword(file_path)
import jieba 
def preProcess(all_data,stop_list):
    xdata=all_data['content']
    result_data=list(xdata)
    result=[]
    for doc in result_data:
        doc=doc.strip()
        cut_list=jieba.lcut(doc)
        doc_result=[word for word in cut_list if word not in stop_list]
        result.append(doc_result)
    return result

# getStopword(file_path)
result1=preProcess(ai,getStopword(file_path))
print(result1)

 导入jieba库,对去除停用词后的数据进行分词处理,并返回分词后的结果。

 

后续是对分词后的词频进行统计,并计算每个分词的tf-idf值,这里引入一个tf-idf值的概念:

TF(词频)指的是一个词语在文档中出现的频率,它认为在一个文档中频繁出现的词语往往与文档的主题相关性更高。

from gensim.models.tfidfmodel import TfidfModel
from gensim import corpora
def calculate(resultx):
    dictionary=corpora.Dictionary(resultx)
    corpus=[dictionary.doc2bow(text) for text in resultx]

    tf_idf_model = TfidfModel(corpus, normalize=False)
    word_tf_tdf = list(tf_idf_model[corpus])
    print('词典:', dictionary.token2id)
    print('词频:', corpus)
    print('词的tf-idf值:', word_tf_tdf)
    return dictionary.token2id,corpus,word_tf_tdf
idic,corpus,word_tf_tdf=calculate(result1)

 

如上图,找出每个分词和与之相关联的词对应的下标。

max_pic=[]
max_fre=[]
def search(resultx,a):
    maxmum=[]
    idic,corpus,word_tf_tdf=calculate(resultx)
    for row in word_tf_tdf[a]:
        maxmum.append(row[1])
    for col in word_tf_tdf[a]:
        if col[1]==max(maxmum):
            print(max(maxmum))
            max_fre.append(max(maxmum))
            max_sig=col[0]
            max_pic.append(max_sig)
    return max_pic,max_fre
for i in range(len(word_tf_tdf)):
    search(result1,i)
print(max_pic)
print(max_fre)

对所有相关联的数对进行检索,采用特征提取方法对数据排序。并采用最大关联分析,找出每一个标签中与属性相关最大的词。 返回的是对应词的下标和对应的tf-idf值。

dictionary_s=idic
key_words=[]
for key,value in dictionary_s.items():
    if value in max_pic:
        key_words.append(key)
key_words.pop(-1)
print(key_words)

 构造关键词列表,根据之前返回的关联度最大词汇对应的下标,回到原数据表中定位,找出对应的词汇。

# 构造词频字典
dict_zip=dict(zip(key_words,max_fre))
print(dict_zip)

最后,根据词汇、词频列表绘制词云图。

# 绘制词云
from wordcloud import WordCloud
import matplotlib.pyplot as plt
def draw(y):
    my_cloud = WordCloud(
        background_color='white',  # 设置背景颜色  默认是black
        width=900, height=600,
        max_words=100,            # 词云显示的最大词语数量
        font_path='simhei.ttf',   # 设置字体  显示中文
        max_font_size=99,         # 设置字体最大值
        min_font_size=16,         # 设置子图最小值
        random_state=50           # 设置随机生成状态,即多少种配色方案
    ).generate_from_frequencies(y)

    # 显示生成的词云图片
    plt.imshow(my_cloud, interpolation='bilinear')
    # 显示设置词云图中无坐标轴
    plt.axis('off')
    plt.show()
draw(dict_zip)

 

注:以上为AI标签列对应的词云图,其他标签列词云图绘制的实现方式同此方法。就不再赘述。 

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

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

相关文章

使用streampark进行flink on k8s LoadBalancer配置域名访问flink ui

在使用yarn部署flink任务时,yarn自动代理了flink web ui,通过yarn的地址即可访问任务web页面。 k8s模式下想访问flink web ui,要么使用NodePort的方式启动任务,然后通过k8s主机IPNodePort端口来进行访问。但是这种方法&#xff0…

C++构建简单静态库实例(cmakelist)

一、开发实例 通过cmake构建静态开发实例如下: 1.1 代码目录 代码目录结构如下: 1.2 代码内容 1.2.1 CMakeLists.txt # CMake 最低版本要求 cmake_minimum_required(VERSION 3.10)# 项目名称 project(mylib)# 添加源文件 set(SOURCE_FILESsrc/mylib

分布式数据库 GaiaDB-X 通过 GB18030-2022《信息技术 中文编码字符集》最高级别认证

近日,百度智能云分布式数据库GaiaDB-X通过 GB18030-2022《信息技术 中文编码字符集》强制性国家标准测试,达到最高实现级别(3级)。 据了解,GB18030-2022《信息技术 中文编码字符集》是中文信息技术领域最重要的基础性标…

在 Unity 中获取 Object 对象的编辑器对象

有这个需求的原因是,在编辑器的 Inspector 逻辑中,写了许多生成逻辑。 现在不想挨个在 Inspector 上都点一遍按钮,所以就需要能获取到它们的编辑器对象。 发现可以借助官方的 UnityEditor.Editor.CreateEditor 方法达到目的,如下…

【IoT网络层】STM32 + ESP8266 +MQTT + 阿里云物联网平台 |开源,附资料|

目标:实现STM32连接阿里云物联网平台发送数据同时接收数据,IOT studio界面显示数据。具体来说:使用ESP8266 ESP-01来连接网络,获取设备数据发送到阿里云物联网平台并显示且oled显示屏当前的设备数据,通过IOT studio界面…

OpenHarmony城市技术论坛武汉站:探索大模型时代的终端操作系统创新

2023年12月23日下午,OpenHarmony城市技术论坛(以下简称“技术论坛”)——第6期(武汉站)于华中科技大学梧桐语问学中心明德报告厅圆满举办。本次技术论坛聚焦“大模型时代的系统软件”,旨在探索AI大模型在终端操作系统领域的创新趋势和挑战。论坛从“终端操作系统十大技术挑战”…

亿赛通电子文档安全管理系统 linkfilterservice 未授权漏洞

产品简介 亿赛通电子文档安全管理系统,(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资…

php 之 redisk 扩展问题

系统: ARM V10 server (1229) 软件: php、phpdevel redis5.1.0RC1 redis5.1.0RC1.tgz phpredis 编译: 解压进入目录内: # phpize # ./configure withphpconfig/usr/bin/phpconfig # make # make ins…

【1】Docker详解与部署微服务实战

Docker 详解 Docker 简介 Docker 是一个开源的容器化平台,可以帮助开发者将应用程序和其依赖的环境打包成一个可移植、可部署的容器。Docker 的主要目标是通过容器化技术实现应用程序的快速部署、可移植性和可扩展性,从而简化应用程序的开发、测试和部…

机器学习——决策树(三)

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、案例一 决策树用于是否赖床问题。 采用决策树进行分类,要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。 赖床数据链接:https://pan…

SLAM算法与工程实践——相机篇:RealSense D435使用(2)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址: SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

基于ChatGpt,Java,SpringBoot,Vue,Milvus向量数据库的定制化聊天Web demo

customized chat GitHub - bigcyy/customized-chatgpt: 基于ChatGpt,Java,SpringBoot,Vue,Milvus向量数据库的定制化聊天Web demo 简介 基于ChatGpt,Java,SpringBoot,Vue,Milvus向…

基于SpringBoot+thymeleaf+layui 宠物医院预约管理系统(Java毕业设计有文档)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型

数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型 数据库服务概述构建mysql服务安装mysql软件包连接mysql服务器 修改密码 密码管理修改密码策略(需要登陆)破解数据库管理员root密码(数据库服务处于运行状态但是root忘记了密…

Android ImageView如何使用.svg格式图片

我们知道imageview常用的图片格式是.jpg/.png或者drawable里的部分.xml文件。但有时UI会给过来.svg格式的文件,下面讲解如何使用.svg格式图片文件 step1:AS点击File -> New -> Vector Asset step2:选中要使用的.svg文件,按需要命名和调整&#x…

信息泄露总结

文章目录 一、备份文件下载1.1 网站源码1.2 bak文件泄露1.3 vim缓存1.4 .DS_Store 二、Git泄露2.1 git知识点2.1 log2.2 stash 三、SVN泄露3.1 SVN简介3.2 SVN的文件3.3 SVN利用 四、Hg泄露 一、备份文件下载 1.1 网站源码 常见的网站源码备份文件后缀: tartar.gz…

中国首个车路云一体化研究中心成立,将如何改变自动驾驶?

图片|electronicsmedia.info ©⾃象限原创 作者丨钱诚 编辑丨程心 自动驾驶正在迎来一场新的变局。 只是这一次,搅动整个产业的,是各种政策的密集落地。 2023年10月,工信部提出要开展城市级“车路云一体化”示范&#x…

【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案

【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机 1.试证明样本空间中任意点x到超平面(w,b)的距离为式(6.2)。 首先,直观解释二维空间内点到直线的距离: 由平面向量的有关知识,可得: 超平面的法向量为 w w w&am…

uniapp的分包使用记录

UniApp的分包是一种将应用代码划分为多个包的技术。分包的核心思想是将不同部分的代码划分为不同的包,按需加载,从而提高应用性能。使用UniApp的条件编译功能,开发人员可以根据需要将代码划分为多个包。每个包都包含一组页面和组件&#xff0…

SQL delete不走索引

由于业务变迁,合规要求,我们需要删除大量非本公司的数据,涉及到上百张表,几个T的数据清洗。我们的做法是先从基础数据出发,将要删除的数据id收集到一张表,然后再由上往下删除子表,多线程并发处理。 我们使用的是阿里的polardb,完全兼容mysql协议,5.7版本,RC隔离级别。…