🚀 用于GermEval 2014命名实体识别的SpanMarker模型
本项目是一个基于 SpanMarker 的模型,该模型在 GermEval 2014命名实体识别数据集 上进行了微调。
GermEval 2014命名实体识别共享任务基于一个新的德语命名实体标注数据集,该数据集具有以下特点:数据从德语维基百科和新闻语料库中采样,以引用集合的形式呈现。数据集涵盖了超过31,000个句子,对应超过590,000个标记。命名实体识别标注采用了NoSta - D指南,该指南扩展了图宾根树库指南,使用四个主要的命名实体类别及其子结构,并对命名实体之间的嵌套关系进行标注,例如 [ORG FC Kickers [LOC Darmstadt]]
。
该数据集中标注并需要识别的命名实体共有12个类别:四个主要类别 PER
(人物)、LOC
(地点)、ORG
(组织)和 OTH
(其他),以及通过引入两个细粒度标签划分的子类:-deriv
标记命名实体的派生词,如 “englisch”(“英语的”);-part
标记包含命名实体作为子序列的复合词,如 deutschlandweit(“全德国范围的”)。
✨ 主要特性
- 基于SpanMarker架构,在GermEval 2014命名实体识别数据集上进行微调。
- 使用 GELECTRA Large 模型作为骨干网络。
- 提供了训练和评估脚本,方便复现实验结果。
📦 安装指南
文档中未提及具体安装步骤,故跳过此章节。
💻 使用示例
基础用法
from span_marker import SpanMarkerModel
model = SpanMarkerModel.from_pretrained("stefan-it/span-marker-gelectra-large-germeval14")
entities = model.predict("Jürgen Schmidhuber studierte ab 1983 Informatik und Mathematik an der TU München .")
📚 详细文档
微调过程
我们使用了与 "German's Next Language Model" 论文中相同的超参数,并以发布的 GELECTRA Large 模型作为骨干网络。
评估使用了SpanMarker内部的评估代码,该代码使用 seqeval
库。此外,我们还使用了官方的GermEval 2014评估脚本对结果进行双重检查。nereval.py
脚本的备份可以在 这里 找到。
我们微调了5个模型,并上传了在开发集上F1分数最高的模型。开发集上的结果(括号内为开发集分数,斜杠后为测试集分数)如下:
模型 |
运行1 |
运行2 |
运行3 |
运行4 |
运行5 |
平均 |
GELECTRA Large (5e-05) |
(89.99) / 89.08 |
(89.55) / 89.23 |
(89.60) / 89.10 |
(89.34) / 89.02 |
(89.68) / 88.80 |
(89.63) / 89.05 |
最佳模型在最终测试集上的得分为89.08%:
1. 严格的综合评估(官方):
准确率: 99.26%;
精确率: 89.01%;
召回率: 89.16%;
F1分数: 89.08
脚本说明
用于 训练 和 评估 的脚本也已提供。
🔧 技术细节
本模型使用GELECTRA Large作为骨干网络,在GermEval 2014命名实体识别数据集上进行微调。评估时使用了SpanMarker内部的评估代码和官方的评估脚本进行双重检查,以确保结果的准确性。通过微调5个模型并选择在开发集上F1分数最高的模型,最终在测试集上取得了较好的效果。
📄 许可证
本项目采用MIT许可证。
属性 |
详情 |
模型类型 |
SpanMarker微调模型 |
训练数据 |
GermEval 2014命名实体识别数据集 |