命名实体识别(Name Entity Recognition) 是自然语言处理中一个比较基础的问题。要解决的问题是,从unstructure的文本当中找到实体并归类。当然我这么定义已经有了一定的bias,认为是先找实体在归类,但实现过程则并不一定如此。
 
定义一般来说都比较抽象,我们举一些例子来理解一下NER试图要解决的问题。比如说,一篇作文中,找出时间,人物,地点; 一个医学报告中,找出疾病名称及药品名称等; 一份合同中,找出甲方乙方,付款方式以及到期日期等。
 
这些问题看上去似乎并不难,近几年的BiLSTM, BERT以及各种变形模型也不断刷新分数棒,F1高达0.95.
 
然而,当把NER运用到实际中来时,效果并不像理论上那么好。很多人称,NER问题离被解决还有很长的路要走。
 
为什么呢?
 
首先,对于实体的定义,据说即使都是行业专家,认同度达到95%已是非常难。人类尚未清楚自己想要什么,怎能期待模型能给出完美答案呢。这句话其实不然,也许模型就是知道你想要什么。
扯远了,其实要说的是,定义的模糊是这个问题的难点之一。举一个药品的例子。上下文是,一个人得了感冒,医生建议吃点泡腾片,补充一下vc。那,这个泡腾片可以是药品吗?
 
难点之二,一词多义,在简短的上下文中无法正确归类。比如说, 甲壳虫走了。这句话中,甲壳虫可以是汽车,可以是昆虫。
 
难点之三,边界模糊,主要原因是复杂的实体在标注的时候,就很难有一致的认识,以及实体prevalence(出现率)比较低导致边界在哪里嘛,太难说了。对于前者,比如说合同类型,"某某公司的员工雇佣合同”和"员工雇佣合同”都可以归类为合同类型,但前缀取不取呢,在不同上下文中可能有不同的需求。
 
NER问题解决经历了三个阶段。
最早的技术是,规则匹配和词典查询匹配。为了提高precision和recall,规则会变得非常的复杂,词典会变得非常的庞大。要构造完整的词典代价非常的大,于是在词典匹配上又结合了集群以及相似度查询的方法。
第二阶段,手工特征工程机器学习。这个阶段的特征工程的工作相当繁重,除了n-gram的词之外,比如说POS tag, 大小写,数字替代,词语集群等等。机器学习部分一般是比较简单的逻辑回归加CRF解码。即使手动工作量相当繁重,但是比起规则匹配和完善词典的工作还是轻松不少,效果也好很多。
第三阶段,深度学习。这个阶段,重要特征在深度神经网络中基本上可以做到自动提取,并且,效果明显比手动的特征工程好很多。加上embedding的使用,使得模型的输入含有更加丰富的信息。排行榜不断被刷新的事实也可以说明这一点。
 
那为什么深度学习还是不能完美解决实际的问题呢。这和之前提出来的难点息息相关的。
一词多义需要很长的上下文才能明确意思,但一般的深度学习模型不能有太长的输入。比如说经典的用来解决NER的深度模型BERT或BiLSTM一般输入为512或728个token,如果太长,系统资源消耗太大。
另外,一般的评分系统都是基于token的,最终整个词组被准确识别出来的分数并未受到非常大的关注。词组分界问题在不同的领域难度也差别很大,但如何在token模型之后准确解码到词组,并没有被很好的research过。
实际的NER问题比公共数据库,比如说CoNLL的难度要大很多。每个行业可能有自己的twist,但是并没有系统的被讨论和共享起来。
难以得到完美的数据集,使得这个问题即使解决的再完美也只能停留在某个水平。
 
之前看spacy的创始人讲NER, 说大家要达到一个基础水平很容易,要上一个台阶就非常难了。NER这个问题尚未解决也是相当fair的一种说法。 
 
阅读作者更多原创,观众微信公众号:

