Hugging Face Transformers 几个实体识别模型比较

Hugging Face Transformers 支持中文的命名实体识别(NER)任务。你可以使用预训练的中文模型,例如 BERT、RoBERTa、MacBERT 等,它们经过中文数据的微调,可以用于实体识别任务。

1. 常见支持中文 NER 的 Hugging Face 模型

以下是一些适合中文 NER 任务的模型:

(1) bert-base-chinese
  • 适用于中文基础任务。
  • 未专门针对 NER 微调,需要自定义微调。
(2) uer/roberta-base-finetuned-cluener2020
  • 针对 CLUENER2020 数据集微调的 RoBERTa 模型。
  • 支持识别中文中的人名、地名、时间等实体。
(3) hfl/chinese-bert-wwm-ext
  • 全词掩码预训练的中文 BERT,适合迁移到 NER 任务。
(4) hfl/chinese-roberta-wwm-ext
  • 类似于上面的 BERT,全词掩码预训练,适合 NER。

2. 使用 Hugging Face 提取中文 NER

安装依赖

确保安装了 transformerstorch

pip install transformers torch 
代码示例

uer/roberta-base-finetuned-cluener2020 为例:

from transformers import pipeline 
# 加载预训练 NER 模型 
ner_pipeline = pipeline("ner", model="uer/roberta-base-finetuned-cluener2020", tokenizer="uer/roberta-base-finetuned-cluener2020") 
# 输入文本 
text = "李华昨天去了北京天安门。" 
# 执行 NER 
results = ner_pipeline(text) 
# 打印结果 
for entity in results: 
        print(f"实体: {entity['word']}, 类型: {entity['entity']}, 置信度: {entity['score']:.2f}") 

输出示例:

实体: 李华, 类型: B-PER, 置信度: 0.99 实体: 北京, 类型: B-LOC, 置信度: 0.98 实体: 天安门, 类型: I-LOC, 置信度: 0.95 

3. 如何微调自己的中文 NER 模型

如果现有模型无法满足需求,可以在 Hugging Face 上微调一个中文 NER 模型:

(1) 数据准备

将数据整理为 BIO 格式,例如:

mathematica

张 O 三 B-PER 昨天 O 去了 O 北京 B-LOC 天安门 I-LOC

(2) 使用 Hugging Face 提供的 Trainer

你可以使用 Hugging Face 的 Trainer API 进行快速训练:

from transformers import BertForTokenClassification, BertTokenizer, Trainer, TrainingArguments 
# 加载模型和分词器 
model = BertForTokenClassification.from_pretrained("bert-base-chinese", num_labels=9)
# 标签数根据任务调整 
tokenizer = BertTokenizer.from_pretrained("bert-base-chinese") 
# 定义训练参数 
training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=16, num_train_epochs=3, weight_decay=0.01, ) # 使用自定义数据集 trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, # 替换为自定义数据 eval_dataset=eval_dataset, ) 
# 开始训练 
trainer.train() 

 

4. 中文 NER 的 Hugging Face 模型推荐

模型名称特点模型地址
uer/roberta-base-finetuned-cluener2020针对 CLUENER 微调,直接用于中文 NER链接
bert-base-chinese通用中文模型,需进一步微调链接
hfl/chinese-bert-wwm-ext全词掩码预训练中文模型,适合迁移到 NER链接
hfl/chinese-roberta-wwm-ext类似于上方的 BERT,性能稍高链接

5. 总结

  • 如果是简单的中文 NER,可以直接使用 uer/roberta-base-finetuned-cluener2020
  • 如果需要扩展或自定义实体类型,推荐基于 bert-base-chinesehfl/chinese-bert-wwm-ext 进行微调。
  • 使用 Hugging Face 的 pipeline 接口可以快速搭建 NER 系统,非常方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

livepy

老码农,赋闲在家要吃饭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值