AnonJD/PrivacyAI
GitHub: AnonJD/PrivacyAI
专注于教育数据中 PII 的检测与匿名化,利用 AI 方法提升去标识化效果。
Stars: 10 | Forks: 1
# 增强教育数据中个人身份信息去标识化
[](https://arxiv.org/abs/2501.09765)
## 0. 数据集
### CRAPII(Cleaned Repository of Annotated PII)
- **Kaggle 数据集**: https://www.kaggle.com/datasets/langdonholmes/cleaned-repository-of-annotated-pii/data
- **论文**: https://educationaldatamining.org/edm2024/proceedings/2024.EDM-posters.88/index.html
- **引用**:
Holmes, L., Crossley, S. A., Wang, J., & Zhang, W. (2024). *Cleaned Repository of Annotated PII*. Proceedings of the 17th International Conference on Educational Data Mining (EDM).
### TSCC
要访问 TSCC 数据集,请参阅论文(包含申请数据的说明):
https://ecp.ep.liu.se/index.php/sltc/article/view/575
## 1. 准备数据
下载以下文件并将其放置在 `data/` 目录中:
- `obfuscated_data_06.json`
- `pii_true_entities.csv`
- `original_transcripts.txt`
- `placeholder_locations_new.txt`
## 2. 数据集创建
从 CRAPII 创建 **基础训练集**、**验证器训练集** 和 **测试集**:
```
python mk_train.py
```
## 3. 在 CRAPII 数据集上进行推理
### 3.1 Presidio
使用 Presidio(`en_core_web_lg` 和 `en_core_web_trf`)在 **测试集** 上运行推理:
```
python presidio_inference.py lg
python presidio_inference.py trf
```
### 3.2 Azure AI 语言
在 CRAPII **测试集** 上运行 Azure 模型:
- 运行 `azure_inference.ipynb` 中的所有单元格
### 3.3 提示式 GPT-4o-mini
打开并运行以下所有单元格:
- `prompted_gpt_inference.ipynb`
### 3.4 微调后的 GPT-4o-mini
在 CRAPII **基础训练集** 上进行微调:
- 运行 `ft_gpt_training.ipynb` 中的所有单元格
然后在 CRAPII **测试集** 上进行评估:
- 运行 `ft_gpt_inference.ipynb` 中的所有单元格
### 3.5 验证器设置
创建数据集并训练验证器模型:
- 运行 `verifier_training.ipynb` 中的所有单元格
然后在 **测试集** 上执行推理:
- 运行 `verifier_inference.ipynb` 中的所有单元格
## 4. TSCC 数据集
创建并拆分 TSCC 数据集为训练/测试集:
```
python TSCC_dataset_creation.py
```
在 TSCC 训练集上微调 GPT-4o-mini:
- 运行 `gpt_ft_tscc.ipynb` 中的所有单元格
在 TSCC 上运行实验:
- 执行所有以 `TSCC` 开头的笔记本
## 5. 论文
如果使用本仓库,请引用我们的论文:
**arXiv:** https://arxiv.org/abs/2501.09765
## 许可证
本项目根据 MIT 许可证授权——详情见 [许可证](LICENSE) 文件。
标签:Apex, Azure AI Language, EDM, GPT-4o-mini, NoSQL, PII脱敏, Presidio, 人工智能, 命名实体识别, 微调模型, 教育数据, 教育数据挖掘, 数据匿名化, 数据脱敏, 数据隐私保护, 数据集CRAPII, 数据集TSCC, 文本处理, 机器学习, 深度学习, 用户模式Hook绕过, 逆向工具, 隐私增强技术, 验证器模型