基于Pyecharts的词云图实战

简介: 标题中的英文首字母大写比较规范,但在python实际使用中均为小写。本文的写作内容是将25000条评论当中的热词提取出来,并制作词云图开发环境是jupyter notebook,如果进行实践请使用与作者相同的开发环境。

标题中的英文首字母大写比较规范,但在python实际使用中均为小写。
本文的写作内容是将25000条评论当中的热词提取出来,并制作词云图
开发环境是jupyter notebook,如果进行实践请使用与作者相同的开发环境。

0.下载文件

25000条评论的源文件下载链接: https://pan.baidu.com/s/1MqN1qNgZKbVEE2lWumt_dg 密码: f57b
如下图所示,在桌面新建文件夹,文件夹命名:wordCloud

img_9ad0b5e45e2759989fdb5407e4125822.png
image.png

下载文件放到桌面的wordCloud文件夹中,如下图所示:
img_b8bbddc25e76320b81af79c2609016a6.png
image.png

资源管理器就是我们常用的 windows文件夹
保证资源管理器在桌面的wordCloud文件夹下,在资源管理器的路径下输入cmd并按Enter运行,如下图所示:
img_f2e1093e8833567bc0f505f549c01384.png
image.png

在cmd中输入命令并按Enter运行: jupyter notebook
img_968a5b887355c9eea5e8fb13f72d8218.png
image.png

浏览器自动打开jupyter notebook
新建一个文件,点击如下图所示位置:
img_f134a672d07b8bae14ab1ed429ffada3.png
image.png

在新打开的网页可以开始编程,如下图所示:
img_7c65b7732f15d15a846d4fd1cdfc0ab0.png
image.png

1.读取文件中的内容

引入pandas库,用pandas库中的read_csv方法读取文件,sep这个参数根据csv文件实际情况进行设置。
读取文件成功后,打印选出的前10个

import pandas as pd
df = pd.read_csv("labeledTrainData.csv",sep='\t', escapechar='\\')
df.head(10)

上面一段代码的运行结果如下:


img_ce6cde0a98e75b0c96744ae7af1052ab.png
image.png

2.获得评论列表

从上一幅图中可以看出评论在数据类型为DataFrame的df变量的review字段中,通过df['review']取出。df['review']是Series对象,Series对象有tolist方法,返回值的数据类型为列表list。df['review'].tolist()的返回值是每一条评论组成的列表list。
导入BeautifulSoup库,去除评论当中的标签。
利用了列表推导式,稍微有点难度,如果读者不擅长列表推导式,可以写成for循环形式。
文中的每一步编辑好代码之后需要在jupyter notebook中运行,这样可以保证每一步的独立正确性。

review_list = df['review'].tolist()
from bs4 import BeautifulSoup as bs
comment_list = [bs(k,'lxml').text for k in review_list]

3.去除标点并让所有字母小写

首先通过字符串的join方法,让一个列表转化为字符串,join方法前面的字符串表示列表中每个元素拼接成为一个字符串时的间隔符,例如如下图所示:

img_43afd9370da77fd1dcae795d0a34bee8.png
image.png

第1行代码 all_comment = ' '.join(comment_list)就表示以空格为间隔符拼接评论列表。
第2-5行是通过正则表达式去除标点符号。
第6行是让所有的字母小写。

all_comment = ' '.join(comment_list)
import re
pattern = r'[^\w\s]'
replace = ''
all_comment = re.sub(pattern,replace,all_comment)
all_comment = all_comment.lower()

4.词频统计

首先引入collection中的Counter方法,Counter方法需要填入1个参数,参数的数据类型为列表。Counter方法的返回值数据类型是一个collections.Counter对象,集成了字典dict的一些特性。

from collections import Counter
word_list = all_comment.split(' ')
wordCount_dict = Counter(word_list)

打印count_dict的内容,如下图所示:


img_c1ee2ca37165456c6f497ac6f181a4ae.png
image.png

5.删除词频统计中的停顿词

停顿词文本文件stopwords.txt下载链接: https://pan.baidu.com/s/1ThD7Ay9glzX8Wml9nSmTbA 密码: bfbu

with open("stopwords.txt") as file:
    stopword_list = [k.strip() for k in file.readlines()]
for stopword in stopword_list:
    if stopword in wordCount_dict:
        wordCount_dict.pop(stopword)
wordCount_dict.pop('')

6.取出出现次数排名前200的单词

用到了sorted方法和lambda匿名函数,相关内容读者自己搜索其基础知识。

choices_number = 200
count_list = sorted(wordCount_dict.items(), key=lambda x:x[1],reverse=True)
count_list = count_list[:choices_number]
keyword_list = [k[0] for k in count_list]
value_list = [k[1] for k in count_list]

7.利用pyecharts库绘图

首先要安装pyecharts库,安装命令:pip install pyecharts
wordcloud.add需要填入4个参数,第1个参数是标签,可以为空,第2个参数是出现的单词,第3个参数是单词对应的词频,第4个参数是词云上字体大小。

from pyecharts import WordCloud
wordcloud = WordCloud(width=800,height=500)
wordcloud.add('',keyword_list,value_list,word_size_range=[20,100])
wordcloud

8.绘画结果

img_66446b291d99c649c07534a4d496f8f7.png
image.png
目录
相关文章
|
传感器 监控
基于STM32的智能农业环境监测系统设计与实现
基于STM32的智能农业环境监测系统设计与实现
940 0
HH
|
物联网
阿里云物联网平台基于MQTT.fx完成OTA升级
物联网平台提供OTA升级与管理服务。下面介绍OTA升级消息的Topic和Alink数据格式,包括设备上报OTA模块版本、物联网平台推送升级包信息、设备上报升级进度和设备请求获取最新升级包信息。
HH
4390 0
阿里云物联网平台基于MQTT.fx完成OTA升级
|
2月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
519 0
|
6月前
|
供应链 项目管理 容器
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
在当今快速变化的商业环境中,对象管理组织(OMG)推出了三种强大的建模标准:BPMN(业务流程模型和符号)、CMMN(案例管理模型和符号)和DMN(决策模型和符号)。它们分别适用于结构化流程管理、动态案例处理和规则驱动的决策制定,并能相互协作,覆盖更广泛的业务场景。BPMN通过直观符号绘制固定流程;CMMN灵活管理不确定的案例;DMN以表格形式定义清晰的决策规则。三者结合可优化企业效率与灵活性。 [阅读更多](https://example.com/blog)
深入探索 BPMN、CMMN 和 DMN:从定义到应用的全方位解析
|
机器学习/深度学习 算法 搜索推荐
外卖平台推荐算法的优化与实践
外卖平台推荐算法的优化与实践
|
11月前
|
人工智能 前端开发 JavaScript
前端大模型入门(二):掌握langchain的核心Runnable接口
Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。
431 1
|
11月前
|
存储 前端开发 JavaScript
深入理解前端状态管理
【10月更文挑战第7天】深入理解前端状态管理
335 0
|
数据采集 自然语言处理 数据可视化
拿来及用的Python词云图代码 | wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今天,我们就来学习一下Python生成词云的常用库wordcloud。
|
Ubuntu Python
ubuntu安装python3.9
通过以上步骤,你可以在Ubuntu上成功安装Python 3.9。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
1274 1
|
Windows
win10搜索功能失效用不了如何解决|
win10搜索功能失效用不了如何解决|
228 0