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

目录

  • 项目背景
    • 关于BERT
    • 基于Google BERT的中文命名实体识别(NER)
  • 项目实施
    • 代码和文件的准备
    • 在Google Colab上准备相应的环境

项目背景

之前的博文《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》项目下载源码,构建基本的文件目录如下:
Google Colab实战-基于Google BERT的中文命名实体识别(NER)_第1张图片
在该文件目录下分别添加“bert”,“checkpoint”,“output”,“output/result_dir”几个文件夹。构成一下的文件目录。
Google Colab实战-基于Google BERT的中文命名实体识别(NER)_第2张图片

  • 从《BERT》项目下载源代码,并放入“bert”文件夹。
    Google Colab实战-基于Google BERT的中文命名实体识别(NER)_第3张图片
  • 下载BERT团队预训练好的BERT-base Chinese模型,解压后放入checkpoint文件夹。
    Google Colab实战-基于Google BERT的中文命名实体识别(NER)_第4张图片

在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”文件。里面写入了之前训练的模型的评估结果。此次训练的评估结果如下:
Google Colab实战-基于Google BERT的中文命名实体识别(NER)_第5张图片
另外针对测试集,会给出“token_test.txt”和“label_test.txt”两个文件,分别包含了测试数据中的原始预料与NER标签。可以自行打开对比关注NER标注的准确性。

你可能感兴趣的:(人工智能,开源框架)