如何使用WordCloud类画词云

文章目录

一、什么是词云(wordcloud)?

二、词云主要有什么用呢?

三、使用步骤

1.导入所需用到的库

2.读取数据 

3.进行数据处理

4.使用snownlp库把它的词性标注出来

5.然后把词性一列所有列表拼接到一个列表中,方便后续分析,然后把列表转换成表格对象

6.选取想要画图的关键词性

7.画图

总结


前言

对于学习了三个月的数据可视化的新手小白来说,第一次写博客,有写的不对的地方,还请多多指教。数据可视化是指将数据通过图表的方式传递出来,让用户能够快速、准确地理解所要表达的信息,从而提高沟通效率。

1、官网文档

包含pyecharts中各个功能和图形的介绍和代码参数解析。

pyecharts - A Python Echarts Plotting Library built with love.

2、社区

包含各种图形demo的项目案例代码和演示。

Document

一、什么是词云(wordcloud)?

词云(Word Cloud)又称文字云,是文本数据的视觉表示,由词汇组成类似云的彩色图形,用于展示大量文本数据,每个词的重要性以字体大小或颜色显示。

二、词云主要有什么用呢?

词云(wordcloud)主要用来做文本内容关键词出现的频率分析,能够让人一眼看出一个事物的主要特征,越明显的特征越要突出显示,wordcloud需要进行的配置并不复杂,适合新手小白上手。

三、使用步骤

1.导入所需用到的库

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

在绘制词云图的过程中,需将一个长文本拆分成多个词汇以及统计每个词汇出现的频次这两个步骤。第一个步骤叫做“分词”所要用到的库叫分词库;第二个步骤即词汇统计,是数据分析的内容,用pandas库实现。在python有很多分词库,我下载的是最常见的两个分词库:snownlp、jieba;下载方法如下:

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

除了这两个库以外,还有一个我们最熟悉的pyecharts库啦

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

2.读取数据 

导入excel表格,存储到data中

data = pd.read_excel(r'深海 短评.xlsx')
data

 运行结果

3.进行数据处理

(1)使用jieba库把文本评论拆分成词语提取出来,然后打印到data中

代码如下:

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

结果如下:

4.使用snownlp库把词性用字母标注出来,方便后面引用

代码如下:

def heat_count(name,series):
    count = 0
    for i in series:
        for j in i:
            if j==name:
                count+=1
    return count
data['词性标注'] = data['评论'].agg(lambda x:list(SnowNLP(x).tags))
data

结果如下(标注内容所示)

5.把词性拼接到列表中,然后把列表对象转换成表格对象,以便后续观察并分析

代码如下:

# 把词性一列中所有列表的数据对拼接到一个列表中,方便后续分析
list_tags = []
for i in data['词性标注']:
    for j in i:
        list_tags.append(j)
list_tags
# 转换成表格对象
data_tags = pd.DataFrame(list_tags,columns=['词语','词性'])
data_tags

结果如下:

6.选取画图的关键词性

以下画图的关键词性我选取的是形容词(n),也可以选取其他词性来进行画图

统计形容词出现的频次,然后将形容词一列和出现频次一列转换成二维列表

代码如下:

# 统计每一个词性出现的次数
data_tags['词性'].value_counts()
# 统计形容词的出现频次
result = data_tags[data_tags['词性']=='n'].groupby(by='词语')['词语'].count().sort_values(ascending=False)#[:20]
# 将形容词一列和出现频次一列转换成二维列表
# 注意:频次的数字需要转换成字符
data_wordcloud_tags = [(i,str(j)) for i,j in zip(result.index,result.values)]
data_wordcloud_tags

结果如下:

7.画图

前面,我们已经把数据处理完了,接下来就是画图了,我们先找一张白底黑色的图片放到跟所写代码同一路径下。 

以下是全部代码:

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))
def heat_count(name,series):
    count = 0
    for i in series:
        for j in i:
            if j==name:
                count+=1
    return count
data['词性标注'] = data['评论'].agg(lambda x:list(SnowNLP(x).tags))
list_tags = []
for i in data['词性标注']:
    for j in i:
        list_tags.append(j)
list_tags
data_tags = pd.DataFrame(list_tags,columns=['词语','词性'])
data_tags['词性'].value_counts()
result = data_tags[data_tags['词性']=='n'].groupby(by='词语')['词语'].count().sort_values(ascending=False)#[:20]
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=[15, 60],
         mask_image = "爱心.png",
        #shape = 'triangle',
         textstyle_opts = opts.TextStyleOpts(font_family="仿宋")
        )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="深海的评论", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
        visualmap_opts= opts.VisualMapOpts(max_=2)
    )
)
c.render_notebook()

 结果如下:

总结

以上内容就是使用词云(wordcloud)画图的过程啦,在画图的过程中,有两个需要注意的地方,一是频次的数字需要转换成字符,另一个就是所选取的图片是白底黑色的,不然画不出来,这就是我在学习词云画图过程中的总结了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值