NER为什么那么难的更多相关文章

  1. 『深度应用』NLP命名实体识别(NER)开源实战教程

    近几年来,基于神经网络的深度学习方法在计算机视觉.语音识别等领域取得了巨大成功,另外在自然语言处理领域也取得了不少进展.在NLP的关键性基础任务—命名实体识别(Named Entity Recogni ...

  2. NER

    写在前面:在初学nlp时的第一个任务——NER,尝试了几种方法,cnn+crf.lstm+crf.bert+lstm+crf,毫无疑问,最后结果时Bert下效果最好. 1.关于NER: NER即命名实 ...

  3. 中文NER的那些事儿1. Bert-Bilstm-CRF基线模型详解&代码实现

    这个系列我们来聊聊序列标注中的中文实体识别问题,第一章让我们从当前比较通用的基准模型Bert+Bilstm+CRF说起,看看这个模型已经解决了哪些问题还有哪些问题待解决.以下模型实现和评估脚本,详见 ...

  4. 中文NER的那些事儿4. 数据增强在NER的尝试

    这一章我们不聊模型来聊聊数据,解决实际问题时90%的时间其实都是在和数据作斗争,于是无标注,弱标注,少标注,半标注对应的各类解决方案可谓是百花齐放.在第二章我们也尝试通过多目标对抗学习的方式引入额外的 ...

  5. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  6. 听H3絮叨:何以让天下没有难用的流程

    最近朋友圈.网站新闻铺天盖地是"让天下没有难用的流程",有人就要问了,H3 BPM何德何能,为BPM站台,让天下没有难用的流程? 这是一个关于"办公室空想"的故 ...

  7. H3 BPM让天下没有难用的流程之产品概述

    一.产品简介 BPM(Business Process Management),是指根据业务环境的变化,推进人与人之间.人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具. H3 ...

  8. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)

    AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...

  9. 别老嫌Mac系统难用 这些快捷键你都用过吗

    苹果今年10月发布的全新带把儿(bar)的MacBook,轻薄炫酷的外观大受欢迎,其中当然不乏很多从Windows转到Mac阵营的用户.不少习惯了Windows操作习惯的用户在上手Mac时都会觉得非常 ...

随机推荐

  1. itoa函数递归实现

    库函数中有atoi函数,用意是将字符形式输入的数据转换成数字,而库函数有没有提供一个将数字转换成字符的函数呢?答案是有的,而且功能很是强大,那就是sprintf().snprintf()格式化转换函数 ...

  2. MediaWiki 语法简介

    本文尚在完善中... 图片 图片官方教程 图文并茂的内容读起来总是更加舒服,让我们在wiki里引入图片. 内部图片 上传图片 点击右侧上传文件,上传文件后会获得文件名 编辑图片 文件上传后在编辑框,如 ...

  3. 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发

    前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...

  4. Windows-MacOSX-Ubuntu·不同平台文件互传文件共享

    时间:2018-11-23 整理:byzqy 标题:Mac下的virtual box 安装的Ubuntu虚拟机互传文件问题 地址:https://blog.csdn.net/qq_20044689/a ...

  5. .Net中异步任务的取消和监控

    相关类型: CancellationTokenSource 主要用来创建或取消令牌 CancellationToken 监听令牌状态,注册令牌取消事件 OperationCanceledExcepti ...

  6. pycharm 汉化

    1.首先进入pycharm,点击file,找到setting. 2.点击 plugins 搜索Chinese,找到Chinese(simplified)Language Pack EAP,点击inst ...

  7. CSP 2021 游记

    \(\text{Day -INF}\) 看见了 \(\text{SCP2021}\) 的报名通知,想着应该教练会让我们统一报名,就没放在心上 然后-- 然后过了二十多天教练根本没有提报名的事情,搞得我 ...

  8. Identity角色管理三(编辑角色)

    因只有角色名能修改故继续使用创建角色的视图模型 using System.ComponentModel; using System.ComponentModel.DataAnnotations; na ...

  9. finally方法体

    1.资源释放 java7可以在try(创建资源对象,方法体结束之后自动释放) 2.finally中有返回

  10. ActiveMQ和消息中间件概念

    一.概念