千家信息网

如何使用Python统计180班QQ群聊文本可视化分析

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,如何使用Python统计180班QQ群聊文本可视化分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。今天是八月三号习惯性的身边复习的
千家信息网最后更新 2024年11月27日如何使用Python统计180班QQ群聊文本可视化分析

如何使用Python统计180班QQ群聊文本可视化分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

今天是八月三号
习惯性的身边复习的同学离开
人越来越少
亚军是我老乡,也回家了
寝室剩下我一人
近几天一直没去复习
复习状态一直不太好
只能看看课外书
学学Python,机器学习,数据挖掘...
相关的书籍,为以后数据分析积累知识
今天给大家讲讲我们班
2016级统计学180班
我们班有来自不同的地方
标红点的为来源的地方
其中以河南省的同学人数最多

转眼就到大四年级,留在学校的时日不多了

首先要获取QQ群聊的文本数据
而爬虫可以很好的实现网页数据的爬取
一般爬取数据流程如下所示

分为网站请求、伪装、解析、存储四个过程

更为详细的爬取流程如下所示

需要添加一些规则

然而,本文的文本数据

是我从QQ电脑端后台导出的

目前对于网络爬虫的学习

我只会豆瓣影评、书评、淘宝价格的爬取

等具体学习成熟了

发一篇网络爬虫的推文

敬请期待

导出文本数据后

编写程序,调试代码,做可视化分析

详细代码如下所示

#QQ群聊数据分析代码import reimport datetimeimport seaborn as snsimport matplotlib.pyplot as pltimport jiebafrom wordcloud import WordCloud, STOPWORDSfrom scipy.misc import imread# 日期def get_date(data): # 日期   dates = re.findall(r'\d{4}-\d{2}-\d{2}', data)   # 天   days = [date[-2:] for date in dates]   plt.subplot(221)   sns.countplot(days)   plt.title('Days')   # 周几   weekdays = [datetime.date(int(date[:4]), int(date[5:7]), int(date[-2:])).isocalendar()[-1]               for date in dates]   plt.subplot(222)   sns.countplot(weekdays)   plt.title('WeekDays')# 时间def get_time(data):   times = re.findall(r'\d{2}:\d{2}:\d{2}', data)   # 小时   hours = [time[:2] for time in times]   plt.subplot(223)   sns.countplot(hours, order=['06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17',                               '18', '19', '20', '21', '22', '23', '00', '01', '02', '03', '04', '05'])   plt.title('Hours')代码演示:# 词云def get_wordclound(text_data):   word_list = [" ".join(jieba.cut(sentence)) for sentence in text_data]   new_text = ' '.join(word_list)   pic_path = 'QQ.jpg'   mang_mask = imread(pic_path)   plt.subplot(224)   wordcloud = WordCloud(background_color="white", font_path='/home/shen/Downloads/fonts/msyh.ttc',                         mask=mang_mask, stopwords=STOPWORDS).generate(new_text)   plt.imshow(wordcloud)   plt.axis("off")# 内容及词云def get_content(data):   pa = re.compile(r'\d{4}-\d{2}-\d{2}.*?\(\d+\)\n(.*?)\n\n', re.DOTALL)   content = re.findall(pa, data)   get_wordclound(content)def run():   filename = '新建文本文档.txt'   with open(filename) as f:       data = f.read()   get_date(data)   get_time(data)   get_content(data)   plt.show()

做出文本可视话图后,可以得出如下结论

在2018年1月1日~1月31日统计180班群聊中

1月2日这一天群聊次数最多

每周的星期二群聊次数做多

每天的16时群聊次数最多

做词云图发现

"全体成员"出现的词频最多


关于如何使用Python统计180班QQ群聊文本可视化分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0