没有合适的资源?快使用搜索试试~ 我知道了~
首页基于Python实现的微信好友数据分析
基于Python实现的微信好友数据分析
需积分: 48 23 下载量 20 浏览量
更新于2023-03-16
评论 5
收藏 1.86MB PDF 举报
这篇文章会基于 Python 对微信好友进行数据分析,这里选择的维度主要有:性别、头像、签名、位置,主要采用图表和词云两种形式来呈现结果,其中,对文本类信息会采用词频分析和情感分析两种方法。
资源详情
资源评论
资源推荐
2018/3/2 基于Python实现的微信好友数据分析 - CSDN博客
http://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/79386668 1/14
转载 2018年02月25日 00:00:00
107
基于Python实现的微信好友数据分析
本文转自微信公号5厘米的理想
作者 | 飞鸿踏雪
最近微信迎来了一次重要的更新,允许用户对”发现”页面进行定制。不知道从什么时候开始,微信朋友圈
变得越来越复杂,当越来越多的人选择”仅展示最近三天的朋友圈”,大概连微信官方都是一脸的无可奈
何。逐步泛化的好友关系,让微信从熟人社交逐渐过渡到陌生人社交,而朋友圈里亦真亦幻的状态更新,仿
佛在努力证明每一个个体的”有趣”。
有人选择在朋友圈里记录生活的点滴,有人选择在朋友圈里展示观点的异同,可归根到底,人们无时无刻不
在窥探着别人的生活,唯独怕别人过多地了解自己的生活。人性中交织着的光明与黑暗,像一只浑身长满刺
的刺猬,离得太远会感觉到寒冷,而靠得太近则害怕被刺扎到。朋友圈就像过年走亲戚,即便你心中有一万
个不痛快,总是不愿意撕破脸,或屏蔽对方,或不给对方看,或仅展示最后三天,于是通讯录里的联系人越
来越多,朋友圈越来越大,可再不会有能真正触动你内心的”小红点”出现,人类让一个产品变得越来越复
杂,然后说它无法满足人类的需求,这大概是一开始就始料不及的吧!
引言
有人说,人性远比计算机编程更复杂,因为即使是人类迄今为止最伟大的发明——计算机,在面对人类的自
然语言时同样会张惶失措 。人类有多少语言存在着模棱两可的含义,我认为语言是人类最大的误解,人类
时常喜欢揣测语言背后隐藏的含义,好像在沟通时表达清晰的含义会让人类没有面子,更不用说网络上流行
的猜测女朋友真实意图的案例。金庸先生的武侠小说《射雕英雄传》里,在信息闭塞的南宋时期,江湖上裘
等级:
访问量:
58.51万
积分:
9324
排名:
2387
他的最新文章 更多文章
首届“AIIA杯”人工智能巡回赛起航,5
大赛区邀你来战
MIT与商汤科技成立人工智能联盟
AI一分钟 | 阿里与南洋理工成立AI联合
研究院;传蔚来汽车拟赴美IPO,融资20
亿美元
70个NumPy分级练习:用Python一举搞定
机器学习矩阵运算
大福利!Google机器学习零基础在线课程
发布,免费!有中文版!
AI
76篇
人工智能
78篇
机器人
1篇
神经网络
1篇
机器学习
2篇
Python
1篇
2018年3月
5篇
2018年2月
89篇
AI科技大本营
原创
304
粉丝
810
喜欢
314
评论
445
文章分类
展开
文章存档
博客 学院 下载 GitChat 论坛
写博客
发Chat 登录 注册
住人集装箱
2018/3/2 基于Python实现的微信好友数据分析 - CSDN博客
http://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/79386668 2/14
千丈的一句鬼话,就搅得整个武林天翻地覆。其实,一两句话说清楚不好吗?黄药师、全真七子、江南六怪
间的种种纠葛,哪一场不是误会?一众儿武功震古烁今的武林高手,怎么没有丝毫的去伪存真的能力,语言
造成了多少误会。
可即便人类的语言复杂得像一本无字天书,可人类还是从这些语言中寻觅到蛛丝马迹。古人有文王”拘而演
周易”、东方朔测字卜卦,这种带有”迷信”色彩的原始崇拜,就如同今天人们迷信星座运势一般,都是人
类在上千年的演变中不断对经验进行总结和训练的结果。如此说起来,我们的人工智能未尝不是一种更加科
学化的”迷信”,因为数据和算法让我们在不断地相信,这一切都是真实地。生活在数字时代的我们,无疑
是悲哀的,一面努力地在别人面前隐藏真实地自己,一面不无遗憾地感慨自己无处遁逃,每一根数字神经都
紧紧地联系着你和我,你不能渴望任何一部数字设备具备真正的智能,可你生命里的每个瞬间,都在悄然间
被数据地折射出来。
今天这篇文章会基于 Python 对微信好友进行数据分析,这里选择的维度主要有:性别、头像、签名、位
置,主要采用图表和词云两种形式来呈现结果,其中,对文本类信息会采用词频分析和情感分析两种方法。
常言道:工欲善其事,必先利其器也。在正式开始这篇文章前,简单介绍下本文中使用到的第三方模块:
* itchat:微信网页版接口封装Python版本,在本文中用以获取微信好友信息。
* jieba:结巴分词的 Python 版本,在本文中用以对文本信息进行分词处理。
* matplotlib: Python 中图表绘制模块,在本文中用以绘制柱形图和饼图
* snownlp:一个 Python 中的中文分词模块,在本文中用以对文本信息进行情感判断。
* PIL: Python 中的图像处理模块,在本文中用以对图片进行处理。
* numpy: Python中 的数值计算模块,在本文中配合 wordcloud 模块使用。
* wordcloud: Python 中的词云模块,在本文中用以绘制词云图片。
* TencentYoutuyun :腾讯优图提供的 Python 版本 SDK ,在本文中用以识别人脸及提取图片标签信
息。
以上模块均可通过 pip 安装,关于各个模块使用的详细说明,请自行查阅各自文档。
数据分析
分析微信好友数据的前提是获得好友信息,通过使用 itchat 这个模块,这一切会变得非常简单,我们通
过下面两行代码就可以实现:
itchat.auto_login(hotReload = True)
friends = itchat.get_friends(update = True)
同平时登录网页版微信一样,我们使用手机扫描二维码就可以登录,这里返回的friends对象是一个集合,
第一个元素是当前用户。所以,在下面的数据分析流程中,我们始终取friends[1:]作为原始输入数据,集
合中的每一个元素都是一个字典结构,以我本人为例,可以注意到这里有Sex、City、Province、HeadImg
Url、Signature这四个字段,我们下面的分析就从这四个字段入手:
2018年1月
139篇
2017年12月
110篇
2017年11月
108篇
2017年10月
82篇
展开
他的热门文章
2017清华本科生特等奖得主出炉,AI学霸
乔明达获奖
21029
速成班出来的AI人才,老板到底要不要?
6位导师告诉你行业真相
17748
@那些想要转行AI的人:送你一份人工智
能入门指南
17516
AI战场,李彦宏马化腾马云都在频频刷
脸,周鸿祎和他的360在想啥呢?
15697
12928
连黄牛党都开始玩AI了,春节抢票不加钱
是回不去了
10713
1.75亿美元!吴恩达第三锤:宣布成立AI
基金AIFund
9669
苹果曝光无人车新进展,这名华人工程师
是主要贡献者
9658
从15000个Python开源项目中精选的Top3
0,Github平均star为3707,赶紧收藏!
8382
中国“神威”获超算排行榜四连冠,却遭
外媒质疑
8325
特斯拉首次正面回应在华建厂事宜!别高
兴太早,独资建厂的特斯拉给不了你白菜...
2018/3/2 基于Python实现的微信好友数据分析 - CSDN博客
http://blog.csdn.net/dqcfkyqdxym3f8rb0/article/details/79386668 3/14
好友性别
分析好友性别,我们首先要获得所有好友的性别信息,这里我们将每一个好友信息的Sex字段提取出来,然
后分别统计出Male、Female和Unkonw的数目,我们将这三个数值组装到一个列表中,即可使用matplotlib
模块绘制出饼图来,其代码实现如下:
def analyseSex(firends):
sexs = list(map(lambda x:x['Sex'],friends[1:]))
counts = list(map(lambda x:x[1],Counter(sexs).items()))
labels = ['Unknow','Male','Female']
colors = ['red','yellowgreen','lightskyblue']
plt.figure(figsize=(8,5), dpi=80)
plt.axes(aspect=1)
plt.pie(counts, #性别统计结果
labels=labels, #性别展示标签
colors=colors, #饼图区域配色
labeldistance = 1.1, #标签距离圆点距离
autopct = '%3.1f%%', #饼图区域文本格式
shadow = False, #饼图是否显示阴影
startangle = 90, #饼图起始角度
pctdistance = 0.6 #饼图区域文本距离圆点距离
)
plt.legend(loc='upper right',)
plt.title(u'%s的微信好友性别组成' % friends[0]['NickName'])
plt.show()
这里简单解释下这段代码,微信中性别字段的取值有Unkonw、Male和Female三种,其对应的数值分别为0、
1、2。通过Collection模块中的Counter()对这三种不同的取值进行统计,其items()方法返回的是一个元
组的集合,该元组的第一维元素表示键,即0、1、2,该元组的第二维元素表示数目,且该元组的集合是排
序过的,即其键按照0、1、2 的顺序排列,所以通过map()方法就可以得到这三种不同取值的数目,我们将
其传递给matplotlib绘制即可,这三种不同取值各自所占的百分比由matplotlib计算得出。下图是matplo
tlib绘制的好友性别分布图:
剩余13页未读,继续阅读
zpznba
- 粉丝: 85
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0