基于BERT的命名实体识别
基于BERT的命名实体识别
先配置一下模型路径
1 | model_path="/data1/model/chinese-macbert-base" |
Step1 导入相关包
1 | import evaluate |
Step2 加载数据集
1 | # 如果可以联网,直接使用load_dataset进行加载 |
第一条结果如下:
1 | {'id': '0', |
获取所有的label
1 | label_list = ner_datasets["train"].features["ner_tags"].feature.names |
Step3 数据集预处理
1 | tokenizer = AutoTokenizer.from_pretrained(model_path) |
看一下训练集第一条
1 | Dataset({ |
Step4 创建模型
1 | # 对于所有的非二分类任务,切记要指定num_labels,否则就会device错误 |
Step5 创建评估函数
1 | # 加载评测方法 |
Step6 配置训练参数
1 | args = TrainingArguments( |
Step7 创建训练器
1 | trainer = Trainer( |
Step8 模型训练
1 | trainer.train() |
训练结果:
1 | {'eval_loss': 0.023305043578147888, |
Step9 模型预测
1 | from transformers import pipeline |
1 | # 如果模型是基于GPU训练的,那么推理时要指定device |
最终结果如下:
1
{'PER': ['姚明'], 'ORG': ['第十二届全国政协']}
代码地址
更多内容
- 小鱼吃猫博客——Transformers教程
- 微信公众号 codeCraft编程工艺

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小鱼吃猫!

