点击上方,选择星标置顶,每天给你送干货!

来自:NLP从入门到放弃

今天介绍一个论文autoner[1],主要是为了探索如何在只有词典的情况下,提升NER实际落地效果;

首先,如果手中含有词典,常规操作就是远程监督打标数据,然后做NER;

远程监督一个比较常见的操作就是使用我们手中的字典,通过字符匹配的形式对文本中可能存在的实体打标。

但是对于这种远程监督的形式,存在比较多的问题,这个论文主要探讨两种:多标签(multi-label tokens) 和标签不完善的问题;

针对multi-label tokens,论文提出的是Fuzzy-LSTM-CRF,简单讲就是讲LSTM后面的CRF层变为了Fuzzy CRF层,可以在处理tokens对应多标签的情况下,不牺牲计算效率;

第二个问题标签不完善,是因为字典毕竟是有限的,不可能把所有的实体都覆盖到,那么句子中没有被字典打标成功的词组很有可能也是某种实体,但是远程监督并没有对此做处理。

针对这个问题,本文提出了一种比较新的标注框架,简单来讲就是在这新的框架中,不去预测单个的token的类别,而是去判断两个相邻的tokens是不是在同一个实体中被tied;

上面只是我自己简单的分类,其实存在的两个问题和两种解决架构是相互融合在一起的,具体的我们下面谈。

0. 词典形式简单介绍

首先定义一下词典形式,包含两个部分,第一部分是实体的表面名称,这个包括规范名称和对应的同义词列表;第二个部分就是实体的类型;

其次,词典的标注肯定是有限的,肯定存在不在词典中的某些词组但是也属于某种类型的实体;

对于这部分实体,我自己的理解大体可以包含两个大部分;第一个大部分就是比如说【科技】这个领域覆盖的【科技】实体有有限的,所以有漏网之鱼;第二部分就是词典的实体类型是有限的,比如词典总共包含2个实体类型,但是你真实的文本包含更多的实体类型,存在漏网之鱼。

对于这些漏网之鱼的实体,我们的策略是这样的。

首先通过AutoPhrase从文中挖掘出来高质量短语,然后统一赋值为unknown type,也就是未知类型。

1. Fuzzy-LSTM-CRF

1.1 标注策略

梳理一下,我们现在手上有词典;

词典包含两个部分,一部分是已知实体类型(假设是2个,当然可能更多或者更少);另一个部分就是我们通过某种方式挖掘出来的高质量实体对应的未知类型;

然后我们通过手中的词典对原始无标注文本进行打标;

那么现在对于句子中的某个token,它存在三种可能性;第一它可能是已知实体类型中的一种或者多种;第二它属于未知类型;第三是属于O这种情况,就是non-entity;

基于传统架构BIlstm-CRF如何解决多标签的问题?

其实本质解决的思路很简单。对于原来的每个token,只是预测一个类别,现在是预测多个类别就可以了。

详细点讲就是,首先对于远程监督标注的过程,我们会使用三种策略。

我们先假设我们使用{I;O;B;E;S}的标注形式;

第一,对于某个token,如果它对应到了已知类型中的某一个或者多个实体,那么按照对应的位置直接标记上,不要漏掉;也就是说{I;B;E;S}和对应的一个或者多个实体类型对上标;

第二对于对于某个token,如果属于未知类型,那么对应的这个token就需要把所有已知实体类型(区别于上面的一个或者多个已知实体类型)和 {I, O, B, E, S}对应的打标上;

注意,这里并没有使用未知实体类型,而是使用的所有的已知实体类型;

第三个对于既不属于已知类型的,也不属于未知类型的,全部打上O;

1.2 Fuzzy-LSTM-CRF 模型架构

其实很好理解,传统的CRF最大化唯一一条有效的标注序列。在这里,我们最大化所有有可能的标注序列。

公式如下:

Fuzzy-LSTM-CRF优化公式

看架构图:

Fuzzy-LSTM-CRF

2. AutoNER

区别于Fuzzy-LSTM-CRF 模型沿用传统架构,在这里论文提出一种新的标注架构-Tie or Break;

这个标注框架更加关注的是当前token和上一个token是否在同一个实体里面;如果在同一个实体里面,那么就标注为Tie;

如果当前单词和上一个单词至少有一个在unkonw类型的高质量短语,那么标注为unkonw,其他情况标注为Break;

优化过程:把实体识别和实体类型判定分离开

原论文中描述的是先做实体识别,两个Break之间作为一个span,然后做实体类型判定;

实体识别中,对于当前单词和上一个单词之间类别的的输出,对Tie和Break做二分类损失,如果类别是unkown类别,直接跳过,不计算损失。

概率公式如下:

tie_break_loss

tie_break_loss

第二步预测实体类型,包含None实体类型

unkonw这种,知道这属于实体,在高质量短语词典中,但是不知道短语类型,所在这里我们会标注为None实体类型。

其他的不在词典中的,当然也就会被标注为None实体类型。

为了应对多标签,也就是同一个实体对应不同的类别,这里修改了最后的CE损失函数:

CE_总

CE_Soft

使用的是软标签的进行的CE的计算,并没有使用硬标签。

对应的是在远程监督中,当前实体真实类型标签集合。从公式我们可以知道,尤其是看分母,在不属于这个集合的标签概率我们并没有计算在内。

总结

多提一个小细节,就是高质量短语的挖掘使用的是AutoPhrase,大家可以去试一下;

论文提出两种结构解决多标签和标签不完善的问题。

首先对于标签不完善,使用上面提到的AutoPhrase去挖掘文本中的高质量短语,作为词典中的未知类型。

