🚀 医疗笔记去标识化RoBERTa模型
本项目是一个经过微调的RoBERTa模型,专门用于医疗笔记的去标识化处理。它能够准确识别并处理医疗笔记中的受保护健康信息(PHI),有效保护患者隐私。
🚀 快速开始
你可以在以下链接查看模型的工作演示(使用模型预测对医疗笔记进行去标识化):Medical-Note-Deidentification。
关于如何使用此模型进行前向传播的步骤可参考:Forward Pass。
简要步骤如下:
- 对数据集进行句子分割(模型会将句子聚合回笔记级别)和分词。
- 使用模型的预测函数收集预测结果(即每个标记的预测)。
- 此外,模型的预测结果可用于从原始笔记/文本中移除PHI。
✨ 主要特性
- 模型类型:基于RoBERTa [Liu et al., 2019] 进行微调的模型,用于医疗笔记的去标识化。
- 序列标注:模型经过训练,可预测受保护健康信息(PHI/PII)实体(跨度)。受保护健康信息类别列表由 HIPAA 提供。
- 标记分类:一个标记可以被分类为非PHI或11种PHI类型之一。通过使用BILOU标记将标记预测聚合为跨度。
- 训练标签及详情:用于训练的PHI标签和其他详细信息可参考:Annotation Guidelines。
- 更多使用信息:关于如何使用此模型、数据格式和其他有用信息,可在GitHub仓库中查看:Robust DeID。
📦 安装指南
文档未提及安装步骤,暂不提供。
💻 使用示例
文档未提供代码示例,暂不提供。
📚 详细文档
数据集
本模型使用了I2B2 2014 [Stubbs and Uzuner, 2015] 数据集进行训练。以下是数据集的详细信息:
属性 |
详情 |
训练集 |
包含790条笔记,各PHI标签数量及占比如表格所示。 |
测试集 |
包含514条笔记,各PHI标签数量及占比如表格所示。 |
|
I2B2(训练集 - 790条笔记) |
|
I2B2(测试集 - 514条笔记) |
|
PHI标签 |
数量 |
百分比 |
数量 |
百分比 |
日期(DATE) |
7502 |
43.69 |
4980 |
44.14 |
医护人员(STAFF) |
3149 |
18.34 |
2004 |
17.76 |
医院(HOSP) |
1437 |
8.37 |
875 |
7.76 |
年龄(AGE) |
1233 |
7.18 |
764 |
6.77 |
地点(LOC) |
1206 |
7.02 |
856 |
7.59 |
患者(PATIENT) |
1316 |
7.66 |
879 |
7.79 |
电话(PHONE) |
317 |
1.85 |
217 |
1.92 |
标识符(ID) |
881 |
5.13 |
625 |
5.54 |
患者组织(PATORG) |
124 |
0.72 |
82 |
0.73 |
电子邮件(EMAIL) |
4 |
0.02 |
1 |
0.01 |
其他PHI(OTHERPHI) |
2 |
0.01 |
0 |
0 |
总计 |
17171 |
100 |
11283 |
100 |
训练过程
关于此模型的训练步骤可参考:Training。“model_name_or_path” 设置为:“roberta-large”。具体训练过程如下:
- 使用spacy的en_core_sci_sm句子分割器对数据集进行句子分割。
- 使用基于spacy的en_core_sci_sm分词器构建的自定义分词器对数据集进行分词。
- 对于每个句子,在左侧添加32个标记(来自前一个句子),在右侧添加32个标记(来自下一个句子)。
- 添加的标记不用于学习,即不在这些标记上计算损失,它们仅作为额外的上下文信息。
- 每个序列最多包含128个标记(包括添加的32个标记)。较长的序列会被分割。
- 使用基于BILOU符号的标记级标签对经过句子分割和分词的数据集进行模型训练。
- 模型是从预训练的RoBERTa模型进行微调得到的。
训练细节
- 输入序列长度:128
- 批量大小:32(16,进行2次梯度累积步骤)
- 优化器:AdamW
- 学习率:5e-5
- 丢弃率:0.1
🔧 技术细节
模型原理
本模型基于RoBERTa架构,通过微调使其适用于医疗笔记的去标识化任务。在训练过程中,模型学习预测受保护健康信息(PHI)实体的跨度,利用BILOU标记将标记预测聚合为有意义的实体。
数据处理
使用spacy的相关工具进行句子分割和分词,并添加额外的上下文标记以提高模型的理解能力。同时,对较长的序列进行分割以适应模型的输入要求。
训练优化
采用AdamW优化器和特定的学习率、丢弃率等参数进行训练,以提高模型的性能和泛化能力。
📄 许可证
本项目采用MIT许可证。
常见问题
如果你有任何问题,请在仓库中发布GitHub问题:Robust DeID。