python朋友圈点赞统计_Python数据分析实战案例:统计分析微信朋友圈数据(附实操视频)...

原标题:Python数据分析实战案例:统计分析微信朋友圈数据(附实操视频)

本文内容将通过一个具体实例讲解将朋友圈数据导出为JSON文件的方法,并介绍使用Python统计分析JSON数据的过程。

注:本文中涉及的实例文件为《Python数据分析从入门到精通》随书资源文件

0

1

将朋友圈数据导出到JSON 文件

使用开源工具WeChatMomentExport导出微信朋友圈数据,WeChatMomentExport的源码地址和使用教程请参考https://github.com/Chion82/WeChatMomentExport

如图1所示。

图1.使用WeChatMomentExport 导出数据

使用WeChatMomentExport可导出如下所示的分类信息,每一个分类信息都保存到对应的JSON文件中。

发朋友圈数量排名。

朋友圈点赞数排名。

被点赞数排名。

发评论数量排名。

朋友圈收到评论数量排名。

被无视概率排名(评论被回复数/写评论数,条件为 写评论数>=15)。

发投票/问卷调查类广告数排名。

0

2

统计处理JSON 文件中的朋友圈数据?

使用WeChatMomentExport导出数据后,接着使用Python统计分析朋友圈的各类信息。实例文件wechat_moment_stat.py的功能是分别统计处理7个JSON文件中的数据,然后输出显示统计结果。文件wechat_moment_stat.py的具体实现流程如下所示。

通过函数get_user获取每个朋友圈用户的详细信息,具体实现代码如下所示。

def get_user(user_name):

foruser_info in result:

ifuser_info['user'] == user_name:

returnuser_info

user_info= {

'user': user_name,

'moments': [],

'post_comments': [],

'replied_comments': [],

'received_comments': [],

'post_likes': 0,

'received_likes': 0,

'spam_counts': 0,

}

result.append(user_info)

returnuser_info

编写函数is_spam提取朋友圈留言中的信息,具体实现代码如下所示。

def is_spam(moment_text):

if (' 投' in moment_text and ' 谢' in moment_text):

returnTrue

if (' 投票' in moment_text):

returnTrue

if (' 问卷' in moment_text):

returnTrue

if (' 填' in moment_text and ' 谢' in moment_text):

returnTrue

returnFalse

编写函数handle_moment处理留言信息,具体实现代码如下所示。

defhandle_moment(moment):

user_info= get_user(moment['author'])

user_info['moments'].append(moment)

user_info['received_likes']= user_info['received_likes'] + len(moment

['likes'])

user_info['received_comments'].extend(moment['comments'])

if(is_spam(moment['content'])):

user_info['spam_counts']= user_info['spam_counts'] + 1

forcomment_info in moment['comments']:

comment_user= get_user(comment_info['author'])

comment_user['post_comments'].append(comment_info)

if(comment_info['to_user'] != ''):

replied_user= get_user(comment_info['to_user'])

replied_user['replied_comments'].append(comment_info)

forlike_info in moment['likes']:

like_user= get_user(like_info)

like_user['post_likes']= like_user['post_likes'] + 1

排序处理7类信息,具体实现代码如下所示。

for moment_info in origin_data:

handle_moment(moment_info)

f = open('user_output.json', 'w')

f.write(json.dumps(result))

f.close

post_moment_rank = sorted(result, key=lambdauser_info: len(user_info

['moments']), reverse=True)

