nbailab-base-ner-scandi项目介绍
项目背景
nbailab-base-ner-scandi项目是一款用于斯堪的纳维亚语言(丹麦语、挪威语两种标准书写形式Bokmål和Nynorsk、瑞典语、冰岛语和法罗语)实体识别的模型,它是基于NbAiLab/nb-bert-base的精细调整版本。该模型通过整合多个数据集进行训练,包括DaNE、NorNE、SUC 3.0以及WikiANN数据集中的冰岛语和法罗语部分。此外,由于预训练模型同样接触了英语数据,该模型对英文句子也能进行合理预测。
实体识别标签
模型可以识别以下四种类型的实体:
PER
(人名):如Birgitte或Mohammed。LOC
(地点):如Tyskland或Djurgården。ORG
(组织):如Bunnpris或Landsbankinn。MISC
(其他):如Mona Lisa。
快速上手
用户可以通过Python脚本非常方便地使用此模型进行实体识别:
from transformers import pipeline
import pandas as pd
ner = pipeline(task='ner',
model='saattrupdan/nbailab-base-ner-scandi',
aggregation_strategy='first')
result = ner('Borghild kjøper seg inn i Bunnpris')
df_result = pd.DataFrame.from_records(result)
print(df_result)
上面的代码会识别出句子中“Borghild”为人名(PER),“Bunnpris”为组织名(ORG)。
性能表现
在与当前先进技术的对比中,nbailab-base-ner-scandi表现出了卓越的准确性。根据斯堪的纳维亚不同NER测试数据集,该模型在微F1指标上优于现有多种模型,且尺寸更小,速度更快。以下是与其他模型在性能及速度上的对比:
模型 | DaNE | NorNE-NB | NorNE-NN | SUC 3.0 | WikiANN-IS | WikiANN-FO | 平均 | 每秒处理样本数 | 模型大小 |
---|---|---|---|---|---|---|---|---|---|
nbailab-base-ner-scandi | 87.44 ± 0.81 | 91.06 ± 0.26 | 90.42 ± 0.61 | 88.37 ± 0.17 | 88.61 ± 0.41 | 90.22 ± 0.46 | 89.08 ± 0.46 | 4.16 ± 0.18 | 676 MB |
chcaa/da_dacy_large_trf | 83.61 ± 1.18 | 78.90 ± 0.49 | 72.62 ± 0.58 | 53.35 ± 0.17 | 50.57 ± 0.46 | 51.72 ± 0.52 | 63.00 ± 0.57 | 0.65 ± 0.01 | 2,090 MB |
训练过程
在训练过程中,模型使用了一系列的超参数来优化其性能,包括:
- 学习率:2e-05
- 训练批次大小:8
- 验证批次大小:8
- 初始化种子:42
- 梯度累积步骤:4
- 总训练批次大小:32
- 优化器:Adam(betas=(0.9,0.999),epsilon=1e-08)
- 学习率调度器类型:线性
- 学习率调度器预热步骤:90135.9
- 训练周期数:1000
在不同的训练周期中,模型的损失逐渐降低,验证损失随周期降低,Micro F1指标不断提高,显示了训练的有效性。
使用的框架版本
- Transformers 4.10.3
- Pytorch 1.9.0+cu102
- Datasets 1.12.1
- Tokenizers 0.10.3
nbailab-base-ner-scandi项目为斯堪的纳维亚语言的自然语言处理中实体识别任务提供了一种准确、高效的解决方案,它不仅在精度上胜过了大多数同类模型,同时在处理速度上也有显著的优势。