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

大数据分析-读取文本文件内容进行词云图展示

在对文本文件进行数据分类预测的时候,常常需要先将文本文件进行分词,提取关键词后进行后续的向量化处理,今天我们就来介绍一种将文本文件进行分词并统计词频,最终形成词云图的方法,其中可视化的对文本内容进行分析和展示,十分实用!

一、需要用到jieba的分词工具以及pyecharts的可视化展示工具

经过测试用pyecharts的可视化工具比直接用wordcloud工具要更加方便,因为wordcloud经常都会莫名奇妙的提示需要true-type的字体,这个真的是一个很bug的存在,而且pyecharts的交互体验感更好,花不多说,我们先导入相应的库:

import jieba, re
from collections import Counter
from pyecharts.charts import WordCloud
from pyecharts import options as opts

二、读取文本文件:

# 1. 读文本,需要提前准备一个txt,里面准备好相应的文本数据

text = open('article.txt', encoding='utf-8').read()

三、进行分词,将停用词进行过滤

1、停用词去掉的原因是因为有一些停用词对于文本的分析基本没有用,就是符号以及一些助词,因此要将这些干扰项去掉,可以去网上下载相应的停用词表,这我就直接使用(stopword.txt)。

2、调用jieba进行分词,将停用词进行过滤并统计每个词的词频。有了词频才能做后面的可视化的操作。选取了top200词频的词来进行可视化的展示,否则就太稀松了。

STOPWORDS = set(open('stopword.txt', encoding='utf-8').read().split())
words = [w for w in jieba.cut(text)if w.strip() and w not in STOPWORDS and re.fullmatch(r'[\u4e00-\u9fa5]+', w)]
top200 = Counter(words).most_common(200)

我们直观的看一下分词的结果和词频:

四、调用pyecharts来生成词云:会生成一个user_query_cloud.html的网页

还可以指定词云的形状:

- 'circle':圆形(默认形状),词云会围绕圆形轮廓分布。
- 'cardioid':心形(心脏线形状),词云呈心形轮廓。
- 'diamond':菱形,词云以菱形为轮廓分布。
- 'triangle-forward':正三角形(向前的三角形)。
- 'triangle':三角形(与 'triangle-forward' 类似,部分版本可能无差异)。
- 'star':星形,词云围绕星形轮廓排列。

wc = (WordCloud(init_opts=opts.InitOpts(width="800px", height="600px")).add(series_name="词频",data_pair=top200,word_size_range=[10, 100],shape="cardioid",textstyle_opts=opts.TextStyleOpts(font_family="Microsoft YaHei"),  # 显式指定中文字体).set_global_opts(title_opts=opts.TitleOpts(title="用户提问的词云"),tooltip_opts=opts.TooltipOpts(is_show=True, formatter="{b}: {c}"),)
)wc.render("user_query_cloud.html")

我们来看一下效果吧:

好了,到这整个小的数据分析项目就结束了,大家如果有任何疑问和需要讨论的地方,可以在下方留言哟~

http://www.lryc.cn/news/625153.html

相关文章:

  • 大厂求职 | 2026海尔校园招聘,启动!
  • Vuex 状态持久化企业级解决方案
  • ​Kali Linux 环境中的系统配置文件与用户配置文件大全
  • MongoDB 从入门到精通:安装配置与基础操作指令详解
  • 计算机组成原理(9) - 整数的乘除法运算
  • 抽象类和接口的区别
  • VLN视觉语言导航(3)——神经网络的构建和优化 2.3
  • qsort函数使用及其模拟实现
  • Android Cutout(屏幕挖孔)详解
  • SpringBoot--Spring MVC 拦截器注入与 new 的区别
  • gdb的load命令和传给opeocd的monitor flash write_image erase命令的区别
  • 优秀开发者的重要认知能力无法被AI替代
  • 在win10/11下Node.js安装配置教程
  • Ai Agent 项目
  • 项目延期的主要原因分析,以及应对策略
  • 摔倒检测数据集:1w+图像,yolo标注
  • 深度学习-计算机视觉-微调 Fine-tune
  • 【完整源码+数据集+部署教程】织物缺陷检测系统源码和数据集:改进yolo11-RevCol
  • STL库——string(类函数学习)
  • steal tsoding‘s pastebeam code as go server
  • CMake指令:查找文件(find_file)、查找目录(find_path)、查找库文件(find_library)
  • npm设置了镜像 pnpm还需要设置镜像吗
  • Esp32基础(③旋转编码器)
  • wait / notify、单例模式
  • 在openEuler系统中如何查看文件夹下每个文件的大小
  • AVB(Android Verified Boot)中vbmeta结构浅析
  • C/C++ 中 str、str、*str 在指针语境下的具体含义(以 char* str 为例):
  • Android输入框文字不垂直居中
  • Linux下的软件编程——IPC机制
  • Java发送企业微信通知