最近抖音张同学突然火了,两个月涨粉一千多万。

今天这篇文章,我抓取了张同学的视频的评论数据,想从文本分析的角度,挖掘一下大家对张同学感兴趣的点。

张同学 10.4号开始发视频,视频的点赞量一直很高,11.17 号的视频达到了顶峰,收获 250w 个赞,之后关注量也开启了暴涨。

所以挖掘 11.17 号视频的评论,更有助于我们达成目的。

1. 抓取数据

抖音出了 web 版,抓取数据方便了很多。

抓评论

滑到网页评论区,在浏览器网络请求里过滤包含comment的请求,不断刷新评论就可以看到评论的接口。

有了接口,就可以写 Python 程序模拟请求,获取评论数据。

请求数据要设置一定间隔,避免过大请求,影响别人服务

抓取评论数据有两点需要注意:

  • 有时候接口可能返回空数据,因此需要多试几次,一般过了人工滑动验证后的接口基本可用

  • 不同页面之间的数据可能会重复,所以需要跳页请求

2. EDA

11.17 号的视频有 12w 条评论,我只抓取了 1w 多条。

text列是评论。

先对数据做一些探索性的分析,之前介绍过几个EDA工具,可以自动产出基础的数据统计和图表。

这次我用的是ProfileReport

# eda
profile = ProfileReport(df, title='张同学抖音评论数据', explorative=True)
profile

评论时间分布

从评论的时间分布来看,由于发布的视频的时间是17号,所有17、18号评论发布量比较多。不过再往后甚至到了 12.9 号,仍然有不少新评论产生,说明视频热度确实很高。

评论的长度分布

大多数评论的字数在 20 以内,基本不超过 40 个字,说明都是短文本。

评论者身份

参与评论的人里, 99.8% 是没有认证身份的,说明评论用户里基本都是普通用户。

3. LDA

上面的统计数据还是太粗略了。

但我们要想知道大家的感兴趣点在哪,又不可能细到把 1.2w 条评论全部看完。

所以需要对这些评论先做一次归类,相当于把数据升维,抽象。因为只有将数据升维,了解每个维度的含义和占比,才能帮助我们从全局角度掌握数据。

这里我用LDA算法对文本聚类,聚合在一起的评论可以看做属于同一个主题。

LDA算法的核心思想有两点:

  • 具有一定相似性的文本会聚合在一起,形成一个主题。每个主题包含生成该主题需要的,以及这些词的概率分布。以此可以人为推断出主题的类别。

  • 每篇文章会它有在所有主题下的概率分布,以此可以推断出文章属于哪个主题。

比如,经过LDA算法聚类后,某个主题中,战争军费这类词出现概率很高,那么我们可以将该主题归类为军事。如果有一篇文章属于军事主题的概率很高,我们就可以将该文章分为军事一类。

简单介绍完LDA的理论,下面我们来实战一下。

3.1 分词、去停用词

# 分词emoji = {'可怜', '发呆', '晕', '灵机一动', '击掌', '送心', '泣不成声', '哈欠', '舔屏', '偷笑', '愉快', '再见', '666', '熊吉', '尬笑', '吐舌', '撇嘴', '看', '绿帽子', '捂脸', '呆无辜', '强壮', '震惊', '阴险', '绝', '给力', '打脸', '咖啡', '衰', '一起加油', '酷拽', '流泪', '黑脸', '爱心', '笑哭', '机智', '困', '微笑袋鼠', '强', '闭嘴', '来看我', '色', '憨笑', '不失礼貌的微笑', '红脸', '抠鼻', '调皮', '紫薇别走', '赞', '比心', '悠闲', '玫瑰', '抱拳', '小鼓掌', '握手', '奸笑', '害羞', '快哭了', '嘘', '惊讶', '猪头', '吐', '暗中观察', '不看', '啤酒', '呲牙', '发怒', '绝望的凝视', '大笑', '吐血', '坏笑', '凝视', '可爱', '拥抱', '擦汗', '鼓掌', '胜利', '感谢', '思考', '微笑', '疑问', '我想静静', '灵光一闪', '白眼', '泪奔', '耶'}
stopwords = [line.strip() for line in open('stop_words.txt', encoding='UTF-8').readlines()]def fen_ci(x):res = []for x in jieba.cut(x):if x in stopwords or x in emoji or x in ['[', ']']:continueres.append(x)return ' '.join(res)
df['text_wd'] = df['text'].apply(fen_ci)

由于评论中有许多 emoji 表情, 我抽取了所以 emoji 表情对应的文本,生成 emoji 数组,用于过滤表情词。

3.2 调用LDA

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.decomposition import LatentDirichletAllocation
import numpy as npdef run_lda(corpus, k):cntvec = CountVectorizer(min_df=2, token_pattern='\w+')cnttf = cntvec.fit_transform(corpus)lda = LatentDirichletAllocation(n_components=k)docres = lda.fit_transform(cnttf)return cntvec, cnttf, docres, ldacntvec, cnttf, docres, lda = run_lda(df['text_wd'].values, 8)

经过多次试验,将数据分成 8 类效果较好。

选取每个主题下出现概率 top20 的

主题的词分布

从这些词概率分布,归纳各主题的类别,主题0 ~ 主题7分别是:居然看完知道钥匙在哪农村生活喂狗拍摄手法还用锁门?鸡蛋放盐多袜子放枕头下

统计主题占比:

主题占比

红色的是主题3喂狗),占比最大,很多人评论是:以为要做给自己吃,没想到是喂狗的。我看的时候也是这样认为的。

