-
类与上下文定位
• 发生在__init__
构造函数执行期间(初始化阶段) -
关系标签列表解析
self.relation_label_list = ['0', '1']
• 任务类型:二分类关系判断任务
• 应用场景:实体间关系存在性检测(如知识图谱关系分类)
• 标签含义:
• ‘0’ → 无关系/负样本
• ‘1’ → 存在关系/正样本
• 典型用法:在__getitem__中通过self.relation_label_list.index(label_str)
转换为数值张量
- 情感标签列表解析
self.sentiment_label_list = ['0', '1', '2']
• 任务类型:三分类情感分析任务
• 标签体系:
• ‘0’ → 负面情感 (Negative)
• ‘1’ → 中性情感 (Neutral)
• ‘2’ → 正面情感 (Positive)
• 多任务提示:可能同时进行关系检测和情感分析(如电商评论分析:识别产品特征关系+情感极性)
- 技术实现细节
• 标签存储形式:字符串形式存储,通常在数据预处理时转换为整型
• 映射必要性:为PyTorch的CrossEntropyLoss
等损失函数提供类别索引
• 扩展性设计:通过列表维护标签顺序,支持动态添加新标签
• 典型转换逻辑:
# 关系标签转换示例
relation_labels = torch.tensor(
[self.relation_label_list.index(rel) for rel in raw_relations],
dtype=torch.long
)
# 情感标签转换示例
sentiment_labels = torch.tensor(
[self.sentiment_label_list.index(sent) for sent in raw_sentiments],
dtype=torch.long
)
- 多任务架构关联
• 模型输出层:
• 关系分类头:输出维度2(对应2个关系类别)
• 情感分类头:输出维度3(对应3种情感状态)
• 数据样本结构:每个样本可能包含:
{
"text": "这款手机续航强但拍照差",
"relation": "1", # 存在产品属性关系
"sentiment": "0" # 整体负面评价
}
该设计支持灵活的多任务处理,通过分离标签列表实现不同任务的独立配置,适用于需要同时处理多种标注信息的复杂NLP场景。