命名实体识别(Named Entity Recognition,NER)是 NLP 几个经典任务之一,通俗易懂的来说,就是从一段文本中抽取出需求的关键词,如地名,人名等。
![a2d55e4fc9a7c8dd62af96568055ad88.png](https://i-blog.csdnimg.cn/blog_migrate/9795963fc4edf9565213e00dbf602da8.jpeg)
如上图所示,Google、IBM、Baidu 这些都是企业名、Chinese、U.S. 都是地名。就科学研究来说,命名实体是非常通用的技术,类似任务型对话中的槽位识别(Slot Filling)、基础语言学中的语义角色标注(Semantic RoleLabelling)都变相地使用了命名实体识别的技术;而就工业应用而言,命名实体其实就是序列标注(SequentialTagging),是除分类外最值得信赖和应用最广的技术,例如智能客服、网络文本分析,关键词提取等。
下面我们先带您了解一些 Gated RNN 和 CRF 的背景知识,然后再教您一步一步用 飞桨(PaddlePaddle)实现一个命名实体任务。另外,我们采用经典的 CoNLL 数据集。
Part-1:RNN 基础知识
循环神经网络(Recurrent Neural Networks,RNN)是有效建模有时序特征输入的方式。它的原理实际上非常简单,可以被以下简单的张量公式建模:
![569fb665af4be0f807b81cb5c8a76813.png](https://i-blog.csdnimg.cn/blog_migrate/6e95ceb374835b033a60fc1d65dcf0d1.png)
虽然理论上 RNN 能建模无限长的序列,但因为很多数值计算(如梯度弥散、过拟合等)的原因致使RNN 实际能收容的长度很小。等等类似的原因催生了门机制。
大量实验证明,基于门机制(Gate Mechanism)可以一定程度上缓解RNN 的梯度弥散、过拟合等问题。LSTM 是最广为应用的 Gated RNN,它的结构如下: