脚本之家
你与百万开发者在一起
程序猿的那些事、红包送书等活动等着你
源| python爬虫人工智能大数据
环境:windows
技术:itchat、pandas、matplotlib、结巴分词,面向对象写法
先看下方大屏幕,对微信好友个性签名进行词语提取,并做成五角星状的词云形状
对微信好友性别地区进行分析,男朋友近600,女朋友300,还有一些未知生物存在,不小心暴露了小编的性取向,好友分布主要集中于广东和河南,可以猜下小编是哪里人
废话不多说,直接上代码
1、创建一个类,并初始化方法获取朋友信息
self.friends:数据结构列表包含字典,每个字典代表每个好友姓名、地区、签名等信息[{},{},{}]
plt.rcParams用来处理绘图显示中文问题
2、提取名字,性别,省份,城市,签名信息,并保存到新列表
3、pandas将朋友信息列表转成dataframe,并保存为csv方便查看
4、pandas的value_counts()方法可以统计每种性别和每个省份出现的次数,并由大到小排序
这里我们提取省份前15个,并转成dataframe结构
由于有些省份没有填写,为空,通过遍历,将空的省份替换成“未知”
5、绘图,参数说明+绘图方法
6、对获取到的签名数据结巴分词,提取词语
同时因为签名中很多没有意义的词,比如下图的" 的 < > ! "等特殊字符等等 ,我加载了一份我自己做的停用词,做了简单的过滤,踢出这些词语(当然如果仍有一些没踢出的话,停用词词典可以自己进行扩充)
部分停用词截图
获取词语列表后,利用python标准库中的counter方法进行列表中词汇的词频统计,得出每个词汇的词频数据,一共139个词语
7、将词语列表和词频列表传入词云方法,并进行展示
-END-
转载声明:本文转载自「python爬虫人工智能大数据」,搜索「pylearn」即可关注。
领取专属 10元无门槛券
私享最新 技术干货