美文网首页Python学习快车
用着短短的30行代码,带你一起去看朋友们的人生态度!

用着短短的30行代码,带你一起去看朋友们的人生态度!

作者: 松珏 | 来源:发表于2019-01-07 20:34 被阅读0次

微信是现在人们生活中不可或缺的一部分,通过微信的朋友圈,你能看到朋友们的生活动态,能看到他们激励自己或朋友的签名,你能看许许多多的正能量。

今天就用 Python 把你微信朋友的签名收集起来做成词云。从签名大致能看出一个人的人生态度,今天就来看看你的微信朋友态度。

项目环境

语言环境:Python 3.6

工具:Pycharm

如果大家在学习Python的路上,或者打算学习Python需要学习资料,可以加群571799375,群里学习资料免费赠送给大家!

导包

itchat:用来收集微信相关信息。

jieba:是一个强大的分词库,完美支持中文分词。

matplotlib:Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

wordcloud:Python 中的一个小词云生成器,支持 Python 2.7、3.4、3.5、3.6、3.7版本。

importitchatimportreimportjiebaimportmatplotlib.pyplotaspltfromwordcloudimportWordCloudfromwordcloudimportImageColorGeneratorimportnumpyasnpimportPIL.ImageasImage

获取签名信息

用 itchat 库登录微信后用 get_friends 方法获取微信朋友全部信息,信息包括:昵称、备注名、性别、地区、个性签名等等。

之前分享的一篇文章讲的是把微信朋友进行性别统计做成柱形图,只需把需要的信息从全部信息中剥离出来。个性签名用的是 Signature 字段,剥离出来后,有很多我们不需要的字符,比如表情标签、空格、无用字符等。处理掉无用的字符生成我们需要的签名信息。

signlist = []itchat.auto_login()#登录微信friends = itchat.get_friends(update=True)[0:]foriinfriends: signature = i['Signature'].strip().replace('span','').replace('class','').replace('emoji','').replace('\n','').replace('\"','')#去除无用字符rep = re.compile("1f\d+\w*|[<>/=]") signature = rep.sub('',signature) signlist.append(signature)text="".join(signlist)

分词

我们对上面处理后的签名信息用 jieba 库进行分词,把一句话尽可能多的拆分成若干中文词或者词语。

#分词cut = jieba.cut(text,cut_all=True)word =",".join(cut)print(word)

比如我的签名是「努力成为最好的自己」,拆分后:「努力,成为,最好,的,自己」。

绘制词云

把上面所有的中文分词进行处理,做成词云,自选一张词云图片,可以选一张背景为纯色的图片,这样的词云就会显示为图片中的轮廓。定义词云的各种属性,包括背景颜色、最大单词数、画布图片、最大字体数、字体路径、画布比例等属性。其中字体路径是电脑自带的,我的是在 C:\Windows\Font 目录下,里面有常见的字体,你的词云是中文的话就选择任意一类中文字体就好。

然后用 smatplotlib 库把图的颜色、分词内容写人并显示出来。

coloring= np.array(Image.open("F:\\photo.jpg"))# 电脑中自定义词云的图片my_wordcloud= WordCloud(background_color="white",max_words=2000,mask=coloring,max_font_size=70,random_state=48,font_path='./font/msyh.ttf',scale=2).generate(word)# 定义词云背景图颜色、尺寸、字体大小、电脑中字体选择,random_state 为每个单词返回一个PIL颜色,字体路径,画布比例image_colors= ImageColorGenerator(coloring)plt.imshow(my_wordcloud.recolor(color_func=image_colors))# 绘图颜色plt.imshow(my_wordcloud)# 绘图内容plt.axis("off")plt.show()# 显示图片

最后,需要的话你也可以把词云图保存下来。保存到你的 project 的当前目录。

d = path.dirname(__file__)# project 当前目录my_wordcloud.to_file(path.join(d,'cloud.png'))

运行结果

这样就完成了微信朋友的签名的词云,看来我的朋友还都蛮正能量的。赶紧自己动手试试,发到朋友圈装装 B,快活一下,需要源码的加群571799375自取喔!

本文来自网络,如有侵权,请联系小编删除!

相关文章

  • 用着短短的30行代码,带你一起去看朋友们的人生态度!

    微信是现在人们生活中不可或缺的一部分,通过微信的朋友圈,你能看到朋友们的生活动态,能看到他们激励自己或朋友的签名,...

  • 2013美国凯迪克大奖银奖《Green 绿色》:带孩子认识万千的

    各位妈妈和小朋友们 每天这个时刻 我们又见面了 快乐流利说英语 带你一起读绘本听故事 美妙的夜晚 带你去看看世界上...

  • 想带你去看海

    想带你去看海 去看那 无边无际 去看那 一片蔚蓝 去看潮起又潮落 你和我 一起海边浪漫 我想带你 一起 去看海 想...

  • 我想与你一起

    我想带你去看名山大川 我想带你去看辽阔草原 我想带你去看戈壁荒漠 我想带你去看大海无边 我想和你一起看花怎么开 我...

  • 带你一起去看海

    是不是每一片沙滩,都掩埋着一个爱情故事。 是不是每一朵浪花,都激荡着一丝浪漫味道。 是不是你爱我,就会和我一起来海...

  • 带你一起去看风景

    “敬这世界大,时间多,我想与你一起打量这落寞的人间。” 昨天半夜阿歆和F先生吵架了。一气之下她便坐了连夜的大巴车准...

  • 带你一起去看海

    北方的冷 总是带着犹豫的寒 窝在屋里想起你 我的小梅沙 黄金海岸 维多利亚湾 最喜欢你了 我的三亚湾 有点像你的名...

  • 想给未来的男女友告个白

    想带你去看纽约的自由女神像 想带你去看洛杉矶的好莱坞 想带你去看芬兰的极光,你来指,我来说 想带你去看巴塞罗那的粉...

  • 带你一起去看世界之窗

  • 我想

    木微 我想带你去看春野的草青风动 我想带你去看夏夜的星落蝉鸣 我想带你去看秋静...

网友评论

    本文标题:用着短短的30行代码,带你一起去看朋友们的人生态度!

    本文链接:https://www.haomeiwen.com/subject/bhyprqtx.html