狄云的所思所想

产品、技术想到哪写到哪

你是用什么爱好来支撑生活里的疲惫和琐碎?

2025-09-24

在抖音上刷到一个视频,只有一个问题「你是用什么爱好来支撑生活里的疲惫和琐碎?」,在我刷到的时候,显示有一万多条评论。

我是一个好奇心特别重的人,就特别想围观网友们都有什么爱好,但是让我看完这一万多条评论也是不可能的。

这时我想起Github上有一个开源项目,逆向了大部分抖音的接口,也许可以通过这个项目,来帮助我“看完”这些评论。

开源项目传送门:https://github.com/Evil0ctal/Douyin_TikTok_Download_API

第一步:获取所有评论

简简单单看了下这个开源项目是怎么获取评论的,看起来很简单,只需要找到作品id,加上分页参数就可以一页一页的获取评论,于是就随随便便把所有评论给抓了下来。

微信图片_2025-09-23_212136_441.png

抓取下来后,再写了一个脚本清理了一下数据,原始接口存下来的数据太多了,对我而言很多都是无效数据,清理后只保留了评论序号及评论内容。

第二步:分析评论数据

如何分析

评论数据是成功抓下来了,接下来该想办法来分析这些评论数据。我想到两个办法,一个比较原始,一个是利用现在的AI。

原始办法

原始的办法就是利用结巴分词这个开源的中文文本分词处理包,将评论文本全部分词后,再利用MATLAB来生成词云图,最终效果如下图:

wordcloud1.png

只能说效果还行,但是缺陷也很明显,例如占据中央位置最明显的两个词「打游戏」和「游戏」其实是同一类活动,但是对于机械的分词办法来说,它是不知道的。

另外看的出来,大家都喜欢用Emoji表情,词云中占据显著位置的「流泪」、「微笑」、「杀马特」都是抖音上大家常用的表情,同样分词是不知道的,只知道使用频率高。

最终使用结巴分词,统计下来的词频top10爱好如下:

top1.png

使用AI分析

可以看到,使用原始的办法,实际上是有很多瑕疵的,例如分词出来,很多词汇描述的是同一个爱好,但是分词并不知道,或者很多干脆不是爱好,但是分词也只会死板的帮你统计。

所以这个时候,引入一个有智慧的AI就变得很有意义了,初步的想法如下:

图示.png

相比起结巴分词,在我的想法里面,只需要引入两个AI角色就好,一个负责提取一段评论内容里包含哪些爱好,另一个AI角色就负责将爱好分门别类并进行计数。

说干就干,代码马上就写好了,先用一小部分评论内容进行尝试后,再根据结果不断的迭代,最终确定了两个AI角色的提示词,其中提取爱好的AI角色提示词如下:

你是一个专业的中文文本分析助手。请从用户的评论中提取出所有的爱好或兴趣活动。

重要区分原则:
- "吃好吃的"、"品尝美食"、"吃美食" → 归类为"美食品鉴"(消费享受)
- "做菜"、"烹饪"、"炒菜"、"学做饭" → 归类为"烹饪制作"(制作创造)
- "看电影"、"追剧" → 归类为"观影"(消费欣赏)
- "拍电影"、"制作视频" → 归类为"影视创作"(制作创造)

提取要求:
1. 提取所有具体的爱好活动,准确区分消费型和创造型活动
2. 一个人可能有多个爱好,请全部提取出来
3. 如果评论中没有明确的爱好活动,请返回"无明确爱好"
4. 返回格式:用逗号分隔的爱好列表,如:美食品鉴,登山,画画
5. 只返回爱好名称,不要其他文字或解释

示例:
- "我喜欢吃好吃的" → 美食品鉴
- "我学会了做菜" → 烹饪制作
- "爱看电影和打游戏" → 观影,电子游戏
- "喜欢旅行拍照" → 旅行,摄影

负责将爱好分门别类的AI角色提示词如下:

你是一个智能爱好分类助手。请判断新的爱好是否与现有的某个分类相近,并决定如何处理。

现有分类:
{categories_list}

新爱好:{hobby}

**核心分类原则:保持爱好具体性,避免过度合并**

1. **优先保留具体爱好**:每个具体的爱好活动应该有自己的分类
   - 钓鱼就是钓鱼,露营就是露营,登山就是登山
   - 不要因为都是"户外活动"就合并在一起

2. **只合并本质相同的活动**:只有当两个爱好描述的是同一个活动时才合并
   - 看电影、看电视剧、追剧 → 可以合并为"观影"(本质都是观看影视内容)
   - 听歌、音乐欣赏 → 可以合并为"音乐欣赏"(本质都是听音乐)
   - 做菜、烹饪、炒菜 → 可以合并为"烹饪"(本质都是制作食物)

3. **谨慎重命名分类**:只有在完全确定是同一活动的不同表达时才重命名

4. **具体优于抽象**:
   - 如果已存在"钓鱼"分类,新的"户外活动"不应该覆盖钓鱼
   - 如果已存在"户外"分类,新的"钓鱼"应该创建独立分类,不合并到户外

**严格判断标准**:
- **完全相同活动**:看电影/看电视剧、听歌/音乐欣赏、做菜/烹饪 → 可以合并
- **相关但不同活动**:钓鱼/露营、跑步/游泳、画画/书法 → 不能合并,各自独立
- **抽象vs具体**:户外/钓鱼、运动/跑步、艺术/画画 → 具体的优先,创建独立分类

