项目介绍:Bengali Language Named Entity Recognition
项目背景
Bengali Language Named Entity Recognition (NER) 项目旨在通过对多种语言版本的BERT模型(bert-base-multilingual-cased)进行微调,识别孟加拉语中的命名实体。该项目使用的数据集为Wikiann,这是一个广泛用于多语言NER任务的数据集。
命名实体识别
命名实体识别(NER)是一种自然语言处理任务,其目的是在给定的文本中识别和分类命名实体。命名实体通常分为几种类型,例如人名、地名和组织名。这个项目特别关注以下几种标签:
B-PER
和I-PER
:分别表示人名的起始部分和内部部分。B-ORG
和I-ORG
:分别表示组织名的起始部分和内部部分。B-LOC
和I-LOC
:分别表示地名的起始部分和内部部分。O
:表示不属于任何命名实体的其他词。
训练结果
该项目的训练、验证和测试结果显示出出色的性能,特别是在识别不同类别命名实体的F1分数方面。具体结果如下:
- 训练集总体F1分数为0.997927,地名、组织名和人名的F1分数分别为0.998246、0.996613和0.998769。
- 验证集总体F1分数为0.970187,地名、组织名和人名的F1分数分别为0.969212、0.956831和0.982079。
- 测试集总体F1分数为0.9673011,地名、组织名和人名的F1分数分别为0.967120、0.963614和0.970938。
使用示例
项目提供了一个使用示例,阐明了如何利用Transformers库加载预训练模型并进行命名实体识别。以下是Python代码片段:
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
# 加载预训练的模型和分词器
tokenizer = AutoTokenizer.from_pretrained("Suchandra/bengali_language_NER")
model = AutoModelForTokenClassification.from_pretrained("Suchandra/bengali_language_NER")
# 创建NER管道
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
example = "মারভিন দি মারসিয়ান"
# 执行命名实体识别
ner_results = nlp(example)
print(ner_results)
实例展示
通过项目提供的多个实例输入文本,可以观察到模型的优异表现,识别出文本中隐含的命名实体。这些实例包括人名(如 "লিওনার্দো দা ভিঞ্চি")、地名(如 "বসনিয়া ও হার্জেগোভিনা")、机构(如 "সাউথ ইস্ট ইউনিভার্সিটি")等。
总结
Bengali Language NER项目成功地展示了如何使用深度学习技术和多语言模型来有效识别孟加拉语中的命名实体,为该语言的自然语言处理任务提供了一种可靠的方法和工具。