什么是命名实体识别?

命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。简单的讲,就是识别自然文本中的实体指称的边界和类别。

百度百科详情 | 维基百科详情

 

命名实体识别的发展历史

NER一直是NLP领域中的研究热点,从早期基于词典和规则的方法,到传统机器学习的方法,到近年来基于深度学习的方法,NER研究进展的大概趋势大致如下图所示。

命名实体识别 NER 的发展史

阶段 1:早期的方法,如:基于规则的方法、基于字典的方法

阶段 2:传统机器学习,如:HMM、MEMM、CRF

阶段 3:深度学习的方法,如:RNN – CRF、CNN – CRF

阶段 4:近期新出现的一些方法,如:注意力模型、迁移学习、半监督学习的方法

 

4类常见的实现方式

早期的命名实体识别方法基本都是基于规则的。之后由于基于大规模的语料库的统计方法在自然语言处理各个方面取得不错的效果之后,一大批机器学习的方法也出现在命名实体类识别任务。宗成庆老师在统计自然语言处理一书粗略的将这些基于机器学习的命名实体识别方法划分为以下几类:

有监督的学习方法这一类方法需要利用大规模的已标注语料对模型进行参数训练。目前常用的模型或方法包括隐马尔可夫模型、语言模型、最大熵模型、支持向量机、决策树和条件随机场等。值得一提的是,基于条件随机场的方法是命名实体识别中最成功的方法。

半监督的学习方法这一类方法利用标注的小数据集(种子数据)自举学习。

无监督的学习方法这一类方法利用词汇资源(如WordNet)等进行上下文聚类。

混合方法:几种模型相结合或利用统计方法和人工总结的知识库。

值得一提的是,由于深度学习在自然语言的广泛应用,基于深度学习的命名实体识别方法也展现出不错的效果,此类方法基本还是把命名实体识别当做序列标注任务来做,比较经典的方法是LSTM+CRF、BiLSTM+CRF。

 

NER 的相关数据集

数据集简要说明访问地址
电子病例测评CCKS2017开放的中文的电子病例测评相关的数据测评1 | 测评2
音乐领域CCKS2018开放的音乐领域的实体识别任务CCKS
位置、组织、人…这是来自GMB语料库的摘录,用于训练分类器以预测命名实体,例如姓名,位置等。kaggle
口语NLPCC2018开放的任务型对话系统中的口语理解评测NLPCC
人名、地名、机构、专有名词一家公司提供的数据集,包含人名、地名、机构名、专有名词boson

 

相关工具推荐

工具简介访问地址
Stanford NER斯坦福大学开发的基于条件随机场的命名实体识别系统,该系统参数是基于CoNLL、MUC-6、MUC-7和ACE命名实体语料训练出来的。官网 | GitHub 地址
MALLET麻省大学开发的一个统计自然语言处理的开源包,其序列标注工具的应用中能够实现命名实体识别。官网
HanlpHanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。支持命名实体识别。官网 | GitHub 地址
NLTKNLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。官网 | GitHub 地址
SpaCy工业级的自然语言处理工具,遗憾的是不支持中文。官网 | GitHub 地址
Crfsuite可以载入自己的数据集去训练CRF实体识别模型。文档 | GitHub 地址

本文转载自公众号 AI 小白入门,原文地址