基于itchat的个人情感分析
昝道广
概述
前言
思考
性别分析
好友签名情感分析
地区分布
爬虫技术分析
代码解析(部分)
后记
前言
本文以迅雷不及掩耳盗铃儿响叮当机立断章取义无反顾,雄姿英发,羽扇纶巾,谈笑间,墙橹灰飞烟灭......阐述了啊广的微信好友的生理状况、地理分布以及情感等阐幽显微之事。知其然而不知其所以然,好友列表中一个个栩栩如生的头像,有人物、有动物、植物头像,亦有一个个极大概率代表你个性的个性签名,今天带着你们透过现象看本质,从朋友圈中看出兄弟姐妹的塑料情意,给自己凤凰涅磐重生之认清自我之契机!
思考
考虑到以下问题,使用Python对朋友圈进行了深度剖析和扫荡,具体思考如下:
什么?!你不知道自己喜欢女生还是男生?(曾经一度思考过这个问题emmmm)
你想知道你的好友到底有多少正能量和负能量吗?
若干年后,去了一个陌生的城市,想知道你的哪个好朋友离你最近?(前提是微信上的地址是正确的,类似“阿拉伯联合酋长国”等类似字符集不正确的可以直接枪毙)
性别分析
首先通过itchat库获取好友的数据,分别统计出Male、Female、Unknow(竟然还有不知道自己性别的...)然后通过matplotlib模块绘制出饼状图,最后对朋友圈性别进行分析和总结。
用数据说话,用理论证明。这是一个惊天地泣鬼神的结果,惊叹于51.6%的朋友不知道自己性别,原谅我的无知。我们依然尊重事实,继续探究真相。自从于计算机专业就读,脑子中始终缠绕着“10:1”的男女高风险比例,抛去好友为Unknow第三性别的鬼,Female:Male 比例为37.6:10.8,我惊讶的发现我性取向还是正常的,竟然没有随着cs的专业特点而发生任何变质(为了表扬自己,决定明天多看看门外的风景线,俗称:妹子)。
综上所述:究其根源,性取向不会随着大学专业的变化而变化,亦不随着男女比例的变化而变化。
好友签名情感分析
我发现,每个人的微信个性签名和你的性格具有相关关系。即励志的朋友,常常“厚德载物”等类似励志话语、玩游戏的朋友为游戏相关个性签名、真性情的朋友为感性的个性签名...(大家不信的话,可以检验一下微信朋友的个性签名是否与他本人符合)
此章节通过自然语言处理情感分析库SnowNLP对好友的个性签名进行了分析。情感判断级别分为:负面消极、中性、正面积极。
上图为朋友圈个性签名的词云(字越大,出现频率越高)和情感分析结果。可知,854名好友中,正能量好友居上,中性好友居中,负能量好友居底。“近朱者赤近墨者黑”,通过精确数据可推断出啊广为一个正能量的童鞋。
综上所述:正能量广不禁感叹:初见倾心,再见痴心;终日费心,欲得芳心;煞费苦心,想得催心;难道你心,不懂我心! 我希望能够保持着我的那颗芳心,做着曾经不属于自己定义域但求合理的事情!
地区分布
秉着“能蹭一顿是一顿的”原则,分析了微信朋友圈的地区分布。
由上图可知,作者是土生土长的山东人,所以好友山东居多不足为奇。其次为北京、广东好友占上游,与鄙人拥有伪鸿鹄之志、骨子里立志去北上广深发展有着强耦合的关系。
综上所述:好友遍布全国各地,依然不能解除我在深夜里被孤独吵醒、被冰冷冷的寂寞吓醒的孤独寂寞冷。
爬虫技术分析
wordcloud:Python 中的词云模块,在本文中用以绘制词云图片。
itchat:微信网页版接口封装Python版本,在本文中用以获取微信好友信息。
jieba:结巴分词的 Python 版本,在本文中用以对文本信息进行分词处理。
matplotlib:Python 中图表绘制模块,在本文中用以绘制柱形图和饼图
snownlp:一个 Python 中的中文分词模块,在本文中用以对文本信息进行情感判断。
PIL:Python 中的图像处理模块,在本文中用以对图片进行处理。
numpy: Python中 的数值计算模块,在本文中配合 wordcloud 模块使用。
TencentYoutuyun:腾讯优图提供的 Python 版本 SDK ,在本文中用以识别人脸及提取图片标签信息。
代码解析(部分)
使用itchat模块加载微信好友信息
# itchat模块加载微信好友信息代码
itchat.auto_login(hotReload = True)
friends = itchat.get_friends(update = True)
好友性别代码
# 好友性别统计并绘图
def analyseSex(friends):
sexs = list(map(lambda x:x['Sex'],friends[1:]))
...
个性签名情感分析代码
# 个性签名情感分析
def analyseSignature(friends):
signatures = ''
emotions = []
...
由于篇幅原因,这就只展示部分代码,详情请查看源码请自行去github,或者点击阅读原文获取源码。
https://github.com/zandaoguang/wechat_emotion
后记
如果想要问我爬过自己朋友圈什么感觉?够后悔,不精彩。口误口误...,够精彩,不后悔!