如何用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写的一个文本编辑器
Jan 23 Python
Python爬虫代理IP池实现方法
Jan 05 Python
Python中的__slots__示例详解
Jul 06 Python
Python分析学校四六级过关情况
Nov 22 Python
Python代码实现KNN算法
Dec 20 Python
Django 实现下载文件功能的示例
Mar 06 Python
Python离线安装PIL 模块的方法
Jan 08 Python
详解python-图像处理(映射变换)
Mar 22 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
Python随机函数库random的使用方法详解
Aug 21 Python
python生成随机红包的实例写法
Sep 02 Python
Python读取图像并显示灰度图的实现
Dec 01 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二维数组矩形转置实例
2016/07/20 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
tagName的使用,留一笔
2006/06/26 Javascript
激活 ActiveX 控件
2006/10/09 Javascript
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Python之修改图片像素值的方法
2019/07/03 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
测试时代收集的软件测试面试题
2013/09/25 面试题
2015年药店工作总结
2015/04/20 职场文书
安全教育观后感
2015/06/17 职场文书
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python