Google Colab实战-基于Google BERT的中文命名实体识别(NER)

项目背景

之前的博文《Google Colab使用Tips》里面介绍了Google Colab使用的基本方法。其实写那篇文章的时候博主正在研究Google于2018年发表(论文)和开源(开源代码)的NLP通用框架BERT。在利用BERT实战的时候苦于手头的服务器资源实在是配置太low,不得不求助于业界良心的Google Colab。

关于BERT

Google所提供的BERT框架一改之前学术界和工业界针对特定的NLP问题训练特定模型的思路,他提出构建一个底层的基础模型来彻底建模上下文关系,而通过fine-tuning来进一步构造出针对特定NLP问题(如NLI,NER等)的特定模型。

基于Google BERT的中文命名实体识别(NER)

在Github上面发现了一个基于Google BERT的中文命名实体识别(NER)项目(项目地址)。该项目基于实现预训练(pre-training)好的BERT中文模型,利用中文NER语料构造新的训练和测试数据,并对预训练模型进行fine-tuning。

项目实施

代码和文件的准备

从《bert-chinese-ner》项目下载源码,构建基本的文件目录如下:
在这里插入图片描述
在该文件目录下分别添加“bert”,“checkpoint”,“output”,“output/result_dir”几个文件夹。构成一下的文件目录。
在这里插入图片描述

  • 从《BERT》项目下载源代码,并放入“bert”文件夹。
    在这里插入图片描述
  • 下载BERT团队预训练好的BERT-base Chinese模型,解压后放入checkpoint文件夹。
    在这里插入图片描述

在Google Colab上准备相应的环境

  • 上传文件夹至Google Drive
  • 构建一个新的Google Colab Notebook
  • 挂载Google Drive:在Notebook里面运行
from google.colab import drive
drive.mount('/content/drive')
  • 将工作空间移至NER任务所在的文件夹
import os
path = "/content/drive/My Drive/[YOUR_WORKSPACE_PATH]"
os.chdir(path)
  • 运行训练代码
!python BERT_NER.py \
				--data_dir=data/ \
				--bert_config_file=checkpoint/bert_config.json \
				--init_checkpoint=checkpoint/bert_model.ckpt \
				--vocab_file=vocab.txt \
				--output_dir=./output/result_dir/

运行完成后会出现以下日志文件。
在这里插入图片描述

  • 运行评估及预测代码
!python BERT_NER.py \
				--data_dir=data/ \
				--bert_config_file=checkpoint/bert_config.json \
				--init_checkpoint=checkpoint/bert_model.ckpt \
				--vocab_file=vocab.txt \
				--output_dir=./output/result_dir/ \
				--do_train=False \
				--do_eval=True \
				--do_predict=True

评估完成后会在“output/result_dir”文件夹中出现“eval_results.txt”文件。里面写入了之前训练的模型的评估结果。此次训练的评估结果如下:
在这里插入图片描述
另外针对测试集,会给出“token_test.txt”和“label_test.txt”两个文件,分别包含了测试数据中的原始预料与NER标签。可以自行打开对比关注NER标注的准确性。

  • 14
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值