Marefa Ner
M
Marefa Ner
由 marefa-nlp 开发
一个基于全新数据集构建的大型阿拉伯语命名实体识别(NER)模型,能识别9种不同类型的实体
下载量 4,380
发布时间 : 3/2/2022
模型简介
该模型是一个文本片段分类知识模型,专门用于阿拉伯语文本中的命名实体识别,支持识别人物、地点、组织等多种实体类型。
模型特点
多类别实体识别
能够识别多达9种不同类型的实体,包括人物、地点、组织等
全新训练数据
基于完全重构的训练数据集构建,数据质量高
高精度识别
在测试集上表现出色,特别是人物识别F1分数达到0.93
模型能力
阿拉伯语文本处理
命名实体识别
文本片段分类
使用案例
新闻分析
新闻事件分析
从新闻文本中提取人物、地点、组织等关键信息
可准确识别如'在开罗体育场,非洲国家杯开幕式在共和国总统和国际足联主席的出席下举行'中的实体
社交媒体分析
社交媒体内容分析
分析阿拉伯语社交媒体内容中的关键实体
🚀 泰比安(Tebyan)
基于全新数据集构建的大型阿拉伯语命名实体识别(NER)模型,可提取多达9种不同类型的实体
模型信息
属性 | 详情 |
---|---|
模型类型 | Marefa阿拉伯语命名实体识别模型 |
训练数据 | Marefa-NER |
模型展示
版本:1.3
最后更新:2021年12月3日
✨ 主要特性
Marefa-NER 是一个大型阿拉伯语命名实体识别(NER)模型,它基于全新的数据集构建,旨在提取多达9种不同类型的实体:
人物、地点、组织、国籍、职业、产品、事件、时间、艺术作品
这是一个全新的文本部分分类知识模型,特别是在模型训练所使用的数据方面。该模型还旨在对多达9种不同类型的文本部分进行分类:
人物 - 地点 - 组织 - 国籍 - 职业 - 产品 - 事件 - 时间 - 艺术作品
🚀 快速开始
📦 安装指南
安装以下Python包:
$ pip3 install transformers==4.8.0 nltk==3.5 protobuf==3.15.3 torch==1.9.0
⚠️ 重要提示
如果你使用的是
Google Colab
,请在安装包后重启运行时。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForTokenClassification
import torch
import numpy as np
import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize
custom_labels = ["O", "B-job", "I-job", "B-nationality", "B-person", "I-person", "B-location","B-time", "I-time", "B-event", "I-event", "B-organization", "I-organization", "I-location", "I-nationality", "B-product", "I-product", "B-artwork", "I-artwork"]
def _extract_ner(text: str, model: AutoModelForTokenClassification,
tokenizer: AutoTokenizer, start_token: str="▁"):
tokenized_sentence = tokenizer([text], padding=True, truncation=True, return_tensors="pt")
tokenized_sentences = tokenized_sentence['input_ids'].numpy()
with torch.no_grad():
output = model(**tokenized_sentence)
last_hidden_states = output[0].numpy()
label_indices = np.argmax(last_hidden_states[0], axis=1)
tokens = tokenizer.convert_ids_to_tokens(tokenized_sentences[0])
special_tags = set(tokenizer.special_tokens_map.values())
grouped_tokens = []
for token, label_idx in zip(tokens, label_indices):
if token not in special_tags:
if not token.startswith(start_token) and len(token.replace(start_token,"").strip()) > 0:
grouped_tokens[-1]["token"] += token
else:
grouped_tokens.append({"token": token, "label": custom_labels[label_idx]})
# extract entities
ents = []
prev_label = "O"
for token in grouped_tokens:
label = token["label"].replace("I-","").replace("B-","")
if token["label"] != "O":
if label != prev_label:
ents.append({"token": [token["token"]], "label": label})
else:
ents[-1]["token"].append(token["token"])
prev_label = label
# group tokens
ents = [{"token": "".join(rec["token"]).replace(start_token," ").strip(), "label": rec["label"]} for rec in ents ]
return ents
model_cp = "marefa-nlp/marefa-ner"
tokenizer = AutoTokenizer.from_pretrained(model_cp)
model = AutoModelForTokenClassification.from_pretrained(model_cp, num_labels=len(custom_labels))
samples = [
"تلقى تعليمه في الكتاب ثم انضم الى الأزهر عام 1873م. تعلم على يد السيد جمال الدين الأفغاني والشيخ محمد عبده",
"بعد عودته إلى القاهرة، التحق نجيب الريحاني فرقة جورج أبيض، الذي كان قد ضمَّ - قُبيل ذلك - فرقته إلى فرقة سلامة حجازي . و منها ذاع صيته",
"في استاد القاهرة، قام حفل افتتاح بطولة كأس الأمم الأفريقية بحضور رئيس الجمهورية و رئيس الاتحاد الدولي لكرة القدم",
"من فضلك أرسل هذا البريد الى صديقي جلال الدين في تمام الساعة الخامسة صباحا في يوم الثلاثاء القادم",
"امبارح اتفرجت على مباراة مانشستر يونايتد مع ريال مدريد في غياب الدون كرستيانو رونالدو",
"لا تنسى تصحيني الساعة سبعة, و ضيف في الجدول اني احضر مباراة نادي النصر غدا",
]
# [optional]
samples = [ " ".join(word_tokenize(sample.strip())) for sample in samples if sample.strip() != "" ]
for sample in samples:
ents = _extract_ner(text=sample, model=model, tokenizer=tokenizer, start_token="▁")
print(sample)
for ent in ents:
print("\t",ent["token"],"==>",ent["label"])
print("========\n")
输出示例
تلقى تعليمه في الكتاب ثم انضم الى الأزهر عام 1873م . تعلم على يد السيد جمال الدين الأفغاني والشيخ محمد عبده
الأزهر ==> organization
عام 1873م ==> time
السيد جمال الدين الأفغاني ==> person
محمد عبده ==> person
========
بعد عودته إلى القاهرة، التحق نجيب الريحاني فرقة جورج أبيض، الذي كان قد ضمَّ - قُبيل ذلك - فرقته إلى فرقة سلامة حجازي . و منها ذاع صيته
القاهرة، ==> location
نجيب الريحاني ==> person
فرقة جورج أبيض، ==> organization
فرقة سلامة حجازي ==> organization
========
في استاد القاهرة، قام حفل افتتاح بطولة كأس الأمم الأفريقية بحضور رئيس الجمهورية و رئيس الاتحاد الدولي لكرة القدم
استاد القاهرة، ==> location
بطولة كأس الأمم الأفريقية ==> event
رئيس الجمهورية ==> job
رئيس ==> job
الاتحاد الدولي لكرة القدم ==> organization
========
من فضلك أرسل هذا البريد الى صديقي جلال الدين في تمام الساعة الخامسة صباحا في يوم الثلاثاء القادم
جلال الدين ==> person
الساعة الخامسة صباحا ==> time
يوم الثلاثاء القادم ==> time
========
امبارح اتفرجت على مباراة مانشستر يونايتد مع ريال مدريد في غياب الدون كرستيانو رونالدو
مانشستر يونايتد ==> organization
ريال مدريد ==> organization
كرستيانو رونالدو ==> person
========
لا تنسى تصحيني الساعة سبعة , و ضيف في الجدول اني احضر مباراة نادي النصر غدا
الساعة سبعة ==> time
نادي النصر ==> organization
غدا ==> time
========
模型微调
你可以查看这个 笔记本 来对NER模型进行微调。
模型评估
我们在包含1959个句子的测试集上对模型进行了测试,结果如下表所示:
类型 | F1分数 | 精确率 | 召回率 | 样本数 |
---|---|---|---|---|
人物 | 0.93298 | 0.931479 | 0.934487 | 4335 |
地点 | 0.891537 | 0.896926 | 0.886212 | 4939 |
时间 | 0.873003 | 0.876087 | 0.869941 | 1853 |
国籍 | 0.871246 | 0.843153 | 0.901277 | 2350 |
职业 | 0.837656 | 0.79912 | 0.880097 | 2477 |
组织 | 0.781317 | 0.773328 | 0.789474 | 2299 |
事件 | 0.686695 | 0.733945 | 0.645161 | 744 |
艺术作品 | 0.653552 | 0.678005 | 0.630802 | 474 |
产品 | 0.625483 | 0.553531 | 0.718935 | 338 |
加权平均 | 0.859008 | 0.852365 | 0.86703 | 19809 |
微观平均 | 0.858771 | 0.850669 | 0.86703 | 19809 |
宏观平均 | 0.79483 | 0.787286 | 0.806265 | 19809 |
📄 致谢
该模型训练所使用的数据由一群志愿者准备,他们花费了大量时间对数据进行挖掘和审核。
- 赛义德·阿卜杜勒·哈菲兹 - 监督
- 娜尔敏·穆罕默德·阿提亚
- 萨拉赫·基拉拉
- 艾哈迈德·阿里·阿卜杜勒拉赫
- 奥马尔·本·阿卜杜勒·阿齐兹·苏莱曼
- 穆罕默德·易卜拉欣·贾迈勒
- 阿卜杜勒拉赫曼·萨拉马·哈利夫
- 易卜拉欣·卡迈勒·穆罕默德·苏莱曼
- 哈桑·穆斯塔法·哈桑
- 艾哈迈德·法赫里·赛义德
- 奥斯曼·曼杜
- 阿卜杜勒·谢里夫
- 阿米拉·穆罕默德·马哈茂德
- 哈桑·赛义德·哈桑
- 阿卜杜勒·阿齐兹·阿里·巴格达迪
- 瓦西克·阿卜杜勒·马利克·舒伊塔尔
- 阿姆鲁·拉马丹·阿克拉·哈夫纳维
- 哈桑·丁·艾哈迈德·赛义德
- 奥斯马·艾哈迈德·穆罕默德·穆罕默德
- 哈蒂姆·穆罕默德·穆夫提
- 阿卜杜拉·德尔迪尔
- 阿德哈姆·巴格达迪
- 艾哈迈德·萨布里
- 阿卜杜勒·瓦哈卜·穆罕默德·穆罕默德
- 艾哈迈德·穆罕默德·奥兹
Indonesian Roberta Base Posp Tagger
MIT
这是一个基于印尼语RoBERTa模型微调的词性标注模型,在indonlu数据集上训练,用于印尼语文本的词性标注任务。
序列标注
Transformers 其他

