目录

  • 背景
  • 词云的定义
  • 词云的创建

背景

据社交媒体研究机构Shareablee统计的数据显示,近期社交媒体已经超过网络搜索,成为人们消遣和了解疫情的首要渠道。

作为数据分析小白,为了初探疫情下的媒体们在社交平台上的报道重心,我从Shareablee.com下载了从2020年1月至3月Facebook上媒体行业的po文记录,并做了一次简单的词云分析。想通过这样一个实际场景,带大家领略一下词云的有趣之处。

词云的定义

关键词云是对海量文字内容中出现频率较高的“关键词”的视觉突出。对新闻媒体行业而言,关键词字体越大,其被使用的频率越高,越能凸显当前的热点趋势。(示例图如下,摘自icode9.com)


从示例图中,我们不难看出被频繁使用的关键字能迅速内向读者传达人们所讨论的热点话题。

在接下来的实例中,我所用到的数据并非TXT文件,而是Excel文档中的其中一列,所以相较于常规的分词方法有所不同的是,我们需要遍历整个列来进行分词。我会在词云构建的流程中,对该部分进行详细的讲解。

词云的创建

词云构建流程图:

对文本进行分词 -- 噪声词过滤与关键词计数
获取待分析文件
创建词云
  1. 获取待分析文件

1.1 导入所需的包

import pandas as pd
import numpy as np
import warnings
from PIL import Image
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator  #创建词云用到的包
warnings.filterwarnings('ignore')

1.2 读取已下载好的文件
从shareablee.com下载的Excel文档共有10份,为了一次性读取并合并所有文件内容,我用了一个简单的for循环。

dataset_fb=pd.DataFrame()
for i in range(1,10):data=pd.read_excel('FBpublishing'+str(i)+'.xlsx')dataset_fb=dataset_fb.append(data)

1.3 查看已读取好的数据
我们所需要用到的数据仅仅为‘Content of Post’ 这一列。

dataset_fb[['Link to Post','Content of Post']].head(2)


1.4 将‘Content of Post' 这一列转换为list格式,便于后续的分词处理

fb_content=dataset_fb['Content of Post'].to_list()


2. 对文本进行分词
2.1 删除缺失值
从上述的运行结果中我们可以看到,有些博文是没有文字内容的(显示为nan),我们需要将这些博文记录删除。

dat = [word for word in fb_content if str(word) != 'nan']

2.2 进行分词处理与关键词计数
在遍历每条博文记录前,我们可以自行设定一个列表(此次例子中的list为remove_content),将一些无用的词汇从博文中去除。

dic = {} #建立一个空的字典来存储关键词![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406062407169.png)
remove_content=['in','so','they','our','for','can','with','from','his','was','new','her','but','one','what','out','their','who','will','have','your','we','as','the','to','a','the','and','of','is','this','on','that','this','these','are','at','i','it','be','has','be','an','all','by','just','about','not','my','she','he','if','do','or','you']
# fb_content
for i in range(0,len(dat)):speech = dat[i].lower().split() #将所有的词汇变成小写,避免大小写出现的漏词情况for word in speech:if word not in remove_content:if word not in dic:dic[word] = 1 #如果所出现的词汇不在字典里,频数记为1else:dic[word] = dic[word] + 1 #否则,改词的频数在原本的基础上+1Key_word=pd.DataFrame(zip(dic.values(),dic.keys())) #将字典的key与其所对应的值转换为两列
Key_word.columns=['Count','Words'] #为这两列取列名

2.3 查看关键词频数

Key_word.sort_values('Count',ascending=False)

  1. 创建词云

创建词云最有趣的地方是你可以选择不同的背景图,将你的关键词填充进去,让图片变得更加生动有趣。效果示例图如下:


而我所用到背景图如下:


接下来只需要下载好你所需要的背景图片,将图片中所需要出现的不同关键词的个数设定好,就能得到属于你自己的词云了。
3.1 创建词云

#image = Image.open('girl.png')  # 作为背景轮廓图
image = Image.open('thumb.png')  # 作为背景轮廓图
graph = np.array(image)
name = list(Key_word.Words)  # 词
value = list(Key_word.Count)  # 词的频率
dic = dict(zip(name, value))
wc = WordCloud(background_color="white", max_words=100, mask=graph, max_font_size=600, random_state=42)
wc.generate_from_frequencies(dic)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.axis("off")  # 不显示坐标轴
plt.show()
wc.to_file('词云.png') #将词云存储为png格式

3.2 词云效果图查看