**处理示例**:
- 现有"钓鱼",新增"垂钓" → 合并到"钓鱼"(同一活动)
- 现有"钓鱼",新增"露营" → 创建新分类"露营"(不同活动)
- 现有"户外",新增"钓鱼" → 创建新分类"钓鱼"(具体优于抽象)
- 现有"看电影",新增"看电视剧" → 合并为"观影"(本质相同)

请按以下格式回答:
判断结果:相同活动 或 不同活动
处理方式:合并到现有分类 或 创建新分类 或 重命名为通用名称
目标分类:[最终分类名称]
理由:[简要说明理由]

由于每一个评论都要扔给两个AI角色去进行提取和分类,而接近一万条评论数据还是比较庞大的,脚本运行后我就跑去睡觉了,一觉醒来后,我终于看到了最终结果,同样拿到这个结果后,生成词云图如下:

wordcloud2.png

对比上一次的词云图,能明显的感知到效果提升了很多,基本上没有了无关词汇,合并后的「电子游戏」占据了明显的C位,但是仔细看还是能发现瑕疵,例如左上角「音乐欣赏」和右下角的「听音乐」仍然重复,查看最终结果文件也能看到还是会有些词汇是重复的,例如「摩托车骑行」和「骑摩托」,「刷抖音」和「刷短视频」等,看来AI有提升,但是仍然不完美。

统计最终的词频top10爱好如下:

top2.png

排行榜中对比第一次结巴分词的结果看,有几个很明显的差异,例如「电子游戏」遥遥领先,因为AI能够理解「打游戏」、「游戏」等本质都是电子游戏。第一次排行榜中的「喝酒」由第四名变成了第十名,这倒是让我很意外,分词中都能出现这么多次的,按理说AI不可能不把这个不当做爱好。查询日志发现,AI把一部分喝酒给分类到「品酒」中了,导致分流了一部分,最终「饮酒」就只有区区207票,很怪异。「睡觉」这个爱好消失,查询日志发现,AI认为这不算爱好,直接给丢弃了,没给计数,好吧,尊重AI的分类法。

一些有趣的发现

通过两种方式的结果对比,可以看到使用AI进行分类,虽然仍不完美,但效果已经远远好于之前简单粗暴的分词方法。但是从另一方面说,哪怕是上人力去进行分类,一万条评论这个工作量也能劝退大部分人,所以综合来看,结果还是满意的。

另外,看最终的结果文件以及分类过程的日志,也可以看到很多有趣的东西。例如为什么最终的统计结果还是会有偏差呢?

影响结果的因素很多,最大的一个就是,关于爱好这个东西,大家所说的维度就不统一,有些评论就说的很具体,比如喜欢爬山,喜欢露营,但是有些人说的就很抽象,说喜欢户外运动,喜欢冬季运动,别说是AI了,就算是人来分类统计也得懵逼,维度不一,各种包含与被包含的关系,到底要具象或者抽象到哪个维度才能算同一爱好或者不同爱好,这玩意就没有标准,所以分类统计必然有偏差。

还有影响结果另一个比较大的因素就是黑话太多,例如通过日志中就可以看到,有人评论说喜欢玩吃鸡、帕布鸡,AI将这个统计到了美食。。。但是有游戏经验的人应该知道,吃鸡指的是绝地求生这款游戏。。。大家在网上冲浪,都太喜欢说黑话了,而一些黑话如果不是有相关经验的人,很容易看不懂,更别说诞生才几岁的AI了。

另外还有几十票的「不良嗜好」,我倒要看看网友的不良嗜好是啥,然后看了看日志,「洗脚」、「彩票」、「网上喷人」。。。嗯,是挺不良好的,AI没有分错类。

说回正经的

作为偶然刷到的一条视频,其评论区的数据在某种意义上也能算一个切片。然而最终的结果仍然会有一些重复项,所以我让AI继续多轮检查,经过多次合并同类项后,最终排行榜如下:

top3.png

通过最终的排行榜可以看到,「电子游戏」真的已经遥遥领先了,无论评价「游戏」是毁人的毒药还是说「游戏」是能让人短暂逃避现实的良药,都无法阻挡人类尤其是年轻人对他的喜好。

健身能超越美食也很有意思,看来现阶段大家还是吃的太饱了,需要额外的运动来进行消耗(狗头保命)。

钓鱼能有这么高的票数倒是没想到,果然钓鱼才是抖音运动顶流,利好各种钓鱼周边生意。

另外经过合并后,摩托车票数也是很高了,虽然看起来摩托车只是第八,但是考虑到有些人说的骑行可能会是摩托车骑行,所以实际上说不定摩托车应该排在第七。这也可以印证最近两年为什么抖音陨落了这么多骑手,摩托车在抖音上流量着实不小啊。

特别鸣谢

此次仍然特别感谢某不愿意透露姓名的王姓男子,赞助了近千万tokens的AI API供本人进行研究使用。

本次研究完全是突发奇想,研究结果完全是图一乐,不构成任何投资建议,本研究在数据样本、分析方法上均存在局限性,结论的偶然性极大,如果各位因为这篇“玄学”研究赚了,不用谢我;如果亏了……那也概不负责!