用词云图解读“于欢案”

浏览: 2528

大邓爬下来的辱母杀人评论文本100.png

解读网民意见

今天接着上一期的于欢案爬虫,进行一下文本分析,制作出绚丽的词云图。

从上图中我们看出,网民评论中出现最多的几个词语有:

法律、警察、为什么、公正、作为、母亲、高利贷、希望、如果、国家、司法、公安、治国等等

对于于欢判决,网民觉得法院判决结果不合情合理,对此也反映在这幅图中的“法律”“公正”“司法”

网民对于于欢的境地,容易产生同理心,如果自己在那种情况下,向警察求救无果,怎么办,还有救吗?反映在图中的“警察”“高利贷”“母亲”“希望”等

更多解读我也读不出来,希望大家帮着我解读解读吧。

知识准备

首先我们先看一副词云图,有背景不同,词语有大小之分。背景图我们可以自己制作,最low的是去美图秀秀在线版制作,我是最low的,今天在美图上制作的这个模板。

这可是大邓的真迹,你们可以收藏起来!!

于欢.png

再一个就是词频率,词语出现的频率大,那么这个词在词云中就个头大。

那有个问题,我们制作词云图是为了将重要的有价值的信息可视化。并不是词语出现的频率大就有价值。有些情况下,句子中像‘的’、‘你’、‘他’、‘哦’等出现的也很多,但这些词所承载的信息量并不大。指直接用简单的词频制作的词云图是没有意义的。

这里我们就用到了TD-IDF

TD-IDF

TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

那么这里我们用到了jieba库

from jieba.analyse import extract_tags

#从txt文件中提取重要的关键词

tags = extract_tags(content, topK=100)

然后再遍历tags中每个词在txt文档中出现的次数,得出词语的词频。

代码

import jieba
import os
from jieba.analyse import extract_tags
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from scipy.misc import imread


def GeneratePicture(txtname = '大邓爬下来的辱母杀人评论文本', max_words=50, Picname = '于欢.png'):
path = os.getcwd()
txtfile = path + '/' + txtname + '.txt'
content = open(txtfile, 'r', encoding='utf-8').read() #评论内容
#根据tf-idf值找出文件中的关键词
tags = extract_tags(content, topK=max_words)
#分析得到关键词的词频
word_freq_dict = dict()
word_list = jieba.lcut(content)
for tag in tags:
freq = word_list.count(tag)
word_freq_dict[tag] = freq
#设置背景图片
if Picname:
background = path + '/' + Picname
back_coloring = imread(background)
font_file = path + '/' + '微软雅黑.ttf'
wc = WordCloud(font_path=font_file, #设置字体
background_color="black", #背景颜色
max_words= max_words,# 词云显示的最大词数
max_font_size=100, #字体最大值
mask = back_coloring, #背景图
random_state=42)
else:
font_file = path + '/' + '微软雅黑.ttf'
wc = WordCloud(font_path=font_file, # 设置字体
background_color="black", # 背景颜色
max_words=max_words, # 词云显示的最大词数
max_font_size=100, # 字体最大值
random_state=42)


wc.generate_from_frequencies(word_freq_dict)
plt.imshow(wc)
plt.axis("off")
plt.show() # 绘制词云
#保存图片
pic_file = path + '/' + txtname + '%d.png'%max_words
wc.to_file(pic_file)

运行

#50个最重要的关键词效果

GeneratePicture(txtname = '大邓爬下来的辱母杀人评论文本',max_words=50,Picname = '于欢.png')

有背景50.png

#100个最重要的关键词效果

GeneratePicture(txtname = '大邓爬下来的辱母杀人评论文本',max_words=100,Picname = '于欢.png')

有背景100.png

#无背景图,100个最重要的关键词效果

GeneratePicture(txtname = '大邓爬下来的辱母杀人评论文本',max_words=100,Picname = None)

无背景图.png

更多内容

大数据

大数据时代,你如何成为弄潮儿

爬虫

【视频】于欢案之网民的意见(1)?

【视频】有了selenium,小白也可以自豪的说:“去TMD的抓包、cookie”

【视频】快来get新技能--抓包+cookie,爬微博不再是梦

【视频教程】用python批量抓取简书用户信息

爬豆瓣电影名的小案例(附视频操作)

爬豆瓣电影名的小案例2(附视频操作)

python代理爬虫抓豆瓣电影数据(一)

python代理爬虫抓豆瓣电影数据(二)

用Python抓取百度地图里的店名,地址和联系方式

Python大法好:贴吧爬虫大法

文本分析

python居然有情感??真的吗??

基于共现发现人物关系的python实现

用python计算两文档相似度

神奇的python

怜香惜玉,我用python帮助办公室文秘

逆天的量化交易分析库-tushare

开扒皮自己微信的秘密

8行代码实现微信聊天机器人

使用Python登录QQ邮箱发送QQ邮件

关注公众号:大邓带你玩python

回复“于欢”即可得到词云图项目文件及源代码

推荐 4
本文由 邓旭东HIT 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

很可以的
关注了,属于政治话题

要回复文章请先登录注册