I
w11wo
2.2M
7
Bert Base NER
MIT
基于BERT微调的命名实体识别模型,可识别四类实体:地点(LOC)、组织机构(ORG)、人名(PER)和杂项(MISC)
序列标注 英语
B
dslim
1.8M
592
Deid Roberta I2b2
MIT
该模型是基于RoBERTa微调的序列标注模型,用于识别和移除医疗记录中的受保护健康信息(PHI/PII)。
序列标注
Transformers 支持多种语言

D
obi
1.1M
33
Ner English Fast
Flair自带的英文快速4类命名实体识别模型,基于Flair嵌入和LSTM-CRF架构,在CoNLL-03数据集上达到92.92的F1分数。
序列标注
PyTorch 英语
N
flair
978.01k
24
French Camembert Postag Model
基于Camembert-base的法语词性标注模型,使用free-french-treebank数据集训练
序列标注
Transformers 法语

F
gilf
950.03k
9
Xlm Roberta Large Ner Spanish
基于XLM-Roberta-large架构微调的西班牙语命名实体识别模型,在CoNLL-2002数据集上表现优异。
序列标注
Transformers 西班牙语

X
MMG
767.35k
29
Nusabert Ner V1.3
MIT
基于NusaBert-v1.3在印尼语NER任务上微调的命名实体识别模型
序列标注
Transformers 其他

N
cahya
759.09k
3
Ner English Large
Flair框架内置的英文4类大型NER模型,基于文档级XLM-R嵌入和FLERT技术,在CoNLL-03数据集上F1分数达94.36。
序列标注
PyTorch 英语
N
flair
749.04k
44
Punctuate All
MIT
基于xlm-roberta-base微调的多语言标点符号预测模型,支持12种欧洲语言的标点符号自动补全
序列标注
Transformers

P
kredor
728.70k
20
Xlm Roberta Ner Japanese
MIT
基于xlm-roberta-base微调的日语命名实体识别模型
序列标注
Transformers 支持多种语言

X
tsmatz
630.71k
25
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文