命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。
上一期我们详细介绍NER中两种深度学习模型,LSTM+CRF和Dilated-CNN,本期我们来介绍如何基于BERT来做命名实体识别任务。
作者 | 小Dream哥
编辑 | 言有三
1 引入BERT
笔者在之前的文章中介绍过BERT,想要回顾的同学可以点击下面的链接,这里就不再介绍BERT的结构了。
鉴于BERT的强大,在下游任务中,引入BERT是很自然的想法。像谷歌这些资源丰富的大佬,帮我们预训练好了模型,并且开源出来,当然要好好利用。这里就介绍下,如何基于谷歌开源出来的BERT base模型,进行fine tune,做NER任务。
2 获取BERT预训练模型
BERT源码可以从google-research的github中获取:
https://github.com/google-research/bert
在其GitHub中,也公布了获取BERT Chinese的预训练模型,正是我们需要的,链接如下:
https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
对下载的压缩文件进行解压,可以看到文件里有五个文件,其中bert_model.ckpt开头的文件是负责模型变量载入的,而vocab.txt是训练时中文文本采用的字典,最后bert_config.json是BERT在训练时ÿ