【NLP-NER】什么是命名实体识别?
命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务。NER是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。
命名实体识别的准确度,决定了下游任务的效果,是NLP中非常重要的一个基础问题。
作者&编辑 | 小Dream哥
1 命名实体识别是什么?
要了解NER是一回什么事,首先要先说清楚,什么是实体。要讨论实体的理论概念,可能会花上一整天的时间,我们不过多纠缠。
简单的理解,实体,可以认为是某一个概念的实例。
例如,“人名”是一种概念,或者说实体类型,那么“蔡英文”就是一种“人名”实体了。“时间”是一种实体类型,那么“中秋节”就是一种“时间”实体了。
所谓实体识别,就是将你想要获取到的实体类型,从一句话里面挑出来的过程。
小明 在 北京大学 的 燕园 看了
PER ORG LOC
中国男篮 的一场比赛
ORG
如上面的例子所示,句子“小明在北京大学的燕园看了中国男篮 的一场比赛”,通过NER模型,将“小明 ”以PER,“北京大学”以ORG,“燕园”以LOC,“中国男篮”以ORG为类别分别挑了出来。
2 命名实体识别的数据标注方式
NER是一种序列标注问题,因此他们的数据标注方式也遵照序列标注问题的方式,主要是BIO和BIOES两种。这里直接介绍BIOES,明白了BIOES,BIO也就掌握了。
先列出来BIOES分别代表什么意思:
B,即Begin,表示开始
I,即Intermediate,表示中间
E,即End,表示结尾
S,即Single,表示单个字符
O,即Other,表示其他,用于标记无关字符
将“小明在北京大学的燕园看了中国男篮的一场比赛”这句话,进行标注,结果就是:
[B-PER,E-PER,O, B-ORG,I-ORG,I-ORG,E-ORG,O,B-LOC,E-LOC,O,O,B-ORG,I-ORG,I-ORG,E-ORG,O,O,O,O]
那么,换句话说,NER的过程,就是根据输入的句子,预测出其标注序列的过程。
3 命名实体识别的方法介绍
1)HMM和CRF等机器学习算法
HMM和CRF很适合用来做序列标注问题,早期很多的效果较好的成果,都是出自这两个模型。两种模型在序列标注问题中应用,我们在之前的文章中有介绍,感兴趣的同学可以看下如下链接的文章:
2)LSTM+CRF
目前做NER比较主流的方法就是采用LSTM作为特征抽取器,再接一个CRF层来作为输出层,后面我们用专门的文章来介绍这个模型。如下图所示:
3)CNN+CRF
CNN虽然在长序列的特征提取上有弱势,但是CNN模型可有并行能力,有运算速度快的优势。膨胀卷积的引入,使得CNN在NER任务中,能够兼顾运算速度和长序列的特征提取,后面我们用专门的文章来介绍这个模型。
4)BERT+(LSTM)+CRF
BERT中蕴含了大量的通用知识,利用预训练好的BERT模型,再用少量的标注数据进行FINETUNE是一种快速的获得效果不错的NER的方法,后面我们用专门的文章来介绍这个模型。
总结
NER是一个非常基础,但是非常重要的任务,今天先做一个整体的介绍。后续小Dream哥会相继详细的介绍上述几种常见的NER模型。在具体的模型中,大家能够更为细致的体会NER任务的真正作用和意涵。