前面说的是ner的经典算法以及今年的一些比较好的工作,最近bert模型刷新了NLP的绝大部分任务,可谓是一夜之间火爆了整个NLP界,这里我简单记录下bert在NER上的使用,至于原理部分我后续的博客会做详细的说明。这里先暂时理解成bert同样也是产生embedding的工具就可以,只不过这个embedding比Word2vec的embedding要厉害。
ok 我们先设定下框架。
框架很简单,就是bert+Bilstm-CRF,前面讲了bert就是用来产生词向量的,所以如果抛开这个原理,这个升级版本的NER模型就很简单了。
这里先给出代码链接。BERT是Google提出的基于tensorflow1.11.0的代码,里面用了高级API,所以这篇博客我主要在代码层面讲一下bert的应用。原理部分我也做了详细的介绍,请戳。
bert官方版本的代码写的非常好(虽然很难懂哈),这里借NER这个应用简单学习下:
1.数据准备
这里还是以中文数据为例,数据的格式还是和之前一样:
我们最终需要把数据转换成bert论文中的形式:
代码中的数据就是转成这样,这部分是纯工程问题,就不详细介绍 :
接下来就讲一下这个高级API的用法:
1.代码中将所有数据封装成record的形式: