如何用Python制作微信好友个性签名词云图


Posted in Python onJune 28, 2019

前言

上次查看了微信好友的位置信息,想了想,还是不过瘾,于是就琢磨起了把微信好友的个性签名拿到,然后分词,接着分析词频,最后弄出词云图来。

1.环境说明

Win10 系统下 Python3,编译器是 Pycharm,需要安装 itchat、matplotlib、pandas、jieba、wordcloud、numpy、pillow 这几个包

介绍 Pycharm 安装第三方包的方法。

如何用Python制作微信好友个性签名词云图

如何用Python制作微信好友个性签名词云图

由于某些包不能直接用 Pycharm 安装,所以这里说一下安装的方法。

安装wordcloud

worcloud需要numpy> = 1.5.1,pillow和matplotlib,所以要先安装numpy,pillow和matplotlib。

在这个链接找到合适的whl文件

如何用Python制作微信好友个性签名词云图

如果是电脑是64位,python是3.6就下载下面这个。

如何用Python制作微信好友个性签名词云图

下载回来就放到Python的目录下,就比如我是把 Python 安装在E:\Python36这个目录,就把下载回来的 wordcloud-1.3.3-cp36-cp36m-win_amd64.whl 放在这。

如何用Python制作微信好友个性签名词云图

然后按win键+R ,输入cmd,回车

如何用Python制作微信好友个性签名词云图

然后cd 到 Python 目录那

如何用Python制作微信好友个性签名词云图

接下来就是安装了,pip install wordcloud-1.3.3-cp36-cp36m-win_amd64.whl

如何用Python制作微信好友个性签名词云图

除了这个以外,某一个包需要翻墙才能安装,具体是哪个就不记得了,好像是 pandas。

2.相关代码

先把需要的东西导入,安装这些包可不简单

import itchat
import matplotlib.pyplot as plt
import re, jieba
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
import numpy as np
import PIL.Image as Image

登录微信

itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)

获取数据

data = pd.DataFrame() # 提出好友的昵称、性别、省份、城市、个性签名,生成一个数据框
columns=['NickName', 'Sex', 'Province', 'City', 'Signature']
for col in columns:
val = []
for i in friends[1:]: # friends[0]是自己的信息,因此我们要从[1:]开始
val.append(i[col])
data[col] = pd.Series(val)

把个性签名中的 emoji 和别的东西过滤一下

siglist = []
for i in data['Signature']:
signature = i.strip().replace('emoji','').replace('span','').replace('class','')
rep = re.compile('1f\d+\w*|[<>/=]') # 具体含义另行查看
signature = rep.sub('', signature)
siglist.append(signature)
text = ''.join(siglist)

使用结巴分词进行分词,用 matplotlib 把图画出来

word_list = jieba.cut(text, cut_all=True)
word_space_split = ' '.join(word_list)
coloring = np.array(Image.open("E:/Python/wechat/toux.jpg")) #这个路径可以改,最好还是不要改
my_wordcloud = WordCloud(background_color="white", max_words=2000,
mask=coloring, max_font_size=100, random_state=42, scale=2,
font_path="C:/Windows/Fonts/simkai.ttf").generate(word_space_split)
image_colors = ImageColorGenerator(coloring)
plt.imshow(my_wordcloud.recolor(color_func=image_colors))
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

3.运行

先说明一下,如果能看懂代码,知道该怎么把必要的文件弄好,那就不怎么需要看下面这个。

如果看得不太理解,运行前一定要在 E 盘建立一个文件夹。路径是 E:\Python\Wechat ,然后在文件夹中放入一张命名为 toux.jpg 的照片,具体图片看个人喜好。

如何用Python制作微信好友个性签名词云图

最好就是下图这样的照片

如何用Python制作微信好友个性签名词云图

这样生成的词云就会很好看

如何用Python制作微信好友个性签名词云图

意思就是图片要有白色的背景,人物颜色较鲜艳,人物突出(图片分辨率要高)

把代码安装顺序复制到 Pycharm,然后鼠标右键,选择 Run,扫描弹出来的二维码,登录微信网页版,确认后等待一下,看到下图就说明代码运行得很完美,成功运行,没有报错。

如何用Python制作微信好友个性签名词云图

然后稍微等一下就可以看到词云图了。

如何用Python制作微信好友个性签名词云图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下singleton模式的实现方法
Jul 16 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python实现搜索文本文件内容脚本
Jun 22 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
pytorch1.0中torch.nn.Conv2d用法详解
Jan 10 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
Django全局启用登陆验证login_required的方法
Jun 02 Python
详解python with 上下文管理器
Sep 02 Python
python利用paramiko实现交换机巡检的示例
Sep 22 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
python打包exe开机自动启动的实例(windows)
Jun 28 #Python
python脚本开机自启的实现方法
Jun 28 #Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 #Python
python把转列表为集合的方法
Jun 28 #Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 #Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 #Python
python实现关闭第三方窗口的方法
Jun 28 #Python
You might like
PHP的伪随机数与真随机数详解
2015/05/27 PHP
PHP反射API示例分享
2016/10/08 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
2018/07/15 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Django中login_required装饰器的深入介绍
2017/11/24 Python
python如何修改装饰器中参数
2018/03/20 Python
对python程序内存泄漏调试的记录
2018/06/11 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
python实现猜拳游戏项目
2020/11/30 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
给公司的建议书范文
2014/05/13 职场文书
关于诚信的活动方案
2014/08/18 职场文书
买房协议书范本
2014/10/23 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
医生个人年终总结
2015/02/28 职场文书
保险内勤岗位职责
2015/04/13 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