Python绘制词云图

目录

1.引言

2.准备工作

 3.导入数据

4.分词处理

5.统计各种词性的出现次数

6.筛选出词性为'n'的词语生成一个列表 

7.生成词云图

 8.全部代码

9.效果演示 

10.总结 

1.引言

词云图是一种可视化文本数据的方法,通过将文本中的词语按照出现频率进行排序,并将词语按照大小和颜色进行区分,使得我们能够快速地了解文本的主题和重点。在Python中,我们可以使用各种库来绘制词云图,其中最常用的库是wordcloudmatplotlib

2.准备工作

在开始绘制词云图之前,我们需要先安装相关的库。可以使用以下命令在终端中安装:

pip install wordcloud 

pip install  matplotlib

pip install  jieba

下载速度慢可以在后面加上-i https://pypi.tuna.tsinghua.edu.cn/simple 如下

 pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple 

 3.导入数据

利用pandas库导入利用八爪鱼爬取的数据

八爪鱼使用教程新手指引-八爪鱼帮助中心

也可以使用python爬取爬取豆瓣短评(以电锯惊魂为例)-CSDN博客

data = pd.read_excel(r'../数据/电锯惊魂 短评.xlsx')

4.分词处理

如果是中文文本数据,需要进行分词处理。可以使用jieba库进行分词。

data['分词'] = data['评论'].agg(lambda x: jieba.lcut(x))

data['词性标注'] = data['评论'].agg(lambda x: list(SnowNLP(x).tags))

5.统计各种词性的出现次数

list_tags = []
for i in data['词性标注']:
    for j in i:
        list_tags.append(j)

data_tags = pd.DataFrame(list_tags, columns=['词语', '词性'])

print(data_tags['词性'].value_counts())

6.筛选出词性为'n'的词语生成一个列表 

result = data_tags[data_tags['词性'] == 'n'].groupby(by='词语')['词语'].count().sort_values(ascending=False)

data_wordcloud_tags = [(i, str(j)) for i, j in zip(result.index, result.values)]

7.生成词云图

使用WordCloud类生成词云图。可以设置各种参数,如背景颜色、最大词汇数、最小字体大小等。

c = (
    WordCloud()
        .add(series_name="",
             data_pair=data_wordcloud_tags,
             word_size_range=[30, 100]
             )
        .set_global_opts(
        title_opts=opts.TitleOpts(
            title="电锯惊魂", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
)
c.render('电锯惊魂词云图.html')

series_name :定义了词云图中系列的名称。

data_pair :定义了词云图中所有词语及其大小。

word_size_range :定义了词语在词云图中的字体大小范围。

title_opts:设置图表的标题及其样式。

tooltip_opts :定义了当鼠标悬停在图表上的某个点时显示的工具提示的样式和内容。

 set_global_opts :设置图表的全局选项。

render:将图表渲染为HTML文件。

 8.全部代码

import pandas as pd
import jieba
from snownlp import SnowNLP
import pyecharts.options as opts
from pyecharts.charts import WordCloud

data = pd.read_excel(r'../数据/电锯惊魂 短评.xlsx')

data['分词'] = data['评论'].agg(lambda x: jieba.lcut(x))

data['词性标注'] = data['评论'].agg(lambda x: list(SnowNLP(x).tags))

list_tags = []
for i in data['词性标注']:
    for j in i:
        list_tags.append(j)

data_tags = pd.DataFrame(list_tags, columns=['词语', '词性'])

# print(data_tags['词性'].value_counts())

result = data_tags[data_tags['词性'] == 'n'].groupby(by='词语')['词语'].count().sort_values(ascending=False)

data_wordcloud_tags = [(i, str(j)) for i, j in zip(result.index, result.values)]

c = (
    WordCloud()
        .add(series_name="",
             data_pair=data_wordcloud_tags,
             word_size_range=[30, 100]
             )
        .set_global_opts(
        title_opts=opts.TitleOpts(
            title="电锯惊魂", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
)
c.render('电锯惊魂词云图.html')

9.效果演示 

10.总结 

通过以上步骤,我们使用了Python绘制出词云图。在绘制过程中,需要注意选择合适的文本数据和参数设置,以便得到更好的可视化效果。此外,还可以根据需要自定义词云图的样式和布局,使得词云图更加符合实际需求。在未来中,我们可以进一步探索词云图的应用场景和优化方法,提高数据可视化的效果和质量。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值