🚀 ScandiNER - 斯堪的納維亞語言命名實體識別模型
ScandiNER是一款專為斯堪的納維亞語言設計的命名實體識別模型,能夠精準識別丹麥語、挪威語、瑞典語、冰島語和法羅語中的人名、地名、組織機構名等實體,同時在英語句子上也有不錯的表現。
你可以點擊這裡查看該模型的演示。
🚀 快速開始
你可以在腳本中按如下方式使用該模型:
基礎用法
>>> 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')
>>> pd.DataFrame.from_records(result)
entity_group score word start end
0 PER 0.981257 Borghild 0 8
1 ORG 0.974099 Bunnpris 26 34
✨ 主要特性
- 多語言支持:支持丹麥語、挪威語(書面挪威語和新挪威語)、瑞典語、冰島語和法羅語,對英語句子也有一定的識別能力。
- 精準識別:能夠預測人物(
PER
)、地點(LOC
)、組織(ORG
)和其他雜項(MISC
)四類實體。
- 性能優越:相比之前的先進模型,該模型不僅準確率高,而且體積更小、速度更快。
📦 安裝指南
文檔未提及具體安裝步驟,故跳過該章節。
💻 使用示例
基礎用法
>>> 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')
>>> pd.DataFrame.from_records(result)
entity_group score word start end
0 PER 0.981257 Borghild 0 8
1 ORG 0.974099 Bunnpris 26 34
高級用法
文檔未提及高級用法代碼示例,故跳過該部分。
📚 詳細文檔
識別實體類型
該模型將預測以下四種實體:
標籤 |
名稱 |
描述 |
PER |
人物 |
人物的名字(例如,Birgitte 和 Mohammed) |
LOC |
地點 |
地點的名稱(例如,Tyskland 和 Djurgården) |
ORG |
組織 |
組織的名稱(例如,Bunnpris 和 Landsbankinn) |
MISC |
雜項 |
其他類型的命名實體(例如,Ūjķnustu pund 和 Mona Lisa) |
性能表現
以下是該模型在斯堪的納維亞命名實體識別測試數據集上的Micro-F1性能,並與當前的先進模型進行了比較。這些模型在測試集及其9個自舉版本上進行了評估,此處顯示的是平均值和95%置信區間:
模型ID |
DaNE |
NorNE-NB |
NorNE-NN |
SUC 3.0 |
WikiANN-IS |
WikiANN-FO |
平均 |
saattrupdan/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 |
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 |
RecordedFuture/Swedish-NER |
64.09 ± 0.97 |
61.74 ± 0.50 |
56.67 ± 0.79 |
66.60 ± 0.27 |
34.54 ± 0.73 |
42.16 ± 0.83 |
53.32 ± 0.69 |
Maltehb/danish-bert-botxo-ner-dane |
69.25 ± 1.17 |
60.57 ± 0.27 |
35.60 ± 1.19 |
38.37 ± 0.26 |
21.00 ± 0.57 |
27.88 ± 0.48 |
40.92 ± 0.64 |
Maltehb/-l-ctra-danish-electra-small-uncased-ner-dane |
70.41 ± 1.19 |
48.76 ± 0.70 |
27.58 ± 0.61 |
35.39 ± 0.38 |
26.22 ± 0.52 |
28.30 ± 0.29 |
39.70 ± 0.61 |
radbrt/nb_nocy_trf |
56.82 ± 1.63 |
68.20 ± 0.75 |
69.22 ± 1.04 |
31.63 ± 0.29 |
20.32 ± 0.45 |
12.91 ± 0.50 |
38.08 ± 0.75 |
除了高精度之外,它還比之前的先進模型明顯更 小 且更 快:
模型ID |
每秒樣本數 |
模型大小 |
saattrupdan/nbailab-base-ner-scandi |
4.16 ± 0.18 |
676 MB |
chcaa/da_dacy_large_trf |
0.65 ± 0.01 |
2,090 MB |
訓練過程
訓練超參數
訓練期間使用了以下超參數:
- 學習率:2e-05
- 訓練批次大小:8
- 評估批次大小:8
- 隨機種子:42
- 梯度累積步數:4
- 總訓練批次大小:32
- 優化器:Adam,β=(0.9,0.999),ε=1e-08
- 學習率調度器類型:線性
- 學習率調度器熱身步數:90135.90000000001
- 訓練輪數:1000
訓練結果
訓練損失 |
輪數 |
步數 |
驗證損失 |
Micro F1 |
Micro F1(不包括雜項) |
0.6682 |
1.0 |
2816 |
0.0872 |
0.6916 |
0.7306 |
0.0684 |
2.0 |
5632 |
0.0464 |
0.8167 |
0.8538 |
0.0444 |
3.0 |
8448 |
0.0367 |
0.8485 |
0.8783 |
0.0349 |
4.0 |
11264 |
0.0316 |
0.8684 |
0.8920 |
0.0282 |
5.0 |
14080 |
0.0290 |
0.8820 |
0.9033 |
0.0231 |
6.0 |
16896 |
0.0283 |
0.8854 |
0.9060 |
0.0189 |
7.0 |
19712 |
0.0253 |
0.8964 |
0.9156 |
0.0155 |
8.0 |
22528 |
0.0260 |
0.9016 |
0.9201 |
0.0123 |
9.0 |
25344 |
0.0266 |
0.9059 |
0.9233 |
0.0098 |
10.0 |
28160 |
0.0280 |
0.9091 |
0.9279 |
0.008 |
11.0 |
30976 |
0.0309 |
0.9093 |
0.9287 |
0.0065 |
12.0 |
33792 |
0.0313 |
0.9103 |
0.9284 |
0.0053 |
13.0 |
36608 |
0.0322 |
0.9078 |
0.9257 |
0.0046 |
14.0 |
39424 |
0.0343 |
0.9075 |
0.9256 |
框架版本
- Transformers 4.10.3
- Pytorch 1.9.0+cu102
- Datasets 1.12.1
- Tokenizers 0.10.3
🔧 技術細節
該模型是 NbAiLab/nb-bert-base 的微調版本,用於丹麥語、挪威語(書面挪威語和新挪威語)、瑞典語、冰島語和法羅語的命名實體識別。它在 DaNE、NorNE、SUC 3.0 和 WikiANN 數據集的冰島語和法羅語部分的拼接數據上進行了微調。由於預訓練模型也在英語數據以及斯堪的納維亞語言數據上進行了訓練,因此該模型在英語句子上也能有較好的表現。
📄 許可證
本項目採用MIT許可證。
數據集信息
屬性 |
詳情 |
模型類型 |
斯堪的納維亞語言命名實體識別模型 |
訓練數據 |
DaNE、NorNE、SUC 3.0和WikiANN數據集的冰島語和法羅語部分 |