在Fuzzy-LSTM-CRF,需要注意的细节是,对于未知类型的标注,我们使用的策略是标注所有已知类型;

对于AutoNER,有两个细节需要注意,一个是新的标注框架tie or break,重点在于去看两个相邻单词是否属于同一个实体;第二个细节就是为了解决多标签问题,修改了损失函数,使用的软标签;

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!

参考资料

[1]

Learning Named Entity Tagger using Domain-Specific Dictionary: https://arxiv.org/abs/1809.03599

【论文解读】如何在只有词典的情况下提升NER落地效果相关推荐

  1. CVPR 2021 论文解读I 动态区域感知卷积,进一步提升分类/检测/分割性能|Dynamic Region-Aware Convolution

    Dynamic Region-Aware Convolution 摘要 介绍 方法 实验结果 总结 论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2003.12243 作 ...

  2. 直播 | WWW 2021论文解读:生成式板块推荐的变分控制和评估

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  3. 论文解读丨LayoutLM: 面向文档理解的文本与版面预训练

    摘要:LayoutLM模型利用大规模无标注文档数据集进行文本与版面的联合预训练,在多个下游的文档理解任务上取得了领先的结果. 本文分享自华为云社区<论文解读系列二十五:LayoutLM: 面向文 ...

  4. 论文解读丨Zero-Shot场景下的信息结构化提取

    摘要:在信息结构化提取领域,前人一般需要基于人工标注的模板来完成信息结构化提取.论文提出一种zero-shot的基于图卷积网络的解决方案,可以解决训练集和测试集来自不同垂直领域的问题. 本文分享自华为 ...

  5. 论文解读:利用结构隐代码的隐神经表示方法来合成动态人体的新颖视角

    从稀疏多视点视频合成表演者新颖视角图像.数据输入是通过同步的RGB相机捕获的表演者视频.体神经捕获表演者的3D几何和外表,用来进行3D重建和新颖视角合成. 01 摘要 本论文主要解决在稀疏排列相机情况 ...

  6. 【论文解读】NN如何在表格数据中战胜GBDT类模型!

    作者:一元,四品炼丹师 TabNet: Attentive Interpretable Tabular Learning(ArXiv2020) 01 背景 本文提出了一种高性能.可解释的规范深度表格数 ...

  7. ORB_SLAM2 原理、论文解读、代码流程

    ORB_SLAM2 原理+论文解读+代码流程 算法原理 Tracking LocalMapping LoopClosing 代码流程 文件的调用关系 重要变量的数据结构 Tracking流程 Loca ...

  8. 微软亚洲研究院论文解读:基于动态词表的对话生成研究(PPT+视频)

    本文为 12 月 27 日,北京航空航天大学博士生.微软亚洲研究院实习生--吴俣在第 21 期 PhD Talk 中的直播分享实录. 本次 Talk 的主题是基于动态词表的对话生成研究.首先,吴俣博士 ...

  9. 论文解读:对端到端语音识别网络的两种全新探索

    云从科技 +2 AI影响因子 活动 企业:云从科技 操作:论文解读 事项: 雷锋网(公众号:雷锋网) AI 科技评论按:语音识别技术历史悠久,早在上世纪 50 年代,贝尔研究所就研究出了可以识别十个英 ...

  10. 论文解读:Deep Dyna-Q: Integrating Planning for Task-Completion Dialogue Policy Learning

    论文解读:Deep Dyna-Q: Integrating Planning for Task-Completion Dialogue Policy Learning (2018 ACL) 简要信息: ...

最新文章

  1. JNI/NDK开发指南(八)——调用构造方法和父类实例方法
  2. Java实现的简单神经网络(基于Sigmoid激活函数)
  3. 【Matlab开发】MATLAB编译C/C++代码
  4. python区间分组_python-进行分组时保留其他列
  5. JZOJ 5422. 【NOIP2017提高A组集训10.25】天才绅士少女助手克里斯蒂娜
  6. java 0-9所有排列_java实现:键盘输入从0~9中任意5个数,排列组合出所有不重复的组合,打印出来...
  7. myeclipse需要配置服务器得项目是,【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】...
  8. openflow和open vSwitch简介
  9. 为什么空集是集合的子集_「离散数学」1.41.5特殊的集合和集合的计算
  10. 计算机835真题,《计算机水平考试》复习题835题(含答案)
  11. python实现r树存储地理位置_空间索引R树研究_回顾与展望_张明波
  12. 删除右键新建多余菜单
  13. 学习记录2——PMSM数学建模——坐标变换理论以及相应的Matlab模块搭建
  14. oracle- 审计日志
  15. NYOJ有趣的问题(单源最短路径dijkstra)
  16. 矩阵乘法的算法实现 [转载]
  17. 如何在自己的网站引入百度搜索引擎
  18. Linux 线程之线程自杀
  19. java水彩画效果滤镜_自带高饱和滤镜的水彩画(内附详细工具介绍)!
  20. 75道程序员逻辑思维面试题

热门文章

  1. Spring Security构建Rest服务-1401-权限表达式
  2. asp.net MVC Views-----Controller传递数据方法
  3. 全宁对医药行业销售代表的介绍
  4. Windows下部署安装Docker
  5. linux块设备缓存bcache
  6. 『编程题全队』Alpha 阶段冲刺博客集合
  7. Cocos Creator下删除AnySDK步骤
  8. 【codevs1378】选课——树形动规
  9. luogu P2678 跳石头 二分answer
  10. Linux--U盘安装Ubuntu12.04