license: bsd-3-clause
language:
- en
pipeline_tag: text-classification
tags:
- psychology
- cognitive distortions
widget:
- text: "我们从小就认识了。"
example_title: "无认知扭曲"
- text: "我居然忘了做这件事,真是个白痴。"
example_title: "个人化归因"
- text: "我觉得自己让别人失望了。"
example_title: "情绪化推理"
- text: "所有医生都傲慢自大,根本不关心病人。"
example_title: "过度概括"
- text: "他们年纪太小不适合听这个。"
example_title: "贴标签"
- text: "她在工作中绝对不能犯任何错误。"
example_title: "应该陈述"
- text: "如果我不能按时完成项目,老板肯定会开除我。"
example_title: "灾难化思维"
- text: "只要我继续努力工作,他们最终会给我加薪。"
example_title: "奖赏谬误"
基于BERT的认知扭曲分类模型
本文档正在开发中。建议用户使用该模型在自己的数据上进行再训练,而非直接作为"开箱即用"解决方案。
问题描述
认知扭曲是指导致负面情绪、行为和信念的偏颇或扭曲思维模式。这些扭曲通常是自动且无意识的,会影响个体对现实的感知和判断能力。
常见认知扭曲类型包括:
- 个人化归因:将超出控制范围的事情归咎于自己
示例:
- 她看我的眼神很奇怪,肯定在评判我
- 我居然犯了这种错误,真是个废物
- 情绪化推理:将主观感受当作客观事实,任由情绪驱动行为
示例:
- 我觉得自己不够好,所以我肯定能力不足
- 他们从不邀请我,肯定不喜欢我
- 过度概括:基于单一事件得出普遍性结论
示例:
- 他从来不听我说话,只会打断我
- 所有人都不在乎我的需求
- 贴标签:根据特定行为给自身或他人贴上极端负面标签
示例:
- 应该陈述:基于对自身或他人不切实际的期望产生的僵化思维
示例:
- 我绝对不能在任何事情上失败
- 他们必须永远把他人需求放在第一位
- 灾难化思维:假设最坏结果并将事态严重放大
示例:
- 这完全是浪费时间,他们永远不可能成功
- 如果得不到晋升,我的职业生涯就完蛋了
- 奖赏谬误:认为每个积极行为都应获得奖励或认可
示例:
- 只要我足够努力,他们就会给我加薪
- 如果他们不认可我的贡献,我就开始消极怠工
模型描述
这是基于英语语料通过掩码语言建模目标预训练的微型BERT变体。BERT原始论文参见此处,代码库参见此仓库。
数据说明
[完善中]
使用示例
单标签分类示例:
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("amedvedev/bert-tiny-cognitive-bias")
model = AutoModelForSequenceClassification.from_pretrained("amedvedev/bert-tiny-cognitive-bias")
inputs = tokenizer("他绝对不能让任何人失望。", return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
predicted_class_id = logits.argmax().item()
model.config.id2label[predicted_class_id]
评估指标
各标签分类表现:
|
精确率 |
召回率 |
F1值 |
无认知扭曲 |
0.84 |
0.74 |
0.79 |
个人化归因 |
0.86 |
0.89 |
0.87 |
情绪化推理 |
0.88 |
0.96 |
0.92 |
过度概括 |
0.80 |
0.88 |
0.84 |
贴标签 |
0.84 |
0.80 |
0.82 |
应该陈述 |
0.88 |
0.95 |
0.91 |
灾难化思维 |
0.88 |
0.86 |
0.87 |
奖赏谬误 |
0.87 |
0.95 |
0.91 |
整体模型表现:
准确率 |
Top-3准确率 |
Top-5准确率 |
精确率 |
召回率 |
F1值 |
0.86±0.04 |
0.99±0.01 |
0.99±0.01 |
0.86±0.04 |
0.85±0.04 |
0.85±0.04 |
参考文献
[完善中]