post_like_rank = sorted(result, key=lambda user_info:user_info['post_

likes'], reverse= True)

received_like_rank = sorted(result, key=lambdauser_info: user_info

['received_likes'], reverse=True)

post_comment_rank = sorted(result, key=lambdauser_info: len(user_info

['post_comments']), reverse=True)

received_comment_rank = sorted(result, key=lambdauser_info: len(user_info

['received_ comments']), reverse=True)

no_reply_rank = sorted(result, key=lambdauser_info: ((float(len(user_

info['replied_comments']))/len(user_info['post_comments'])) if len(user_info

['post_comments'])>0 else 999))

spam_rank = sorted(result, key=lambda user_info:user_info['spam_counts'],

reverse=True)

f = open('post_moment_rank.json', 'w')

f.write(json.dumps(post_moment_rank))

f.close

打印输出发送朋友圈信息最多的前5位数据,具体实现代码如下所示。

print(' 前5 位点赞数量最多:')

temp_list = []

for i in range(5):

temp_list.append(post_like_rank[i]['user']+ '(%d 赞)' % post_like_

rank[i]['post_likes'])

print(', '.join(temp_list))

f = open('received_like_rank.json', 'w')

f.write(json.dumps(received_like_rank))

f.close

打印输出前5位获得最多赞的用户信息,具体实现代码如下所示。

print(' 前5 位获得最多赞:')

temp_list = []

for i in range(5):

temp_list.append(received_like_rank[i]['user']+ '(%d 赞)' % received_

like_rank[i] ['received_likes'])

print(', '.join(temp_list))

f = open('post_comment_rank.json', 'w')

f.write(json.dumps(post_comment_rank))

f.close

打印输出前5位评论数量最多的用户信息,具体实现代码如下所示。

print(' 前5 位评论数量最多:')

temp_list = []

for i in range(5):

temp_list.append(post_comment_rank[i]['user']+ '(%d 评论)' % len(post_

comment_rank[i]['post_comments']))

print(', '.join(temp_list))

f = open('received_comment_rank.json', 'w')

f.write(json.dumps(received_comment_rank))

f.close

打印输出前5位朋友圈评论最多的用户信息,具体实现代码如下所示。

print(' 前5 位朋友圈评论最多:')

temp_list = []

for i in range(5):

temp_list.append(received_comment_rank[i]['user']+ '(%d 评论)' % len

(post_comment_rank[i]['received_comments']))

print(', '.join(temp_list))

f = open('no_reply_rank.json', 'w')

f.write(json.dumps(no_reply_rank))

f.close

f = open('spam_rank.json', 'w')

f.write(json.dumps(spam_rank))

f.close

打印输出收到评论回复数/写评论数前5名且发出评论数>=15用户的信息,具体实现代码如下所示。

print('================================')

print(' 前5 名(收到评论回复数/ 写评论数且发出评论数>=15 ):')

temp_list = []

for user_info in no_reply_rank:

iflen(user_info['post_comments']) < 15:

continue

if (len(temp_list) > 5):

break

temp_list.append(user_info['user']+ ('( 收到评论回复%d, 写评论%d)' % (len

(user_info['replied_comments']), len(user_info['post_comments']))))

print(', '.join(temp_list))

执行后打印输出朋友圈的统计结果如下所示。

前5 位发最多朋友圈:

Joe (69 条), xxx (62 条), 嬴子夜。(58 条), xxx(46 条), psh(40 条)

前5 位点赞数量最多:

Saruman(33 赞), xxx (28 赞),ChiaChia.Ý(27 赞), ❄ ️Max ❄ (27 赞), 郭含阳(23 赞)

前5 位获得最多赞:

陈思君(38 赞), 404(32 赞), (29 赞), Justin Tan(27 赞), 杨宗炜(26 赞)

前5 位评论数量最多:

杨宗炜(110 评论), 404(95 评论), Saruman(94 评论), MATTHEW °Д°(77 评论), Joe (57 评论)

前5 位朋友圈评论最多:

杨宗炜(209 评论), 404(130 评论), Joe (37 评论), MATTHEW °Д°(68 评论), ❄ ️Max❄ (69 评论)

================================

收到评论回复数/ 写评论数且发出评论数>=15 :

Joe ( 收到评论回复13, 写评论57), jjy( 收到评论回复4, 写评论16), Saruman( 收到评论回复30, 写评论94), 玺玺玺( 收到评论回复7, 写评论21), ChiaChia.Ý( 收到评论回复6, 写评论15), 郭含阳( 收到评论回复14, 写评论33)

毫无疑问,Python 是当下最火的编程语言之一。对于许多未曾涉足计算机编程领域 的「小白」来说,深入地掌握 Python 看似是一件十分困难的事。其实,只要掌握科学的学习方法并制定合理的学习计划再加上坚持不懈的努力,你就可以通过学习Python,走进编程的殿堂。

那么,作为 「小白」,在刚刚接触Python数据分析的时候,需要注意什么,需要从哪些知识学起呢?为了帮助大家更好地解决这些问题我们将面向广大Python学习者开放一个全新的视频直播课程——Python开发从入门到精通系列课程。

本课程分为三讲:包含基础知识、Web开发、数据分析三大板块。

本周四(7月16日)

20:00—21:00

本系列课程的第二讲

《小白如何学习Python数据分析》

将从就业前景、应用领域、数据存储方式、数据可视化、实例演示等几方面入手,帮助读者快速找到Python数据分析学习方法。

从你开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经历实习生、程序员、软件工程师、架构师、CTO等职位的磨砺;当你站在职位顶峰的位置蓦然回首,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码、寻找并解决Bug、不停测试程序和修改项目的经历;不可否认的是,只要你在自己的程序开发生涯中稳扎稳打,并且善于总结和学习,最终将会得到应用的收获。

本节课程聚焦当下热门编程语言Python,从就业前景、应用领域、数据存储方式、数据可视化、实例演示几方面入手,帮助读者找到Python数据分析学习路径。

开放时间:2020年7月16日20:00

主讲老师:管西京

机械工业出版社天猫旗舰店

管西京

管西京,山东大学计算机硕士,精通Python、Java、C#、C语言、C++等主流编程语言,擅长底层技术和应用程序的结合运用,具有丰富的Python数据分析、运维自动化和云计算开发经验。现就职于浪潮信息研发中心,负责浪潮云的开发和维护工作。

相关著作:

★小白如何学习Python数据分析

1) Python数据分析相关人才的 就业前景

2) Python数据分析技能应用领域

3) 数据存储方式

4) 数据可视化

5) 实例演示

“Python”注意,一定要发送“Python”

点击图片可进入直播回看链接文章返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 毕业设计项目基于python实现的微信朋友圈情感分析系统源码+部署说明+代码注释.zip 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果有一点儿基础,亦可在此代码基础上进行修改,以实现其他功能。 一、相关配置和使用流程 python环境安装: https://www.runoob.com/python/python-install.html java环境安装: https://www.runoob.com/java/java-environment-setup.html Appium+Android SDK安装: https://www.cnblogs.com/soundcode/p/12682366.html 相关python软件包: ``` jieba pytorch Appium-Python-Client pandas numpy ``` ``` 安装命令:pip install 包名 ``` 程序运行流程:首先用USB连接手机,打开手机的开发者模式,并打开USB调试,之后再打开Appium,最后运行main.py文件即可 2、项目实现步骤 # 1、情感分析模型 由于微信的限制,无法爬取他人朋友圈内容,故本项目中模型训练使用的数据集来自公开数据集 模型基于 self-attention + cnn 实现 2、微信朋友圈内容的获取 主要基于python 中的 Appium-Python-Client库,自动化作手机中的app来获取自己朋友圈的内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值