python词云分析--媒体近期的讨论热点相关推荐

  1. 【小盐巴学习笔记】—美团吃饭哪家强?Python词云分析告诉你

    [小盐巴学习笔记]-美团吃饭哪家强?Python词云分析告诉你 效果图 前言 一.爬虫分析 1.分析网址 2.分析数据 二.完整代码 1.爬取美团牛排店评论 2.绘制词云图 3.词云分析 总结 效果图 ...

  2. Python 词云分析周杰伦新歌《说好不哭》

    周杰伦难得出新歌 ,最近终于推出了单曲<说好不哭>,然后直接把QQ音乐服务器干崩了,天王的实力可见一斑,QQ音乐还把这个当作 看我公众号头像就知道是杰伦粉了 ,高中的时候开始喜欢上了他的歌 ...

  3. python词云分析难吗_Python 词云分析周杰伦《晴天》

    听说,Python是可以这样跳动着前 面 满天星辰的夜晚,他们相遇了... 夏天的时候,她慢慢的接近他,关心他,为他付出一切: 秋天的时候,两个人终於如愿的在一起,分享一切快乐的时光但终究是快乐时光短 ...

  4. 《金瓶梅》怎么样,Python词云分析告诉您?

    <金瓶梅>书名是由小说三个女主人公潘金莲.李瓶儿.庞春梅各取一字合成的. <金瓶梅>,中国古代长篇白话世情小说,一般认为是中国第一部文人独立创作的章回体长篇小说.其成书时间约在 ...

  5. python词云分析---政府工作报告关键词

    首先安装jieba和wordcloud模块,我采用的是从清华镜像获取,pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxxx(xxxx ...

  6. Python文本分析实战:《跨越星弧》TapTap玩家评论内容词云分析

    许久之前写了一篇<Python网络爬虫实战>的博客,里面讲了爬虫的过程,但是没有讲如何分析.这次讲述一下用如何通过词云分析,来从这些文本数据里面获得结论 首先,回顾一下分析背景 主要是看了 ...

  7. jieba库词频统计_如何用python对《三国演义》、《红楼梦》等名著开展词云分析及字频统计、出场统计等工作。...

    以下以<红楼梦>为例进行设计. 在制作词云图及统计之前,需要下载python的几个库,wordcloud.jieba以及imageio等,我的操作系统为Windows10,IDE环境为id ...

  8. python词云代码手机_【云计算】爬取淘宝手机品牌词云分析(python)

    本文主要向大家介绍了[云计算]爬取淘宝手机品牌词云分析(python),通过具体的内容向大家展现,希望对大家学习云计算有所帮助. 淘宝手机信息的爬取,请看这边博客(点击这里),然后我们利用其中保存的文 ...

  9. python歌词分析_Python 词云分析周杰伦新歌《说好不哭》

    周杰伦难得出新歌 ,最近终于推出了单曲<说好不哭>,然后直接把QQ音乐服务器干崩了,天王的实力可见一斑,QQ音乐还把这个当作 今天过年 看我公众号头像就知道是杰伦粉了 ,高中的时候开始喜欢 ...

最新文章

  1. Spark入门教程(二)Spark2.2源码编译及安装配置
  2. AcWing 831. KMP字符串(模板)
  3. Qt 编码问题QTextCodec
  4. Nodejs开发框架Express3.0开发手记–从零开始
  5. 桌面显示计算机打开 磁盘不,电脑上的盘符打不开了怎么办
  6. 传智播客python2018_Python视频教程下载-2018传智播客Python视频教程下载-西西软件下载...
  7. 想从事 DBA 工作,该挑选哪一款数据库产品【转载+整理】
  8. 工作资讯001---行业思维模式及经典语录随时更新
  9. 电商垄断的形式不是对某一行业的具体垄断
  10. 谷歌开源 VR 应用
  11. 熔断与降级 搜索和学习 了解不深
  12. Java继承结构中类的初始化
  13. [转]linux下IPTABLES配置详解
  14. python爬取腾讯vip_用Python批量爬取付费vip数据,竟然如此简单
  15. 【复旦微】国产MCU学习(持续更新)
  16. 转调小程序(练口琴时用的)
  17. JS保留小数 去尾法 进一法 四舍五入法
  18. 杭电计算机研究生就业报告,实力杭电 | 留杭就业人数又双叒叕NO.1,快来围观杭电2018届毕业就业质量报告...
  19. MySQL入门系列:MySQL数据类型
  20. 虚幻AI蓝图基础笔记(万字整理)

热门文章

  1. 算法工程师0——算法工程师学习进阶路线
  2. 【Android,Kotlin,TFLite】移动设备集成深度学习轻模型TFlite(图像分类篇)
  3. 用Raphael在网页中画圆环进度条(简化版)
  4. UI交互设计学习心得《一》
  5. GRBL二:串口控制命令及代码解析(转载)
  6. 计算年龄的sql语句
  7. 【Linux 常用命令】
  8. FPGA实现的SPI协议(二)----基于SPI接口的FLASH芯片M25P16的使用
  9. C语言实现来实现字符串反转,只有单词顺序反转,组成单词的字母不反转
  10. python秒表项目_第一个Python小项目——秒表