模型简介
模型特点
模型能力
使用案例
🚀 impresso-project/ner-stacked-bert-multilingual
模型卡片
Impresso NER模型 是一个用于历史文档处理的多语言命名实体识别模型。它基于堆叠式Transformer架构,旨在识别数字化历史文本中的细粒度和粗粒度实体类型,包括姓名、头衔和地点等。
🚀 快速开始
使用以下代码示例开始使用Impresso NER模型:
from transformers import AutoModelForTokenClassification, AutoTokenizer, pipeline
MODEL_NAME = "impresso-project/ner-stacked-bert-multilingual"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
ner_pipeline = pipeline("generic-ner", model=MODEL_NAME, tokenizer=tokenizer, trust_remote_code=True, device='cpu')
sentence = "En l'an 1348, au plus fort des ravages de la peste noire à travers l'Europe, le Royaume de France se trouvait à la fois au bord du désespoir et face à une opportunité. À la cour du roi Philippe VI, les murs du Louvre étaient animés par les rapports sombres venus de Paris et des villes environnantes. La peste ne montrait aucun signe de répit, et le chancelier Guillaume de Nogaret, le conseiller le plus fidèle du roi, portait le lourd fardeau de gérer la survie du royaume."
entities = ner_pipeline(sentence)
print(entities)
示例输出
[
{'type': 'time', 'confidence_ner': 85.0, 'surface': "an 1348", 'lOffset': 0, 'rOffset': 12},
{'type': 'loc', 'confidence_ner': 90.75, 'surface': "Europe", 'lOffset': 69, 'rOffset': 75},
{'type': 'loc', 'confidence_ner': 75.45, 'surface': "Royaume de France", 'lOffset': 80, 'rOffset': 97},
{'type': 'pers', 'confidence_ner': 85.27, 'surface': "roi Philippe VI", 'lOffset': 181, 'rOffset': 196, 'title': "roi", 'name': "roi Philippe VI"},
{'type': 'loc', 'confidence_ner': 30.59, 'surface': "Louvre", 'lOffset': 210, 'rOffset': 216},
{'type': 'loc', 'confidence_ner': 94.46, 'surface': "Paris", 'lOffset': 266, 'rOffset': 271},
{'type': 'pers', 'confidence_ner': 96.1, 'surface': "chancelier Guillaume de Nogaret", 'lOffset': 350, 'rOffset': 381, 'title': "chancelier", 'name': "Guillaume de Nogaret"},
{'type': 'loc', 'confidence_ner': 49.35, 'surface': "Royaume", 'lOffset': 80, 'rOffset': 87},
{'type': 'loc', 'confidence_ner': 24.18, 'surface': "France", 'lOffset': 91, 'rOffset': 97}
]
✨ 主要特性
- 多语言支持:支持法语、德语和英语,适用于多语言历史文本。
- 细粒度和粗粒度实体识别:能够识别多种实体类型,包括人物、组织、产品、时间和地点等。
- 抗OCR噪声:通过堆叠Transformer层,有效减轻历史文档中OCR噪声、拼写变化和非标准语言用法的影响。
📦 安装指南
文档未提及具体安装步骤,可参考Hugging Face的transformers
库安装说明进行安装。
📚 详细文档
模型详情
模型描述
属性 | 详情 |
---|---|
开发团队 | 来自Impresso团队的EPFL。该项目是一个跨学科项目,专注于跨语言、跨时间和跨模态的历史媒体分析。由瑞士国家科学基金会(CRSII5_173719,CRSII5_213585)和卢森堡国家研究基金会(资助编号:17498891)资助。 |
模型类型 | 基于堆叠式BERT的命名实体识别令牌分类模型 |
支持语言 | 法语、德语、英语(支持多语言历史文本) |
许可证 | AGPL v3+ |
微调基础模型 | dbmdz/bert-medium-historic-multilingual-cased |
模型架构
该模型架构由以下组件组成:
- 预训练BERT编码器:以多语言历史BERT作为基础。
- 一到两个Transformer编码器层:堆叠在BERT编码器之上。
- 条件随机场(CRF)解码器层:用于建模标签依赖关系。
- 学习到的绝对位置嵌入:用于更好地处理噪声输入。
这些额外的Transformer层有助于减轻历史文档中OCR噪声、拼写变化和非标准语言用法的影响。整个模型栈针对令牌分类进行端到端微调。
支持的实体类型
该模型支持HIPE - 2020/2022指南中定义的粗粒度和细粒度实体类型。模型的输出格式包括带有上下文和语义细节的结构化预测。每个预测是一个包含以下字段的字典:
{
'type': 'pers' | 'org' | 'loc' | 'time' | 'prod',
'confidence_ner': float, # 置信度得分
'surface': str, # 文本中的表面形式
'lOffset': int, # 起始字符偏移量
'rOffset': int, # 结束字符偏移量
'name': str, # 可选:全名(针对人物)
'title': str, # 可选:头衔(针对人物)
'function': str # 可选:职能(如果检测到)
}
粗粒度实体类型
- pers:人物实体(个人、集体、作者)
- org:组织(行政、企业、新闻机构)
- prod:产品(媒体)
- time:时间表达式(绝对日期)
- loc:地点(城镇、地区、国家、物理设施)
如果文本中存在围绕实体的信息,模型还会返回特定于人物的属性,例如:
name
:规范全名title
:尊称或头衔(例如,“国王”、“总理”)function
:上下文中的角色或职能(如果可用)
模型来源
- 仓库:https://huggingface.co/impresso-project/ner-stacked-bert-multilingual
- 论文:CoNLL 2020
- 演示:Impresso项目
使用场景
直接使用
该模型旨在直接与Hugging Face的pipeline
用于token - classification
,特别是用于历史文本的generic - ner
任务。
下游使用
可用于以下下游任务:
- 历史信息提取
- 传记重建
- 跨历史档案的地点和人物提及检测
不适用场景
- 不适用于社交媒体或现代新闻等领域的当代命名实体识别。
- 未针对无OCR的现代语料库进行优化。
训练详情
训练数据
该模型在Impresso HIPE - 2020数据集上进行训练,该数据集是[HIPE - 2022语料库](https://github.com/hipe - eval/HIPE - 2022 - data)的一个子集,包含丰富注释的OCR转录历史报纸内容。
训练过程
预处理
对OCR内容进行清理和分段。实体类型遵循HIPE - 2020类型学。
训练超参数
- 训练模式:混合精度(fp16)
- 训练轮数:5
- 最大序列长度:512
- 基础模型:
dbmdz/bert-medium-historic-multilingual-cased
- 堆叠Transformer层数:2
速度、大小和时间
- 模型大小:约500MB
- 训练时间:在1个GPU(NVIDIA TITAN X)上约1小时
评估
测试数据
HIPE - 2020的保留部分(法语、德语)
评估指标
- F1分数(微观、宏观)
- 实体级别的精确率/召回率
评估结果
语言 | 精确率 | 召回率 | F1分数 |
---|---|---|---|
法语 | 84.2 | 81.6 | 82.9 |
德语 | 82.0 | 78.7 | 80.3 |
总结
该模型在有噪声的OCR历史内容上表现稳健,支持细粒度实体类型学。
环境影响
- 硬件类型:NVIDIA TITAN X(Pascal,12GB)
- 使用时长:约1小时
- 云服务提供商:瑞士EPFL
- 二氧化碳排放量:约0.022 kg CO₂eq(估计值)
技术规格
模型架构和目标
堆叠式BERT架构,带有支持HIPE类型实体标签的多任务令牌分类头。
计算基础设施
硬件
1个NVIDIA TITAN X(Pascal,12GB)
软件
- Python 3.11
- PyTorch 2.0
- Transformers 4.36
引用
BibTeX:
@inproceedings{boros2020alleviating,
title={Alleviating digitization errors in named entity recognition for historical documents},
author={Boros, Emanuela and Hamdi, Ahmed and Pontes, Elvys Linhares and Cabrera-Diego, Luis-Adri{\'a}n and Moreno, Jose G and Sidere, Nicolas and Doucet, Antoine},
booktitle={Proceedings of the 24th conference on computational natural language learning},
pages={431--441},
year={2020}
}
联系信息
🔧 技术细节
该模型基于堆叠式BERT架构,通过在预训练BERT编码器上堆叠Transformer层,结合条件随机场(CRF)解码器层,实现对历史文档中命名实体的识别。在训练过程中,使用了混合精度训练,以提高训练效率。同时,模型使用学习到的绝对位置嵌入来更好地处理噪声输入。
📄 许可证
该模型使用AGPL v3+许可证。
⚠️ 重要提示
由于该模型是在历史文档上进行训练的,可能会反映出历史偏见和不准确之处。它在当代或非欧洲语言上的性能可能会下降。
💡 使用建议
- 用户应注意历史和排版偏见。
- 考虑进行后处理以过滤OCR噪声导致的误报。