其他各主题占比比较均匀。

经过主题分类后,我们可以发现,张同学不仅仅是农村生活引起了大家的关注,更多的是视频中大量反常态的镜头。

最后,用树状图展示各主题及对应的具体评论。

主题下的文章

图太大,只截取了一部分。

从抓数据到分析,做得比较仓促。

核心代码已经贴在文章里。完整代码还在整理,需要代码或者文章有疑问的朋友可以在评论区留言。

最近‘张同学’在DY实在是太火了,忍不住用Python分析了一下他的dy评论数据,相信有朝一日我也能够爆火起来相关推荐

  1. 用Python分析张同学dy评论数据

    首先 相信有很多小伙伴都喜欢玩抖音吧,最近抖音张同学突然火了,两个月涨粉一千多万.看了他的视频,满满的生活气息,让人有一种家的感觉.这就让我很感兴趣了,必须得用Python对他分析一下. 今天这篇文章 ...

  2. 【转】为什么你的硬盘容易坏?因为它转得实在是太快了

    声明:本文转载自微信公众号"51CTO官微":原文链接 千万别没事开着机就端着你的笔记本电脑到处走动,很容易坏的! 笔记本电脑和台式电脑相比有一个很大的缺点,就是硬盘容易坏(HDD ...

  3. 为什么抖音张同学这么火爆?用 Python 分析 1w+条评论数据,我发现了其中的秘密

    大家好,最近抖音张同学突然火了,两个月涨粉一千多万.今天这篇文章,我抓取了张同学的视频的评论数据,想从文本分析的角度,挖掘一下大家对张同学感兴趣的点. 张同学 10.4号开始发视频,视频的点赞量一直很 ...

  4. 这个教程实在是太强悍了,大家都来一饱眼福吧

    这个教程实在是太强悍了,大家都来一饱眼福吧 新建一张RGB颜色的画布,长宽比与远原图一致,分辨率你认为合适就可以了. 新建一个图层命名为辅助线,选择一种颜色(喜欢就行),用直线或钢笔工具画外轮廓,如果 ...

  5. python延迟5s_Python做扫描,发包速度实在是太慢了,有优化的方案吗?

    用python做 syn scan 但是这个速度实在是太感人了,有没有优化的方案?不想写C的 代码如下: #coding: utf-8 import threading,time,os,argpars ...

  6. Word里面最难删的东西,困扰了97.99%的职场人,实在是太烦人了

    在日常工作中,我们经常都会用到Word!用多了我们会发现,有时候Word可会作妖了!总是有乱七八糟的东西出现,而死活删不掉!不能忍了,我堂堂浪里小白龙,还治不了你? 1.一键去除页眉横线 woc!这个 ...

  7. 站长必看:竞价只靠钱来砸实在是太傻了!

    竞价是百度官方推出的一项立足关键词搜索的业务,这项业务里,对于一些热门搜索词,百度官方采取了竞价的方式进行排名.也就是说只要你给的钱多,那么你的搜索关键词就能排到较前的位置.虽然站长圈对于百度的这个商 ...

  8. 从李子柒到张同学,田园乡村成创业热土?

    出品| 大力财经 文 | 魏力 最近,抖音网红们都被张同学洗脑,纷纷拍起了同款视频.质朴的表达.真实的生活.略带诙谐的视频语音,都引发了人们,尤其是年轻人对农村生活的向往.有人说,张同学可能引领一批人 ...

  9. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

    年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...

最新文章

  1. 人群行为分析--Understanding Pedestrian Behaviors from Stationary Crowd Groups
  2. 如何用DiscoGAN学习发现跨域关系(附源代码)
  3. LinkedList 实现 Queue
  4. BigDecimal空指针异常——个人应用
  5. java判断ftp是否连接_校验FTP是否能正常连接的Java类
  6. 学习VUE时,利用webpack打包的错误处理方法
  7. 怎么让图片手机上排列_PS手机卷轴样机,分分钟让图片变得高大上!
  8. linux 自定义vi dd,Vim常用命令及配置方案
  9. java的运行原理_Java的运行原理(转载)
  10. EasyRecovery如何恢复ps的psd文件
  11. asp上传服务器后台图片显示,asp.net上传图片到服务器方法详解
  12. LDAP认证-ldap搭建
  13. huobi API使用经验整理
  14. 通信协议:分辨率和偏移量的使用
  15. tomcat consider increasing the maximum size of the cache
  16. Qt基于QMediaPlayer音视频播放
  17. Ubuntu20.04 锁屏快捷键无反应的解决方法
  18. python main传参args_python argh/argparse:如何将列表作为命令行参数传递?
  19. COSMOS认证辅导,原材料生产到成品分销的各个环节预防和安全原则的约束
  20. Python 实现动态解析阿里云DNS记录

热门文章

  1. Fairware勒索软件频繁攻击Linux服务器 大家赶紧做好备份
  2. /usr/include/linux/if_ppp.h:117: error: expected specifier-qualifier-list before 'aligned_u64' 解决方式
  3. 光照模型-兰伯特光照模型
  4. 眼动数据中瞳孔大小这个数据怎么用?
  5. python如何打出英文括号_用python的re(正则表达式)模块匹配英文环境下的括号
  6. 美容院冬季拓客方法大全
  7. FAQ | 为大屏幕设备构建应用的常见问题解答
  8. 嵌入式系统设计与开发期末考试复习
  9. 从Maxwell方程组到波动方程
  10. Ubuntu使用备忘