模型:

HooshvareLab/roberta-fa-zwnj-base-ner

英文

RobertaNer

该模型是针对以混合NER数据集为基础的命名实体识别(NER)任务进行微调的,该数据集是从 ARMAN PEYMA WikiANN 中收集的,涵盖了十种实体类型:

  • 日期(DAT)
  • 事件(EVE)
  • 设施(FAC)
  • 位置(LOC)
  • 货币(MON)
  • 组织(ORG)
  • 百分比(PCT)
  • 人名(PER)
  • 产品(PRO)
  • 时间(TIM)

数据集信息

Records B-DAT B-EVE B-FAC B-LOC B-MON B-ORG B-PCT B-PER B-PRO B-TIM I-DAT I-EVE I-FAC I-LOC I-MON I-ORG I-PCT I-PER I-PRO I-TIM
Train 29133 1423 1487 1400 13919 417 15926 355 12347 1855 150 1947 5018 2421 4118 1059 19579 573 7699 1914 332
Valid 5142 267 253 250 2362 100 2651 64 2173 317 19 373 799 387 717 270 3260 101 1382 303 35
Test 6049 407 256 248 2886 98 3216 94 2646 318 43 568 888 408 858 263 3967 141 1707 296 78

评估

以下表格总结了模型整体和每个类别的得分。

整体

Model accuracy precision recall f1
Roberta 0.994849 0.949816 0.960235 0.954997

每个实体

| | 数量 | 精确率 | 召回率 | f1值 |\| ---\| ---\| ---\| ---\| ---: \|\| DAT\| 407 \|\| 0.844869 \|\| 0.869779\|\| 0.857143\| \|\| EVE\| 256 \|\| 0.948148 \|\| 1.000000\|\| 0.973384\| \|\| FAC\| 248 \|\| 0.957529 \|\| 1.000000\|\| 0.978304\| \|\| LOC\| 2884 \|\| 0.965422 \|\| 0.968100\|\| 0.966759\| \|\| MON\| 98 \|\| 0.937500 \|\| 0.918367\|\| 0.927835\| \|\| ORG\| 3216 \|\| 0.943662 \|\| 0.958333\|\| 0.950941\| \|\| PCT\| 94 \|\| 1.000000 \|\| 0.968085\|\| 0.983784\| \|\| PER\| 2646 \|\| 0.957030 \|\| 0.959562\|\| 0.958294\| \|\| PRO\| 318 \|\| 0.963636 \|\| 1.000000\|\| 0.981481\| \|\| TIM\| 43 \|\| 0.739130 \|\| 0.790698\|\| 0.764045\|

如何使用

您可以使用Transformers pipeline进行NER。

安装要求

pip install transformers

如何使用管道进行预测

from transformers import AutoTokenizer
from transformers import AutoModelForTokenClassification  # for pytorch
from transformers import TFAutoModelForTokenClassification  # for tensorflow
from transformers import pipeline


model_name_or_path = "HooshvareLab/roberta-fa-zwnj-base-ner" 
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForTokenClassification.from_pretrained(model_name_or_path)  # Pytorch
# model = TFAutoModelForTokenClassification.from_pretrained(model_name_or_path)  # Tensorflow

nlp = pipeline("ner", model=model, tokenizer=tokenizer)
example = "در سال ۲۰۱۳ درگذشت و آندرتیکر و کین برای او مراسم یادبود گرفتند."

ner_results = nlp(example)
print(ner_results)

有问题吗?

ParsNER Issues 仓库上发布一个Github问题。