
【C0001】五种BERT模型识别讽刺句子
项目概述
本项目基于 BERT(Bidirectional Encoder Representations from Transformers) 模型,实现对 Reddit 对话中的讽刺原因子句(Sarcasm Cause Clause)检测 任务。
该任务属于 对话级二分类问题(Dialogue-level Binary Classification),目标是识别 Reddit 对话中是否存在“讽刺原因子句”。
核心思路
项目设计并对比了 5 种不同的 BERT 模型架构,用于分析不同结构对任务性能的影响。
1. BERT-Base-Joint
将上下文(Context)与讽刺句(Target Clause)进行联合编码
使用单一 BERT 编码器进行整体建模
优点:能够充分捕获上下文与目标句之间的语义交互
2. BERT-Base-Pipeline
分别对上下文与讽刺句进行编码
拼接两个编码后的特征向量
通过分类层进行预测
优点:结构清晰,模块化程度高
3. BERT-Pooling
在 Pipeline 模型基础上增加交互特征
引入池化机制增强特征表达
提升上下文与目标句之间的交互建模能力
4. BERT-ESIM
基于增强语义推理模型(Enhanced Sequential Inference Model)
强调双向交互和语义推理能力
更适合捕获复杂语义关系
5. BERT-Base-Pipeline (Domain)
在 Pipeline 模型基础上加入领域嵌入(Domain Embedding)
强化模型对 Reddit 语域特征的建模能力
提升领域适应能力
使用流程
1. 环境配置
需安装以下依赖库:
transformers
torch
scikit-learn
numpy
tqdm
示例安装命令:
pip install transformers torch scikit-learn numpy tqdm
参考文献:Qiudan Li; , David Jingjun Xu; , Haoda Qian, Linzi Wang, Minjie Yuan, Daniel Dajun Zeng (2024) A Fusion Pretrained Approach for Identifying the Cause of Sarcasm Remarks. INFORMS Journal on Computing 37(2):465-479.