获取微信所有聊天记录数据并通过Python制作词云图
获取微信所有聊天记录数据并通过Python制作词云图
前言
本文纯原创,仅供学习、交流使用。不具有任何商业用途,版权归作者所有,如有问题请及时联系我以作处理。作者仅为一名大二学生,能力有限,并且也是我在csdn上的第一篇文章,如果文章中有些问题还请指出,谢谢大家。如果对你有帮助,请记得好评噢。
作者:做个财务自由的CEO
项目效果图:
接下来就是大家期待的过程了,具体如下:
一、整个项目一共经历三个步骤:
(1)首先获取微信聊天数据将其生成txt文本。
(2)对获取的文本进行数据清洗和处理
(3)生成词云图
二、此项目所涉及的工具:(资源我放在了百度网盘学要的可自行下载)
(1)获取微信聊天记录的工具:iTunes和一个微信数据提取器(微信数据提取器链接:https://pan.baidu.com/s/1DAVLmJ5LJx2BIZMKsFRg3g
提取码:9999 itunes可自行百度下载)
在这里要说明一下:因为作者的手机是ios安卓并不适用,如需要安卓请自行百度找方法
(2)pycharm编译器。(pycharm比较只能和方便,所以作者在这里推荐大家用pycharm,如需要还请自行在官网下载!)
(3)pycharm需要导入的库有:
import wordcloud import random import os import jieba from matplotlib import pyplot from PIL import Image import numpy
三:实现步骤:
1、通过iTunes备份手机的所有数据
2、使用微信数据提取器自动生成txt文本 (此时结果为一个文件夹,文件夹名是你的微信名字,文件夹里边有每个微信好友聊天的记录,若干个txt文本)
3、对txt文本进行处理。首先我们生成的是若干个聊天对象的txt文本,因此我们需要将其内容合并为一个txt文本以便接下来的数据清洗操作。因为生成的txt文本的聊天对话的开始显示的是聊天对象的微信名字和聊天时间记录。所以我们需要将其删除,
文本合并和数据清洗代码如下;
(1) 文本合并:
#文件合并 # -*- coding:utf-8 -*- # file: FileMerage.py # os模块中包含很多操作文件和目录的函数 # 获取目标文件夹的路径 #meragefiledir = os.getcwd() + '\\MerageFiles' os.getcwd()获得当前工作目录,即当前 Python 脚本工作的目录路径。 meragefiledir = r'C:\Users\song'+'\''+'song\Desktop\生成词云图\klys' #拼接txt文件所在的文件夹路径; # 获取当前文件夹中的文件名称列表 filenames = os.listdir(meragefiledir) #os.listdir(某路径) 列出某目录下所有的目录和文件。 #print(len(filenames)) #for i in range(0,len(filenames)):#print(filenames[i]) # 打开当前目录下的result.txt文件,如果没有则创建 # 文件也可以是其他类型的格式,如result.js result_data = open(r'C:\Users\song'+'\''+'song\Desktop\微信备份数据汇总文本.txt', 'w',encoding='utf-8') # 向文件中写入字符 # file.write('python\n') list1=[] #将过滤txt文本的存储列表中 #筛选出txt文本并合并 count=0 #记录txt文本数量 for txt in filenames:if "txt" in txt:count += 1list1.append(txt)#print(list)#合并文本for txt_filename in list1: # 先遍历文件名# 遍历获取文件夹下的所有txt文本txt_filepath = meragefiledir + '\\' + txt_filename#print(txt_filepath)#遍历获取的单个txt文本,读取行数并保存for line in open(txt_filepath, 'r', encoding='utf-8'):result_data.writelines(line)
(2)数据清洗:
# # 数据清洗——删除昵称和时间记录 file=open(r'C:\Users\song'+'\''+'song\Desktop\微信备份数据汇总文本.txt',encoding="utf-8") clear_file=open(r'C:\Users\song'+'\''+'song\Desktop\数据清洗微信备份数据汇总文本.txt',"w",encoding="utf-8") for string in file:end=string[0:string.find("):") + 2] #昵称和时间记录在字符串“)'”之前,这里我找到位置string=string.replace(end, '') #因为昵称和时间记录在字符串“)'”之前,所以我要删除clear_file.write(string)
4、我们使用jieba库进行分词:
代码如下:
with open(r'C:\Users\song'+'\''+'song\Desktop\数据清洗微信备份数据汇总文本.txt',"r+",encoding="utf-8") as text:text=text.read() text = " ".join(jieba.lcut(text)) #通过空格连接分好的词
若我们的云词有需要背景,则添加:mask,mask是word_cloud库中的对象的一个属性
mask = np.array(Image.open(r"C:\Users\song'song\Desktop\生成词云图\pikaqiu.png")) #将图片转换为多维数组
5、最后一步就是利用wordcloud库生成词云和matplotlib与PIL库展示图片
代码如下:
#创建wordcloud对象 word_cloud=wc.WordCloud(font_path=r"C:\Users\song'song\Desktop\生成词云图\msyh.ttc",mask=mask,background_color="black") #,width=1000,height=700,min_font_size=6 word_cloud.generate(text) #通过text生成词云图 word_cloud.to_file("微信备份数据词云生成图.png") #保存——将词云图转化为文件 #word_cloud.to_file(r"C:\Users\song'song\Desktop\词云demo.png") #保存——将词云图转化为文件 #关闭文件 result_data.close() file.close() clear_file.close() plt.imshow(word_cloud) #显示图片 plt.axis("on") plt.show() #显示图
以上就是全部过程啦,我没讲清楚的地方欢迎评论区留言,有问必答!
获取微信所有聊天记录数据并通过Python制作词云图相关推荐
- 数据可视化之利用Python制作词云图
制作词云图 一.词云图介绍 二.wordcloud方法 二. stylecloud方法 一.词云图介绍 词云图可以看作是文本数据的视觉表示,由词汇组成类似云的彩色图形.相对其它诸多用来显示数值数据的图 ...
- 利用python制作词云图,分词,提取关键词
利用python制作词云图保姆及教程 前言 一.环境配置 1.要有python的运行环境 2.需要导入jieba ,wordcloud等模块 pip install jieba pip install ...
- e分钟带你利用Python制作词云图
随着大数据时代的来临,数据分析与可视化,显得越来越重要,今天给小伙伴们带来一种最常见的数据可视化图形-词云图的制作方法. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语 ...
- python制作词云图设置停用词,Python生成词云图
代码如下: from os import path from wordcloud import WordCloud import matplotlib matplotlib.use('TkAgg') ...
- python制作词云图设置停用词,python词云图之WordCloud
1. 导入需要的包package importmatplotlib.pyplot as pltfrom scipy.misc importimreadfrom wordcloud importWord ...
- Python制作词云图根据蒙板图像确定形状和文字颜色
问题描述:制作词云图,根据蒙板图像确定词云图形状,根据蒙板图像中像素的颜色确定词云图中相同位置上文字的颜色. 阅读原文
- 获取微信的聊天记录导出为Excel
获取微信的聊天记录导出为Excel ios端 1.工具 2.步骤 1.工具 iTunes 楼月免费iTunes备份管理器 DB Browser for SQLite python 2.步骤 通过iTu ...
- 10分钟教你用Python玩转微信之抓取好友个性签名制作词云
10分钟教你用Python玩转微信之抓取好友个性签名制作词云 01 前言+展示 各位小伙伴我又来啦.今天带大家玩点好玩的东西,用Python抓取我们的微信好友个性签名,然后制作词云.怎样,有趣吧~好了 ...
- python处理数据集并制作词云图
python处理数据集并制作词云图 处理数据 使用自定义词典 去掉停用词 词频统计 绘制词云图+美化 1.处理数据 这里是老师给的新闻数据集,里面有5个类别的新闻数据,我以cars这一类为例. 将cs ...
- Python制作词云视频,通过词云图来看小姐姐跳舞
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 python免费学习资料 ...
最新文章
- java+js上传图片_java+ jsp+js 实现富文本编辑和上传图片功能
- 【DIY】自己动手更换热水器镁棒,保养电加热热水器注意事项,电热水器镁棒多久更换一次实际数据参考...
- 掩码图制作photoshop__新手用
- 常量数组 python_python数据科学系列:numpy入门详解教程
- phpMailer在CentOS 6.5下无法发送邮件的解决办法
- mavan自动化接管浏览器_人工智能与自动化:接管还是共生?
- stm32蜂鸣器播放音乐
- 希腊字母表及其读音与意义
- 保角变换法matlab编程,保角变换法.ppt
- mac mysql 移动硬盘_MAC上安装Fuse for macOS以支持读取NTFS格式的移动硬盘
- php curl怎么设置cookie,curl php正确设置cookie
- b站会员转正自动答题
- 泰坦尼克号沉船数据分析与可视化、数据建模与分类预测【Python | 机器学习-Sklearn】
- debian系统安装Google浏览器
- 徐州市大数据管理中心市级政务云灾备服务
- mysql unknown variable basedir_mysql登陆报错mysql: unknown variable 'basedir=
- 安全漏洞一内核漏洞利用
- Mac是不是基于Linux系统开发?
- 码头风云——5G降临
- DR平板探测器常识——非晶硒和非晶硅平板探测器的区别
热门文章
- 【资源】机器学习 周志华
- JS实现继承的几种方式
- 「测试开发工程师」和「软件测试工程师」有什么区别?
- matlab hspice联合仿真,matlab hspice
- Dorado7的初次使用
- 一:评分卡模型分数计算
- java.lang.IllegalArgumentException: Can not set xx field xx to jav问题解决
- Visio Professional 2019 激活方法详解
- 如何自制圆环_PPT中如何制作环形图高级教程
- linux 怎么连接到网络打印机,如何在网络上的Windows,Mac和Linux PC之间共享打印机...