面向中文青少年社交媒体的强情境情感标注语料库
A multi-dimensional sentiment corpus for Chinese adolescent social media — building data from identity, temporality, relationships, and subculture, not just keywords.
SCAYS 1.2 是一个从小红书采集的中文青少年情感语料库,目前包含 14,288 条 句子级标注数据(三分类:负面 / 中性 / 正面),覆盖 2 个维度、26 个关键词(身份锚点 17 个 + 周期节律 9 个)。
现有的中文情感数据集几乎都是"扁平"的——随机抓一批文本,标上正面/负面/中性,结束。它们不关心说话的人是谁、处在什么阶段、面对什么关系。但青少年的情绪从来不是孤立存在的,它长在具体的 身份、周期、关系、文化、身体、经济、行为 里。
SCAYS 和其他数据集最大的区别:我们从一开始就按照这七个维度去设计采集策略、搜罗数据。不是先有数据再贴标签,而是先有维度框架,再围绕每个维度的关键词定向采集。这套 从"扁平化"到"多维情境化" 的数据构建方式,才是 SCAYS 存在的核心理由。
传统情感数据集的问题不只是标注方法,而是从数据采集阶段就已经丢失了情境:
| 传统数据集 | SCAYS | |
|---|---|---|
| 采集方式 | 通用关键词抓取,或随机采样 | 按七维体系定向采集:每个维度都有专门设计的采集关键词(共 100+ 个) |
| 数据视角 | 一句话就是一句话,没有上下文 | 一句话 + 谁在说(身份)+ 什么时候说(周期)+ 在什么关系中说(场域) |
| 标注深度 | 正面/负面/中性 | 情绪类型 + 情绪动机 + 所属情境维度 |
| 语言覆盖 | 通用中文 | 专门覆盖中国初高中生的话语体系和亚文化表达 |
简单来说:传统数据集在标注环节做优化,SCAYS 在数据源头就做分层。
在这个过程中,SCAYS 也处理了传统模型的一个典型短板——隐含情绪。青少年的真实表达往往不含任何情绪词:
"我妈每天都让我吃一个苹果,我每次都不吃但她每次都还是给我"
→ 无情绪词,但有家庭关系中的复杂情感
"我成绩其实还行,但再这个态度我大概能看到自己以后的成绩了"
→ 无情绪词,但有对未来的焦虑和自我否定
传统模型会把这些全部判为"中性"。但这不是 SCAYS 的目的——识别隐含情绪只是多维情境标注过程中自然附带的能力。真正重要的是,因为我们按维度采集数据,这类句子才不会在采集阶段就被遗漏。
SCAYS 认为,青少年的情绪不是孤立的"正面/负面"标签,而是在具体的 身份、时间、关系、文化、身体、经济、行为 情境中产生的。这七个维度本身是情绪中立的——每个维度都可能产生正面、负面或复杂交织的情感。我们设计它们不是为了捕捉"坏情绪",而是为了还原青少年完整的生存情境:
| # | 维度 | 英文 | 核心关注 |
|---|---|---|---|
| 1 | 身份锚点 | Identity Anchor | 你是谁?——年级、学校类型、学科、角色 |
| 2 | 周期节律 | Temporal Rhythm | 什么时候?——考试、日常、假期、学习周期 |
| 3 | 关系场域 | Relational Field | 和谁?——家庭、师生、同学、恋爱 |
| 4 | 精神避难所 | Digital Refuge | 逃向哪里?——饭圈、二次元/谷圈、游戏、设圈 |
| 5 | 躯体觉醒 | Somatic Awakening | 身体怎么了?——容貌、生理变化、睡眠、疾病 |
| 6 | 消费认知 | Economic Imprint | 花钱背后?——家庭条件、经济控制、物质攀比 |
| 7 | 主体性夺回 | Agency Reclaim | 如何反抗?——化妆、逃学、翘课等叛逆行为 |
⚠️ 以下仅展示各维度的 代表性标签示例。完整关键词表包含 100+ 个标签,将随数据集 v2.0 发布。
维度 1:身份锚点(Identity Anchor)— 4 个子类,17 个标签
青少年的情绪表达高度依赖其身份定位。同样是"学不完了",准初三和复读生的焦虑浓度完全不同。
| 子类 | 示例标签 |
|---|---|
| 年级/阶段 | 准高三 复读生 等 5 个 |
| 学校作息 | 住校生 等 3 个 |
| 分科 | 理科生 美术生 等 4 个 |
| 校园地位 | 学渣 学霸 等 5 个 |
维度 2:周期节律(Temporal Rhythm)— 4 个子类,24 个标签
青少年的情绪有明显的周期性:月考前焦虑飙升,假期结束前集中爆发,成绩单发放当天是情绪巅峰。
| 子类 | 示例标签 |
|---|---|
| 考试 | 月考 一模 发成绩单 等 8 个 |
| 日常 | 晚自习 拖堂 等 6 个 |
| 假期 | 开学综合征 等 5 个 |
| 学习 | 偏科 小镇做题家 等 6 个 |
维度 3:关系场域(Relational Field)— 4 个子类,30 个标签
青少年无法选择自己的家庭、老师和同学,关系中既有冲突(被孤立、被偏心对待),也有成长(交到新朋友的兴奋、被老师认可的喜悦)。这种关系的"不可选择性"让情绪体验格外强烈——无论正面还是负面。
| 子类 | 示例标签 |
|---|---|
| 家庭 | 偏心 查手机 道德绑架 等 9 个 |
| 师生 | 被针对 请家长 全校通报 等 10 个 |
| 同学 | 孤立 校园冷暴力 等 8 个 |
| 恋爱 | 暗恋 早恋被抓 等 3 个 |
维度 4:精神避难所(Digital Refuge)— 4 个子类,21 个标签
青少年在数字世界中建立自己的精神归属——追星带来的归属感、吃谷带来的满足感、游戏中的成就感,都是真实的正面情绪。同时这些空间也会制造负面波动(塌房、退坑、被骗)。传统 NLP 模型几乎无法理解这些圈层"黑话"。
| 子类 | 示例标签 |
|---|---|
| 饭圈 | 塌房 脱粉 等 7 个 |
| 二次元/谷圈 | 吃谷 退坑 等 5 个 |
| 游戏 | 防沉迷 抽卡保底 等 6 个 |
| 设圈 | OC 等 3 个 |
维度 5:躯体觉醒(Somatic Awakening)— 4 个子类,16 个标签
青春期的身体在剧烈变化,这些变化既有困扰(烂脸、失眠),也有惊喜(长高了、变好看了)。这个维度关注的是青少年对自身身体变化那种复杂的感受——不只是焦虑,也包括成长带来的喜悦和自信。
| 子类 | 示例标签 |
|---|---|
| 容貌 | 青春痘/烂脸 身高 等 4 个 |
| 生理 | 痛经 变声期 等 4 个 |
| 其他 | 睡眠 视力 等 3 个 |
| 特殊疾病 | 躯体化 进食障碍 等 5 个 |
维度 6:消费认知(Economic Imprint)— 3 个子类,12 个标签
消费行为折射出家庭背景和同辈文化。不只有物质差距带来的自尊冲击,也有买到心仪的谷子、收到礼物时的满足感。这个维度关注的是消费行为背后的情绪体验。
| 子类 | 示例标签 |
|---|---|
| 家庭条件 | 留学 等 3 个 |
| 经济控制 | 零花钱 买谷吃土 等 4 个 |
| 物质攀比 | 假鞋 等 5 个 |
维度 7:主体性夺回(Agency Reclaim)— 6 个标签
青少年在高压环境下通过"越轨行为"夺回自主权。这些行为本身是情绪的出口,也是重要的风险信号。
| 示例标签 |
|---|
逃学 翘课 等 6 个 |
这七个维度不是一条因果链,而是 描述青少年所处世界的七个切面:
身份 — 你是谁(准高三 / 住校生 / 学渣)
周期 — 你在什么时间节点(月考前 / 假期最后一天 / 发成绩单)
关系 — 你和谁在一起(偏心的父母 / 针对人的老师 / 排挤的同学)
推 — 你的精神世界在哪(追星 / 吃谷 / 打游戏)
生长 — 你的身体在经历什么(烂脸 / 失眠 / 痛经)
消费 — 你的物质条件如何(别人穿AJ我穿假鞋)
叛逆 — 你做了什么(翘课 / 逃学 / 抽烟)
一个青少年在任意时刻,同时处在这七个轴上的某个位置。这些位置的组合,就是他/她的"情境"。
比如同一句"不想活了",放在不同的坐标组合里意味完全不同:
- 身份=高三党 + 周期=发成绩单 → 大概率是考试后的情绪宣泄
- 身份=复读生 + 关系=被孤立 + 生长=长期失眠 → 需要认真对待的求助信号
反过来,同一句"今天好开心"也需要情境才能理解:
- 关系=交到新朋友 + 身份=小透明 → 长期孤立后的社交突破,情绪意义很大
- 周期=放假第一天 → 普遍性的轻松感,情绪意义一般
这就是 SCAYS 所说的 "强情境":理解一句话的情绪,不能只看这句话本身,要看说这句话的人同时处在哪些维度的什么位置上。
在社交媒体上,用户很少主动声明自己的完整身份——但它可能会用一些只有特定身份才说的话。这时候,七个维度之间就可以 互相推导,填补缺失信息:
示例:一条提到特定日常作息的帖子
已知维度:
周期 = 某个日常作息场景
周期 = 某个师生互动
可推导维度:
身份 → 特定学校类型(作息暗示)
身份 → 特定学科方向(学科关键词暗示)
身份 → 学习状态(语气暗示长期困难)
关系 → 师生压力(被动承受)
再比如:
示例:一条提到亚文化消费的帖子
已知维度:
推 = 某种亚文化消费行为
消费 = 经济状况描述
可推导维度:
身份 → 特定年龄段(消费模式暗示)
消费 → 经济自主程度
关系 → 可能引发的家庭冲突
这意味着七维框架不只解决了"数据扁平化"的问题,还解决了社交媒体上"身份难以锚定"的问题。传统数据集无法知道一句话是谁说的;SCAYS 的七维体系让维度之间成为彼此的线索,即使用户没有明确表达,也能通过已知维度推导出缺失的情境信息。
| 类别 | 数量 | label | 说明 |
|---|---|---|---|
| 显性情绪句子 (normal) | 2,172 条 | 1 | 含明确情绪词汇 |
| 隐含情绪句子 (invisible) | 514 条 | 1 | 无情绪词但有隐含情绪 |
| 正面情绪句子 (positive) | 173 条 | 2 | 正面情绪表达 |
| 中性句子 (neutral) | 5,052 条 | 0 | 无情绪表达 |
| 小计 | 8,004 条 | 17 个关键词 |
| 类别 | 数量 | label | 说明 |
|---|---|---|---|
| 显性情绪句子 (normal) | 1,356 条 | 1 | 含明确情绪词汇 |
| 隐含情绪句子 (invisible) | 520 条 | 1 | 无情绪词但有隐含情绪 |
| 正面情绪句子 (positive) | 137 条 | 2 | 正面情绪表达 |
| 中性句子 (neutral) | 4,202 条 | 0 | 无情绪表达 |
| 小计 | 6,284 条 | 9 个关键词 |
| 数量 | |
|---|---|
| 总计 | 14,288 条 |
| 类别 | 精确率 | 召回率 | F1 |
|---|---|---|---|
| 中性 | 96% | 98% | 97% |
| 负面 | 95% | 93% | 94% |
| 正面 | 87% | 90% | 89% |
| 总体准确率 | 96% |
- 平台:小红书(Xiaohongshu / RED)
- 采集范围:基于维度 1(身份锚点)和维度 2(周期节律)设计的 26 个定向关键词
- 维度 1 关键词(17 个):准高三、准初三、高三党、初三党、复读生、住校生、住宿生、走读生、理科生、文科生、美术生、体育生、学渣、学霸、卷王、小透明、班干部
- 维度 2 关键词(9 个):月考、周测、摸底考、开学考、一模、二模、百日誓师、发成绩单、晚自习
- 内容类型:帖子标题、正文、评论,句子级拆分
- 采集方式:DrissionPage 模拟真人浏览,保留原始语言风格
| 字段 | 类型 | 说明 | 取值示例 |
|---|---|---|---|
Keyword |
str | 采集关键词 | 准高三 |
Note_ID |
str | 原帖 ID | 69d9f944... |
Source |
str | 来源类型 | title / content / comment |
Sentence |
str | 句子文本 | 快中考了这种成绩咋办 |
label |
int | 三分类标签 | 0=中性, 1=负面情绪, 2=正面情绪 |
隐含情绪 |
str | 情绪类别 | 焦虑/无助/自卑/委屈/愤怒/孤独/正面/中性 |
情绪动机 |
str | 情绪来源 | 学业/人际/家庭/未来/自我/身体/生活 |
身份锚点维度:
Keyword,Source,Sentence,label,隐含情绪,情绪动机
准初三,content,快中考了这种成绩咋办🥹🥹,1,焦虑,学业
住宿生,comment,我去我感冒一个多星期了导员不给请假一直硬抗着,1,委屈,身体
复读生,comment,复读生和应届生同分同录无隐形限制,0,中性,无
学渣,comment,我成绩其实还行但再这个态度我大概能看到自己以后的成绩了,1,焦虑,学业
体育生,comment,体育生的快乐就是这么简单,2,正面,生活周期节律维度:
Keyword,Source,Sentence,隐含情绪,情绪动机,置信度
月考,comment,月考前一天晚上才开始复习真的来不及了,焦虑,学业,0.9
百日誓师,comment,百日誓师的时候全班都哭了,中性,无,0.8
晚自习,comment,晚自习被老师抓到看小说直接没收了,委屈,人际,0.85
发成绩单,comment,成绩单发下来那一刻感觉世界都安静了,焦虑,学业,0.9SCAYS v1.0 发布的是基于小红书的初始语料和基础标注。以下是后续的完整规划:
-
扩大数据规模:从 8,000 条扩展到 14,000+ 条✅ 已完成(v1.2,14,288 条) -
增加采集关键词:覆盖维度 2(周期节律)的 9 个关键词✅ 已完成 - 继续扩展:覆盖维度 3-7 的关键词,目标 30,000+ 条
- 完善隐含情绪标注:引入 LLM 辅助 + 人工双审校,提高标注质量
-
发布 BERT 三分类模型(验证集准确率 92%)✅ 已更新(准确率 96%)
- 七维情境标注落地:为每条句子标注所属维度和子标签(而不仅仅是情绪类型)
- 多平台扩展:从小红书扩展到 B 站评论区、QQ 空间等青少年活跃平台
- 动态词库:建立青少年亚文化热词的持续更新机制,跟踪语义漂移
- 对比表:发布与主流中文情感数据集的系统性 benchmark 对比
- 多模态融合:结合表情包、短视频配乐等非文本信息
- 情感溯源(Emotion Tracing):不只判断"有没有情绪",而是推理"情绪从哪来"——基于七维情境的因果链条
- 垂直领域微调模型:针对中国青少年特有的社会压力(学业、亲子关系、校园人际)发布专用的情感分析模型
- 跨学科应用接口:为心理学和社会学研究者提供标准化的特征提取工具
现有中文情感数据集普遍存在四个结构性缺陷。SCAYS 针对每一个都给出了明确的对策:
中文情感分析领域不缺数据集(微博、电商评论、新闻),但 专门面向青少年群体 的几乎没有。模型训练用的是成年人的表达方式,却被拿去分析青少年的话——青少年特有的话语体系("emo""发疯文学""小镇做题家""吃谷吃土")和特定压力场景(月考、住校、被查手机、早恋被抓)在通用数据集中几乎不存在。
SCAYS 的对策:从零构建一个专门面向中国初高中生的情感语料库,采集关键词全部来自青少年的真实话语体系和生活场景。
传统数据集的工作流程是:抓数据 → 标正面/负面/中性 → 结束。数据来源是扁平的,标注也是扁平的。一句话脱离了说话人的身份、所处阶段和面对的关系,情绪标签就只是一个无根的判断。
SCAYS 的对策:先建立七维情境框架 → 按维度关键词定向采集 → 标注情绪类型 + 情绪动机 + 情境维度。数据从源头就带有结构化的情境信息。
在社交媒体上,用户很少主动声明自己的身份。一条帖子几乎不会直接写明自己的年级、学校类型——但它可能会说出一些只有特定身份才会经历的场景。传统数据集只能看到这句话本身,无法锚定说话人的身份,也就无法判断同一句话在不同人嘴里意味着什么。
SCAYS 的对策:七维框架让维度之间可以互相推导、补全缺失信息。日常作息的描述可以推导学校类型,学科关键词可以推导分科方向,语气词可以推导长期状态。即使用户没有明确表达身份,也能通过已知维度推导出缺失的情境。(详见上方 七维不只是坐标,还是互相推导的依据)
青少年的语言是所有年龄段中变化最快的。一个词在半年内可能完全反转含义——亚文化圈层的"黑话"不断向主流扩散,语义也随之漂移。传统数据集是静态的快照——采集完就不管了,遇到新的亚文化表达要么误判,要么直接忽略。
SCAYS 的对策:追踪热词演化,建立动态词库更新机制。数据集不是一次性交付品,而是持续跟踪青少年话语体系的活文档。
| 问题 | 传统数据集 | SCAYS |
|---|---|---|
| 目标人群 | 通用(成年人为主) | 专门面向中国初高中生 |
| 情境信息 | 无——采集阶段就丢失了 | 七维情境框架,从源头带入 |
| 身份锚定 | 不知道谁在说话 | 七维互相推导,补全缺失身份 |
| 情绪粒度 | 正/负/中 三分类 | 三分类(正面/负面/中性)+ 焦虑/无助/自卑/委屈/愤怒/孤独等细粒度标签 |
| 语义消歧 | 难以识别反讽、自嘲 | 通过身份和关系情境判定真实意图 |
| 语义漂移 | 静态词库,易过时 | 通过亚文化维度持续跟踪,动态更新 |
| 应用深度 | 知道"他不开心" | 知道"他因为偏科被分到普通班,觉得努力没用,所以不开心" |
解决这四个问题之后,同一句话在不同的维度坐标组合里意味着完全不同的事。以 "不想上学了" 为例:
| 维度组合 | 情绪 | 风险等级 |
|---|---|---|
| 周期=假期最后一天 + 周期=作业没写完 | 焦虑 | 低(普遍性) |
| 关系=被全校通报 + 身份=住校生 | 羞耻/愤怒 | 中(需关注) |
| 关系=长期被孤立 + 关系=家长不理解 + 生长=长期失眠 | 绝望 | 高(需干预) |
正面情绪同理。"我考了全班第一":
| 维度组合 | 情绪 | 意义 |
|---|---|---|
| 身份=学霸 + 周期=周测 | 平淡 | 符合预期 |
| 身份=学渣 + 周期=一模 + 关系=同辈比较 | 强烈的喜悦和自我证明 | 身份逆转,情绪意义很大 |
没有情境,模型只能给出一个"负面"或"正面"标签。有了四个问题的解决方案,才能判断同一句话在不同坐标下的真实含义。
对于 AI 模型:提供带有完整情境信息的训练数据,显著提升青少年场景下的情感识别精度——尤其是隐含情绪。
对于跨学科研究:为心理学和社会学研究者提供可量化的特征体系,将社交媒体语言数据系统性地转化为青少年生存状态的研究素材。
对于早期识别与危机预防:通过情境维度的组合分析,在情绪累积阶段就识别需要关注的个体——无论是学校的心理辅导系统、互联网平台的内容安全机制,还是心理危机热线的主动筛查,都能从日常语言表达中捕捉到风险信号,而不是等到危机发生后才介入。
Python >= 3.8
torch >= 1.13
transformers >= 4.20
pandas
scikit-learngit clone https://github.com/LexuanWang-Michelle/SCAYS.git
cd SCAYS
pip install -r requirements.txtimport pandas as pd
# 加载某个维度的数据
identity_normal = pd.read_csv("data/identity/normal.csv")
identity_invisible = pd.read_csv("data/identity/invisible_labeled.csv")
print(f"身份锚点维度: {len(identity_normal) + len(identity_invisible)} 条")
event_normal = pd.read_csv("data/event/normal.csv")
event_invisible = pd.read_csv("data/event/invisible_labeled.csv")
print(f"周期节律维度: {len(event_normal) + len(event_invisible)} 条")
# 加载 BERT 训练集(合并所有维度)
bert_df = pd.read_csv("data/bert训练集.csv")
print(bert_df["label"].value_counts())
# 0 (中性): 9254
# 1 (负面): 5034python scripts/bert_3class.py --trainpython scripts/bert_3class.py --predictSCAYS/
├── data/ # 📊 数据文件(按维度分目录)
│ ├── identity/ # 维度1:身份锚点 (8,004 条)
│ │ ├── normal.csv # 显性情绪句子 (2,172 条)
│ │ └── invisible_labeled.csv # 隐含情绪标注 (5,832 条)
│ ├── event/ # 维度2:周期节律 (6,284 条)
│ │ ├── normal.csv # 显性情绪句子 (1,356 条)
│ │ └── invisible_labeled.csv # 隐含情绪标注 (4,928 条)
│ └── bert训练集.csv # BERT 训练集 (14,288 条,合并所有维度)
├── scripts/ # 🐍 代码脚本
│ ├── bert_3class.py # BERT 三分类训练/预测
│ ├── xhs身份爬取1.py # 小红书数据采集
│ ├── filter_emotion.py # 情绪词匹配与分流
│ ├── label_invisible.py # 隐含情绪标注
│ ├── merge_review.py # 人工审核合并
│ └── remove_usernames.py # 用户名脱敏
├── README.md # 📝 项目说明(中文)
├── README_EN.md # 项目说明(English)
├── SCAYS项目介绍.md # 项目详细介绍
├── requirements.txt # ⚙️ Python 依赖
└── LICENSE # CC BY-NC-SA 4.0
小红书原始帖子
↓ DrissionPage 模拟真人浏览采集(26 个关键词,覆盖 2 个维度)
帖子级数据
↓ 句子级拆分(标题 / 正文 / 评论)
句子级语料
↓ 去重 + 去广告 + 用户名脱敏
↓ 按维度分目录存储
│
├── identity/(维度1:身份锚点,17 个关键词)
│ ├── normal.csv (2,172 条 → 显性负面)
│ └── invisible_labeled.csv (5,832 条)
│ ├── 隐含负面 (514 条) + 正面 (173 条) + 中性 (5,052 条)
│
└── event/(维度2:周期节律,9 个关键词)
├── normal.csv (1,356 条 → 显性负面)
└── invisible_labeled.csv (4,928 条)
├── 隐含负面 (520 条) + 正面 (137 条) + 中性 (4,202 条)
↓ 合并所有维度 → bert训练集.csv (14,288 条)
↓ BERT 三分类训练 → 准确率 96%
- 所有数据均来自公开可访问的社交媒体内容
- 已进行 用户名脱敏 处理,不包含任何个人身份信息
- 本数据集仅用于 学术研究 目的,不得用于商业监控或用户画像
- 如发现数据中包含可识别个人信息,请联系我们删除
如果本数据集对你的研究有帮助,请引用:
@misc{scays2026,
title={SCAYS: Strong-Context Annotation for Youth Sentiment},
author={Yang Chao},
year={2026},
howpublished={\url{https://github.com/LexuanWang-Michelle/SCAYS}},
note={A deep-context Chinese adolescent sentiment corpus from Xiaohongshu}
}本数据集采用 CC BY-NC-SA 4.0 许可证发布。
- ✅ 学术研究使用
- ✅ 标注方法参考
- ❌ 商业用途
- ❌ 用户监控/画像
SCAYS 是一个活的基座。我们需要:
- 数据矿工:挖掘深埋在网络角落的原生情绪。
- 标注专家:用你的直觉与 AI 协同,定义下一个潮流标签。
- 开发者:在 SCAYS 基础上跑出中文青少年情感分析的新 SOTA。
- 数据来源:小红书
- 基础模型:BERT-base-Chinese
- 采集工具:DrissionPage