首页 技术 正文
技术 2022年11月22日
0 收藏 873 点赞 3,856 浏览 2062 个字

人生最难的事是自我认知,用Python爬取朋友圈数据,让我们重新审视自己,审视我们周围的圈子。

文:朱元禄(@数据分析-jacky)

哲学的两大问题:1、我是谁?2、我们从哪里来?

本文 jacky试图用Python,数据化、聚类化我们的人格标签,试图回答”我是谁?”这个哲学问题。

(一)确定数据源

自我认知,很难,必须它证。

物以类聚,人以群分。每个人的社交圈,家庭圈,朋友圈的属性,基本我们人格的特征属性。我们所处的阶级,在别人眼中的印象,在我们的朋友圈中都会得到印证。

朋友圈数据中最具人格属性的因素是个性签名,那么下面我们就把所有好友的个性签名作为我们的研究对象,以此出发爬取数据。

(二) 使用Python的itchat 包对好友的个性签名数据进行分析

这里我们用到Python一个比较冷门的库——itchat,它很好的兼容了wechat个人账号的API接口,让我们能更加便捷的爬取wechat数据,itchat的功能很强大,这里我们仅用它爬取wechat中我们每个好友的个性签名。

之后,我们要分析出自定义词云图中个性签名使用的高频词语是什么。

最后,生成可视化词云图,直观的给出洞察结果。

源代码如下:

# coding:utf-8
import itchat
import re
itchat.login()
friends = itchat.get_friends(update=True)[0:]
tList = []
for i in friends:
signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")
rep = re.compile("1f\d.+")
signature = rep.sub("", signature)
tList.append(signature)
# 拼接字符串
text = "".join(tList)
# jieba分词
import jieba
wordlist_jieba = jieba.cut(text, cut_all=True)
wl_space_split = " ".join(wordlist_jieba)
# wordcloud词云
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator
import os import numpy as np
import PIL.Image as Image
d= os.path.dirname(os.path.abspath( __file__ ))
alice_coloring = np.array(Image.open(os.path.join(d, "wechat.jpg")))
my_wordcloud = WordCloud(background_color="white", max_words=2000,mask=alice_coloring,max_font_size=400, random_state=420,font_path='/Users/sebastian/Library/Fonts/Arial Unicode.ttf').generate(wl_space_split)
image_colors = ImageColorGenerator(alice_coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

下面对于代码的解析,仅跟初学 Python的朋友提示三点:

1)代码第24行,其他网络版本的代码为d= os.path.dirname(__file__),最好换成jacky这个版本的:

d=os.path.dirname(os.path.abspath(__file__)),具体原因jacky就不做过多解释了;

2)代码第25行,一定要提前在环境路径下创建wechat.jpg的图片,这样云图才能顺利生成,并生成你希望的形状。

3)提前在终端安装jieba,matplotlib,wordcloud,numpy包

注意以上三点,想不运行成功都难。

运行上面的代码,得到下面的云图:

(三)数据洞察

以jacky的朋友圈为例,在云图中,我们可以看见,高频词有:自己,创始人,电商,成功,努力,营销,互联网,数据,梦想,生活,咨询,我们,未来。

其实,这些词jacky还可以继续用机器学习算法搞一下,但到这就浅尝则止吧。

从这些具体的信息中,可以抽象出我的个人人格标签,具体解析:

自己,我们:说明我很自我,很自大,很自以为是;

努力,未来,梦想:说明我想通过努力来实现自己的价值;

创始人:说明我的社交圈还OK;

互联网,数据:说明我的能力属性;

营销,咨询:说明了我赖以生存的饭碗;

代理:这… … 不好说了… …

End

转载请注明出处

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,992
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844