warfbro's picture
Upload README.md with huggingface_hub
fe9a41e verified
|
Raw
History Blame Contribute Delete
2.37 kB
---
language:
- zh
license: apache-2.0
pipeline_tag: token-classification
tags:
- pytorch
- transformers
- named-entity-recognition
- token-classification
- ner
- ernie
- crf
- chinese-nlp
- person-name-extraction
- financial-documents
library_name: transformers
base_model: nghuyong/ernie-3.0-base-zh
---
# 人名提取 — Human Name Extraction
基于 ERNIE 3.0 + CRF 的中文金融批复人名提取工具。双模型集成架构,差异自动交 LLM 裁定。
## 模型说明
- **底模**:ERNIE 3.0 Base (Chinese),118M 参数
- **架构**:ERNIE 编码器 → Linear(768→3) → CRF (BIO 标注)
- **任务**:从金融监管批复标题中提取人名(B-PER / I-PER)
- **训练数据**:2,530 条正例 + 1,000 条对抗负例(地名/公司名误识别)
### 双模型
| 权重文件 | 说明 |
|----------|------|
| `finetune_best.pt` | 全参数微调(ERNIE 不冻结) |
| `frozen_best.pt` | 冻结 ERNIE + 对抗训练 |
## 快速开始
```bash
pip install torch>=2.4.0 "transformers==4.46.0" pytorch-crf openpyxl pandas "numpy<2"
# 单模型提取
python extract.py input.xlsx output.xlsx
# 双模型集成(差异交 LLM 裁定)
python ensemble_extract.py input.xlsx output.xlsx
```
### 输入格式
xlsx:A 列(标题),L 列(机构名等需在标题中删除的内容)
### 输出
| 列 | 内容 |
|----|------|
| A列 | 原始标题 |
| B列 | 提取人名(`、`分隔) |
| C列 | 方法(`一致`/`LLM裁定`) |
| D列 | 姓名字数 |
## 流水线
```
标题 → L列机构名剔除 → 模型推理 → 去等N人 → 英文括号扩展 → 存在性校验 → 输出
```
## LLM 配置(集成裁定用)
项目根目录 `llm` 文件,OpenAI 兼容格式:
```
api_key=sk-xxxxxxxx
api_url=https://api.deepseek.com/chat/completions
model=deepseek-chat
```
## 文件结构
```
├── config.py # 全局配置
├── model.py # 模型定义 (ErnieCRF)
├── extract.py # 单模型提取入口
├── ensemble_extract.py # 双模型集成提取
├── llm_resolver.py # LLM API 调用
├── rule.py # 规则提取(备选)
├── finetune_best.pt # 模型A 权重
├── frozen_best.pt # 模型B 权重
├── llm # LLM 配置模板
└── README.md # 本文件
```