Pyecharts简单实战——文章词云(Pyecharts库+jieba库)

博主分享了如何使用jieba分词库和Pyecharts绘制政策文本的词云图。首先,通过jieba对文本进行分词并统计词频,然后使用Pyecharts的WordCloud图表进行数据可视化,最终得到一个展示政策主题的词云图。通过调整字号大小和颜色,优化了词云图的效果。
摘要由CSDN通过智能技术生成

        题主最近要做一个政策可视化的小项目参加学校的比赛。

        想做一个简介凝练可以传达文章主题的图表,于是自然地想到了词云图。

        词云图需要原料,就是词语和词频。为了解决这个原料需求,简单利用了jieba库。

        jieba库概述:

        jieba是优秀的中文分词第三方库

                 - 中文文本需要通过分词获得单个的词语
                 - jieba是优秀的中文分词第三方库,需要额外安装

        - jieba库提供三种分词模式,最简单只需掌握一个函数

        jieba分词的原理

        Jieba分词依靠中文词库

                 - 利用一个中文词库,确定汉字之间的关联概率
                 - 汉字间概率大的组成词组,形成分词结果

        - 除了分词,用户还可以添加自定义的词组

        由于我们只是需要词语、词频,所以对jieba库的应用是比较简单的。

        直接放代码:

import jieba

#变量名: items

txt = open("这里替换成自己的文本文档文件", "r", encoding='utf-8').read()
words = jieba.lcut(txt)  # 使用精确模式对文本进行分词
counts = {}  # 通过键值对的形式存储词语及其出现的次数

for word in words:
    if len(word) == 1:  # 单个词语不计算在内
        continue
    else:
        counts[word] = counts.get(word, 0) + 1  # 遍历所有词语,每出现一次其对应的值加 1

items = list(counts.items())  # 将键值对转换成列表
items.sort(key=lambda x: x[1], reverse=True)  # 根据词语出现的次数进行从大到小排序

        其中的items就可以直接作为Pyecharts的数据,即“data_pair”。

        数据的例子:需要list型数据,前面为词语,后面为词频。根据词频Pyecharts可以自动分配字号大小。

[
('健康', 252), 
('服务', 248), 
('人口', 245), 
('发展', 195), 
('建设', 142), 
('机构', 138),
('加强', 84),
]

        完成了词语、词频的准备,我们就可以开始进行绘图了。

import pyecharts.options as opts
from pyecharts.charts import WordCloud

wordcloudof=(
    WordCloud()
    .add(
        series_name="设置系列名",
        data_pair=items,            #数据来源
        word_size_range=[16, 66],    #字号大小范围设置
        textstyle_opts=opts.TextStyleOpts(
            color='#dcdada'
        )
    )
    .set_global_opts(     #全局设置项

        title_opts=opts.TitleOpts(
            title="", title_textstyle_opts=opts.TextStyleOpts(font_size=23),
            subtitle=''
        ),
        tooltip_opts=opts.TooltipOpts(is_show=False),
    )
    .set_series_opts(
        areastyle_opts=opts.AreaStyleOpts(opacity = 0)

    )
    .render("wordcloud.html")    #渲染成html页面
)

        以上就是绘出词云图的代码,参照Pyecharts官网的demo略加修改就可以达成目的了。

        效果大致如下:

        后续还可以通过编辑html页面达到进一步优化页面的目的。(小白水平有限,还不会用Python编辑网页,只能手改html文件了)

        第一次写博客,还望大佬轻喷。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值