如何用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列表推导式的使用方法
Nov 21 Python
Python切片索引用法示例
May 15 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
python numpy中cumsum的用法详解
Oct 17 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 Python
Python发送邮件封装实现过程详解
May 09 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
解决python3安装pandas出错的问题
May 20 Python
python开发飞机大战游戏
Jul 15 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 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利用cookie实现访问次数统计代码
2011/05/19 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
JS中setTimeout()的用法详解
2013/04/14 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
JS实现仿中关村论坛评分后弹出提示效果的方法
2015/02/23 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
Python处理文本换行符实例代码
2018/02/03 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python绘制热力图heatmap
2020/03/23 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
JSF界面控制层技术
2013/06/17 面试题
园艺师求职信
2014/03/10 职场文书
安全生产宣传标语
2014/06/06 职场文书
工地标语大全
2014/06/18 职场文书
委托证明书
2014/09/17 职场文书
煤矿隐患排查制度
2015/08/05 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
如何自己动手写SQL执行引擎
2021/06/02 MySQL
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python