如何用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使用wxPython打开并播放wav文件的方法
Apr 24 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
为Python的web框架编写前端模版的教程
Apr 30 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
python采集微信公众号文章
Dec 20 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
Python tkinter常用操作代码实例
Jan 03 Python
python列表返回重复数据的下标
Feb 10 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 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支持页面回退的两种方法
2008/01/10 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
社区敬老月活动实施方案
2014/02/17 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
八年级英语教学计划
2015/01/23 职场文书
财务总监岗位职责
2015/02/03 职场文书
中秋节晚会开场白
2015/05/29 职场文书
记者节感言
2015/08/03 职场文书
导游词之凤凰古城
2019/10/22 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang