如何用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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
解决python replace函数替换无效问题
Jan 18 Python
在python下实现word2vec词向量训练与加载实例
Jun 09 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
七个Python必备的GUI库
Apr 27 Python
Python中文纠错的简单实现
Jul 07 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 str_replace的替换漏洞
2008/03/15 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
2013/04/10 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python中请不要再用re.compile了
2019/06/30 Python
Pytorch释放显存占用方式
2020/01/13 Python
python实现简单颜色识别程序
2020/02/19 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
青年志愿者事迹材料
2014/02/07 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
工作证明格式及范本
2014/09/12 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL