命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。

上一期我们介绍了NER的基本概念,大致介绍了NER常用的模型。本期我们详细介绍目前NER最常用的两种深度学习模型,LSTM+CRF和Dilated-CNN。

作者&编辑 | 小Dream哥

1 LSTM+CRF

在NLP领域,有那么一段时间,LSTM是“最红”的特征抽取器,自然,NER中也开始引入LSTM来进行特征抽取。

LSTM我就不再做过多的介绍,其原理在我的一篇文章中有详细的介绍,读者可以点击如下的链接回顾:

【NLP】 NLP中应用最广泛的特征抽取模型-LSTM

如上图所示,是用双向LSTM+CRF进行命名实体识别的模型结构图。

我们来好好分析一下这个模型,看数据的流转和各层的作用。

1.embedding layer 将中文转化为字向量,获得输入embedding

2.将embedding输入到BiLSTM层,进行特征提取(编码),得到序列的特征表征,logits。

3.logits需要解码,得到标注序列。将其输入到解码CRF层,获得每个字的序列。

总结一下,该模型的重点其实有两个:

1. 引入双向LSTM层作为特征提取工具,LSTM拥有较强的长序列特征提取能力,是个不错的选择。双向LSTM,在提取某个时刻特征时,能够利用该时刻之后的序列的信息,无疑能够提高模型的特征提取能力。

2. 引入CRF作为解码工具。中文输入经过双向LSTM层的编码之后,需要能够利用编码到的丰富的信息,将其转化成NER标注序列。通过观察序列,预测隐藏状态序列,CRF无疑是首选。

2 ID-CNN+CRF

膨胀卷积可能有很多朋友还不是很熟悉,这里先做一个简单的介绍。

Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积))或者是Convolution with holes。从字面上就很好理解,就是在标准的卷积里注入空洞,以此来增加感受野

Convolution  with 3*3 kernel

Dilated Convolution  with 3*3 kernel

如上图所示,相比原来的正常卷积,膨胀卷积多了一个超参数,称之为膨胀率(dilation rate),指的是kernel的间隔数量(例如,正常的卷积是膨胀率是1)。

“膨胀”的好处是,不做池化,不损失信息的情况下,增大了感受野,让每个卷积输出都包含较大范围的信息。

《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》一文中提出在NER任务中,引入膨胀卷积,一方面可以引入CNN并行计算的优势,提高训练和预测时的速度;另一方面,可以减轻CNN在长序列输入上特征提取能力弱的劣势。

具体使用时,dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而感受野却是指数增加的,这样就可以很快覆盖到全部的输入数据。

如上图所示,模型是4个大的相同结构的Dilated CNN block拼在一起,每个block里面是dilation width为1, 1, 2的三层Dilated卷积层,所以叫做 Iterated Dilated CNN。

IDCNN对输入句子的每一个字生成一个logits,这里就和BiLSTM模型输出logits之后完全一样,再放入CRF Layer解码出标注结果。

总结

LSTM+CRF和ID-CNN+CRF两种模型其实都是同一个架构:深度学习特征提取+CRF解码。现在绝大部分的NER任务都是采用这样的一套框架。本文详细的介绍了上述两种方法的模型结构和本质,具体的实现和代码,包括数据预处理,模型搭建,训练,部署等在我们的知识星球里都有详细的介绍,感兴趣的同学可以扫描下面的二维码加入。

读者们可以留言,或者加入我们的NLP群进行讨论。感兴趣的同学可以微信搜索jen104,备注"加入有三AI NLP群"

下期预告:命名实体识别详解之三

知识星球推荐

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。考虑到聊天机器人是一个非常复杂的NLP应用场景,几乎涵盖了所有的NLP任务及应用。所以小Dream哥计划以聊天机器人作为切入点,通过介绍聊天机器人的原理和实践,逐步系统的更新到大部分NLP的知识,会包括语义匹配,文本分类,意图识别,语义匹配命名实体识别、对话管理以及分词等。

(2) 知识图谱。知识图谱对于NLP各项任务效果好坏的重要性,就好比基础知识对于一个学生成绩好坏的重要性。他是NLP最重要的基础设施,目前各大公司都在着力打造知识图谱,作为一个NLP工程师,必须要熟悉和了解他。

(3) NLP预训练模型。基于海量数据,进行超大规模网络的无监督预训练。具体的任务再通过少量的样本进行Fine-Tune。这样模式是目前NLP领域最火热的模式,很有可能引领NLP进入一个全新发展高度。你怎么不深入的了解?

转载文章请后台联系

侵权必究

往期精选

【NLP-NER】命名实体识别中最常用的两种深度学习模型相关推荐

  1. 论文阅读:(2020版)A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法

    A Survey on Deep Learning for Named Entity Recognition 命名实体识别中的深度学习方法 目录 A Survey on Deep Learning f ...

  2. NER命名实体识别,基于数据是字典的形式怎么识别

    什么是命名实体识别: 命名实体识别(Named Entity Recognition,简称NER),又称作"专名识别,就是从文本中提取出具有特定意义的实体,主要包括人名,地名,专有名字等等. ...

  3. NLP算法-命名实体识别

    命名实体识别 什么是命名实体识别? NER 研究的命名实体 NER研究目前所遇到的问题 命名实体识别的主要方法: 基于条件随机场的命名实体识别 常用的NER模型 1.Spacy NER 模型 2.斯坦 ...

  4. NLP的命名实体识别 -- 嵌套实体问题

    NLP的命名实体识别 – 嵌套实体问题 NER是一个比较常见的NLP任务,通常采用LSTM+CRF处理一些简单NER任务.NER还存在嵌套实体问题(实体重叠问题),实体嵌套是指在一句文本中出现的实体, ...

  5. pytorch实现BiLSTM+CRF用于NER(命名实体识别)

    pytorch实现BiLSTM+CRF用于NER(命名实体识别) 在写这篇博客之前,我看了网上关于pytorch,BiLstm+CRF的实现,都是一个版本(对pytorch教程的翻译), 翻译得一点质 ...

  6. TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable

    TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable 目录 输出结果 代码设计 输出结果 代码设计 # tensorflow中的两种定义scope(命 ...

  7. NAACL| 基于标签感知的双迁移学习在医学命名实体识别中的应用

    本期给大家介绍上海交通大学APEX数据和知识管理实验室俞勇教授课题组发表在NAACL的文章"Label-aware Double Transfer Learning for Cross-Sp ...

  8. 自然语言处理(NLP)之命名实体识别

    本文将会简单介绍自然语言处理(NLP)中的命名实体识别(NER). 命名实体识别(Named Entity Recognition,简称NER)是信息提取.问答系统.句法分析.机器翻译等应用领域的重要 ...

  9. NLP(5) | 命名实体识别

    NLP(1) | 词向量one hot编码词向量编码思想 NLP(2) | 中文分词分词的概念分词方法分类CRFHMM分词 NLP(3)| seq to seq 模型 NLP(4) | 用词向量技术简 ...

最新文章

  1. 计算机老师用英语应聘,应聘计算机教师个人自荐书(精选6篇)
  2. 代练怎么检测出来的_王者荣耀:代练熬夜打上王者,天美发来58个字,不敢收一分钱...
  3. Linux服务器上配置Tomcat的docBase路径映射时遇到的坑
  4. android控制手机强制手机横竖方向,使用android IOIO和安卓手机制作视频遥控小车(控制灯的开关、实时视频传输、方向控制)...
  5. java培训每日总结,这是一份1000多字的Java培训总结,字字珠玑
  6. ajax遍历数组对象数组对象数组,javascript - 从ajax json请求中,如何将对象动态添加到数组中,以便我可以遍历它们? - 堆栈内存溢出...
  7. NLP学习难在哪里?这份最全NLP学习路线图帮你解决难题!
  8. juyter显示决策树图形_关于决策树可视化的treePlotter(学习笔记)
  9. chrome浏览器不展示地址栏的完整路径解决
  10. 【2012百度之星/初赛上】小小度刷礼品
  11. Centos7安装整合Apache+PHP,安装nginx后nginx无法解析.php文件
  12. 纳多德通过ISO 9001质量、ISO 14001环境、ISO 45001职业健康安全国际管理体系认证
  13. The Devil is in the Details: Self-Supervised Attention for Vehicle Re-Identification(翻译)
  14. CUDA总结:Occupancy
  15. python将汉字转为拼音字母_科学网—[转载]python中文汉字转拼音 - 陈明杰的博文...
  16. TTL,CMOS,LVTTL,LVCMOS电平标准
  17. 项目中使用completablefuture_同轴线如何当网线使用?解决改造项目中难题
  18. Android基于mAppWidget实现手绘地图(十一)–移动地图到某个坐标
  19. 使用simulink进行自适应滤波
  20. Camera ITS当中的部分测试项文档

热门文章

  1. 33岁逃离北京,看到的是希望还是悲剧呢?
  2. 看完这篇 HTTPS,和面试官扯皮就没问题了
  3. (JAVA学习笔记) 类的继承,super,方法的重写,多态
  4. (Oracle学习笔记) sql语言
  5. 520,花一夜给女神写走迷宫游戏
  6. Xmanager连接Linux桌面异常解决方案
  7. 线程的简单生产消费模式
  8. Android挂载以点号(.)开头的文件夹或是文件
  9. redis的过期策略
  10. 安装和配置sendmail