IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python用jieba模块对QQ聊天记录分词统计,可视化和词云生成 -> 正文阅读

[人工智能]python用jieba模块对QQ聊天记录分词统计,可视化和词云生成

《关于我和我的怨种朋友一年只知道哈哈哈,呜呜呜,救命,这个那个这件事》

就有天和朋友聊天,她突然说了句,我以后再也不做搞笑女了,我说咋啦,她说她朋友说她天天喊救命,她害怕有一天真遇上啥事了喊救命,你们来句哈哈哈笑死。

于是我就想用python来统计一下我和我朋友这一年来最喜欢说的高频词汇

自己先导出你们的聊天记录哦

代码

# @Time:2022/2/1318:53
# @Author:中意灬
# @File:qq消息记录分析.py
# @ps:tutu qqnum:2117472285
import csv
import jieba
import re
from wordcloud import WordCloud
from pyecharts import options as opts
import jieba.analyse
from pyecharts.charts import Bar
from matplotlib import font_manager
import matplotlib.pyplot as plt
s=0
y=0
word_list = []
with open('tutu.txt','r',encoding='utf-8')as f:
    data=f.readlines()
    # print(data)
    for line in data:
        item=re.findall('.*[^\x00-\xff]',line)#筛选出中文,返回一个列表
        if item==[]:#空列表的不要
            pass
        elif item[0][0]=='2'and item[0][1]=='0':#可以自己设置,这是不要消息中像这样的“涂涂 2022/2/17 18:32:04”内容
            pass
        else:
            x=len(str(item[0]))#为了统计字数(可能不是很准确,但是能大概统计)
            s+=x
            y+=1#统计你们聊天的条数(也是大概统计)
            tag=jieba.analyse.extract_tags(str(item[0]))#用jieba模块进行分词
            #将分出来的词添加到一个列表中
            for i in tag:
                word_list.append(i)
word_dict={}#准备一个字典(散列表)来统计词语出现次数
for i in word_list:
        if i not in word_dict:  # 统计数量
            word_dict[i] = 1
        else:
            word_dict[i] += 1

list=[]#准备一个列表,来保存词语和它出现的次数
#保存统计出来的结果
with open('data.csv','w',encoding='utf-8',newline='')as f :
    writer=csv.writer(f)
    for i in word_dict.keys():
        writer.writerow([i,word_dict[i]])
        list.append([i,word_dict[i]])

list.sort(key=lambda x:x[1],reverse=True)#排序
list1=[]#保存前二十的出现的词语
list2=[]#保存前二十出现词语的次数
for i in list[:20]:
    list1.append(i[0])
    list2.append(i[1])
#绘图
bar= (
    Bar(init_opts=opts.InitOpts(width="1000px"))
        .add_xaxis(list1)#x轴数据
        .add_yaxis('次数',list2)#y轴数据
        .set_global_opts(title_opts=opts.TitleOpts(title="top20高频词汇"),xaxis_opts=opts.AxisOpts(name_rotate=30,axislabel_opts={"rotate":30}))#设置一些标题,坐标轴参数
        .set_series_opts(label_opts=opts.LabelOpts(is_show=True))#是否显示数据值
)
bar.render('data.html')
#生成词云图
wc = WordCloud(
        # 设置字体,不指定就会出现乱码
        font_path="C:\\Windows\\Fonts\\STFANGSO.ttf",#不加这一句显示口字形乱码
        # 设置背景色
        background_color='white',
        # 设置背景宽
        width=1500,
        # 设置背景高
        height=500,
        # 设置最大显示数
        max_words=100,
        # 禁用词汇
        stopwords=['表情','图片'],
        # 最大字体
        max_font_size=150,
        # 最小字体
        min_font_size=20,
        mode='RGBA'
        )
# 产生词云
result=" ".join(word_list)
wc1=wc.generate(result)
# wc1.to_file("tutu.png")#保存图片
plt.imshow(wc1)
plt.axis("off")
plt.show()

print('近一年的聊天条数约:',y)
print('总共字数约:',s)

运行结果:

?最后,开学快乐,呜呜呜~

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:09:21  更:2022-02-19 01:09:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 20:31:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码