命名实体识别(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. (二)js基础。。。freecodecamp笔记

    个人需要注意的点 当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值undefined.当你对一个值为undefined的变量进行运算操作的时候,算出来的结果将会是NaN,NaN ...

  2. (2)hadoop之-----配置免密码登录

    ssh-keygen -t rsa 然后一路回车 在家目录下会生成 .ssh 目录           ls -la   查看 进入   .ssh            cd .ssh cp ~/.s ...

  3. Jemeter压力测试

    Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 转载自小坦克:https: ...

  4. Java基础和常用框架的面试题

    前言 最近学校也催着找工作了,于是刷了一些面试题,学习了几篇大佬优秀的博客,总结了一些自认为重要的知识点:听不少职场前辈说,对于应届毕业生,面试时只要能说到核心重要的点,围绕这个点说一些自己的看法,面 ...

  5. Golang gomail 发送邮件 --初使用

    gomail是一个第三方库,可以发送邮件 安装:go get -u github.com/go-gomail/gomail 使用示例: m := gomail.NewMessage() m.SetHe ...

  6. Vulnhub靶机渗透 -- DC5

    信息收集 通过nmap搜索到IP为:192.168.200.11 开启了80http.111RPC服务端口 先打开网页,然后进行目录爆破 contact.php 攻击 经搜索没有发现可以攻击wheel ...

  7. php 字符串分割输出

    分割字符串 //利用 explode 函数分割字符串到数组 复制代码代码如下:<?php $source = "hello1,hello2,hello3,hello4,hello5&q ...

  8. Linux centos7 -bash: pstree: 未找到命令

    2021-08-12 1. 命令简介pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只 ...

  9. Centos8.3安装broadcom(博通)BCM43142无线网卡驱动,Centos8没有wifi选项(No wifi adapter found centos)解决办法

    参考:杆菌大祭司> https://www.jianshu.com/p/3cb41b7b8fec 第一步:查看网卡型号,确认无线网卡型号为BCMXXX lspci | grep Network ...

  10. 【曹工杂谈】Maven和Tomcat能有啥联系呢,都穿打补丁的衣服吗

    Maven和Tomcat能有啥联系呢,都穿打补丁的衣服吗 前奏 我们上篇文章,跟大家说了下,怎么调试maven插件的代码,注意,是插件的代码.插件,是要让主框架来执行的,主框架是谁呢,就是maven ...