项目介绍:bert4ner-base-chinese
概述
bert4ner-base-chinese
是一个中文实体识别模型,专门用于处理中文命名实体的识别任务。它的设计基于BERT(Bidirectional Encoder Representations from Transformers)模型,通过结合最先进的自然语言处理技术,能够高效识别文本中的人物、地点、组织等具体信息。
项目特点
该模型以人民日报的数据集(PEOPLE)为测试基准,性能表现优异,接近最先进技术水平(SOTA)。BertSoftmax 是其背后的网络结构,使用了原生BERT架构。根据测试结果,该模型在精确率(Accuracy)、召回率(Recall)和F1值方面的表现分别为0.9425、0.9627和0.9525。
如何使用
通过nerpy
库调用
该项目集成在开源库nerpy
中,用户可以通过以下命令进行中文实体的识别:
from nerpy import NERModel
model = NERModel("bert", "shibing624/bert4ner-base-chinese")
predictions, raw_outputs, entities = model.predict(["常建良,男,1963年出生,工科学士,高级工程师"], split_on_space=False)
# 输出: entities: [('常建良', 'PER'), ('1963年', 'TIME')]
使用HuggingFace Transformers
用户无需依赖nerpy
库,也可以直接通过HuggingFace的Transformers框架来使用该模型。首先需要安装相关库:
pip install transformers seqeval
然后可以通过以下方式识别中文文本中的实体:
import torch
from transformers import AutoTokenizer, AutoModelForTokenClassification
from seqeval.metrics.sequence_labeling import get_entities
# 加载模型
tokenizer = AutoTokenizer.from_pretrained("shibing624/bert4ner-base-chinese")
model = AutoModelForTokenClassification.from_pretrained("shibing624/bert4ner-base-chinese")
label_list = ['I-ORG', 'B-LOC', 'O', 'B-ORG', 'I-LOC', 'I-PER', 'B-TIME', 'I-TIME', 'B-PER']
# 输入句子
sentence = "王宏伟来自北京,是个警察,喜欢去王府井游玩儿。"
def get_entity(sentence):
tokens = tokenizer.tokenize(sentence)
inputs = tokenizer.encode(sentence, return_tensors="pt")
with torch.no_grad():
outputs = model(inputs).logits
predictions = torch.argmax(outputs, dim=2)
char_tags = [(token, label_list[prediction]) for token, prediction in zip(tokens, predictions[0].numpy())][1:-1]
print(sentence)
print(char_tags)
pred_labels = [i[1] for i in char_tags]
entities = []
line_entities = get_entities(pred_labels)
for i in line_entities:
word = sentence[i[1]: i[2] + 1]
entity_type = i[0]
entities.append((word, entity_type))
print("Sentence entity:")
print(entities)
get_entity(sentence)
数据集
该项目使用了多个中文实体识别数据集来进行训练和测试:
- CNER中文实体识别数据集:约12万字,有详细的命名实体标注。
- PEOPLE中文实体识别数据集:来自人民日报的数据集,包含200万字。
上述数据集提供了丰富的语料资源,用户可以根据需要下载并使用它们来训练或微调模型。
总结
bert4ner-base-chinese
整合了最新的自然语言处理技术,通过BERT模型为中文实体识别任务提供了强大的技术支撑。无论是学术研究还是实际应用,该模型都能以高效的性能支持各种中文文本的命名实体识别工作。