如何用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 40行代码实现人脸识别功能
Apr 02 Python
关于Python 3中print函数的换行详解
Aug 08 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
手把手教你如何安装Pycharm(详细图文教程)
Nov 28 Python
python binascii 进制转换实例
Jun 12 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
Django中和时区相关的安全问题详解
Oct 12 Python
Python实现壁纸下载与轮换
Oct 19 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 图片上传类代码
2009/07/17 PHP
php实现递归的三种基本方式
2020/07/04 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
javascript event 事件解析
2011/01/31 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
通过实例学习React中事件节流防抖
2019/06/17 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
python获取目录下所有文件的方法
2015/06/01 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
自荐书模板
2013/12/15 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
测控技术自荐信
2014/06/05 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
培训学校2015年度工作总结
2015/07/20 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
Java spring定时任务详解
2021/10/05 Java/Android