如何用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中的条件判断语句
May 14 Python
Python实现的归并排序算法示例
Nov 21 Python
python模仿网页版微信发送消息功能
Feb 24 Python
python高阶爬虫实战分析
Jul 29 Python
微信公众号token验证失败解决方案
Jul 22 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
python 子类调用父类的构造函数实例
Mar 12 Python
python能在浏览器能运行吗
Jun 17 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
Aug 04 Python
Python基本数据类型之字符串str
Jul 21 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
js word表格动态添加代码
2010/06/07 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Python实现多线程抓取妹子图
2015/08/08 Python
Python随机读取文件实现实例
2017/05/25 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python实现的建造者模式示例
2018/08/06 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
Python3 实现串口两进程同时读写
2019/06/12 Python
学习Django知识点分享
2019/09/11 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
一套带网友答案的.NET笔试题
2016/12/06 面试题
幼儿如何来做好自我评价
2013/11/05 职场文书
毕业研究生的自我鉴定
2013/11/30 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
培训讲师开场白
2015/06/01 职场文书
go 实现简易端口扫描的示例
2021/05/22 Golang
MySQL开启事务的方式
2021/06/26 MySQL