文章目录
1. NER介绍
1.1 理论
命名实体识别(NER)是自然语言处理领域的核心技术之一,它的目标是从一段非结构化文本中识别出属于特定类别的命名实体,进而支持下游任务。例如,为了接入地图搜索服务API,查询POI信息,我们从“我要去北京市北三环西路”中,识别出市辖区类“北京市”和道路类“北三环西路”这两个实体,并作为参数值传入搜索服务API(这一步骤被称为填槽),搜索完成后可获取对应的查询结果。
1.2 常见命名实体
在公开NER语料中,命名实体类别以“时间TIME、地名LOC、人名PER、机构ORG”最为常见。
不同领域的语料可能包含不同类型的命名实体。在语料构建阶段,命名实体的设计应该结合考虑语料的来源和应用场景。例如智能导航领域,可包含如下命名实体:
命名实体 | 命名实体含义 |
---|---|
ROAD | 道路 |
HOTEL | 酒店 |
DISTRICT | 行政区/市辖区 |
ADDRESS | POI地址 |
PARK | 公园 |
RESTAURANT | 饭店 |
POI_ GENERIC | POI |
CHARGING | 充电桩/充电站 |
POI_TYPE | POI类别 |
1.3 标注方案
传统的NER解决方法是序列标注,也就是为文本序列中的每个字标注其所属的命名实体类别。由于一个命名实体通常由多个字组合而成,例如”北 京 市”组成一个DISTRICT实体;并且存在两个同类别命名实体连续出现的情况,例如“北京市 海淀区”是两个DISTRICT实体,所以在实际应用时,通常采用特殊字母来帮助人们判断命名实体的开始与结束。在不同的标注方案下,特殊字母的含义不同,如下:
-
BIO标注方案
B 表示Begin,命名实体的第一个字
I 表示 Inside,命名实体中除了第一个字以外的其他字
O 表示 Outside,不属于命名实体由此,语料就可以确定了,如下示例:
我 O 要 O 去 O 北 B-DISTRICT 京 I-DISTRICT 市 I-DISTRICT 北 B-ROAD 三 I-ROAD 环 I-ROAD 西 I-ROAD 路 I-ROAD 北 B-DISTRICT 京 I-DISTRICT 市 I-DISTRICT 海 B-DISTRICT 淀 I-DISTRICT 区 I-DISTRICT
-
BIOES标注方案
B 表示Begin,命名实体的第一个字
I 表示Inside,命名实体中除了第一个字和最后一个字以外的其他字
O 表示Outside,不属于命名实体
E 表示End,命名实体的最后一个字
S 表示Single,仅由一个字组成的命名实体由此,语料就可以确定了,如下示例:
我 O 要 O 去 O 北 B-DISTRICT 京 I-DISTRICT 市 E-DISTRICT 北 B-ROAD 三 I-ROAD 环 I-ROAD 西 I-ROAD 路 E-ROAD 北 B-DISTRICT 京 I-DISTRICT 市 E-DISTRICT 海 B-DISTRICT 淀 I-DISTRICT 区 E-DISTRICT
1.4 数据集
本文整理了中文NER语料,以备下次接触NER任务时快速开始研究和实战,也希望能够帮助各位读者朋友减少语料准备的时间投入。
领域 | 语料 | 样本个数 | 实体类别示例 | 语料简介 | 数据地址 |
---|---|---|---|---|---|
通用 | MSRA | 46k | PER, ORG, LOC | MSRA微软亚洲研究院开源命名实体识别数据 | 数据下载 |
通用 | Ontonotes | 15k | 由英语、汉语和阿拉伯语组成,涵盖新闻、电话对话、网络日志、usenet新闻组、广播、脱口秀 | 数据下载 | |
新闻 | 人民日报NER | 23k | PER, ORG, LOC | 1998年人民日报的实体标注语料 | 数据下载 |
玻森Boson NER | 2k | company_name, product_name | 由玻森中文语义开放平台提供 | 数据下载 | |
微博 | 1890 | PER.NAM, LOC.NAM | 包含2013 年11 月至2014 年12月期间从微博中采样的1,890 条博文 | 数据下载 | |
简历 | resume | 4k | TITLE, NAME, CONT | 随Lattice LSTM论文一同发布,从新浪财经爬取,收录了中国股市上市公司高管的简历 | 数据下载 |
新闻 | CLUENER 2020 | 10k | organization, name, position | 中文细粒度命名实体识别数据集,在清华大学开源的文本分类数据集THUCTC基础上,选出部分数据进行细粒度命名实体标注,原数据来源于Sina News RSS. | 数据下载 |
电子病历 | CCKS2017-Task2 | 800 | 身体部位;疼痛 | 由清华大学知识工程实验室,微软亚洲研究院,北京极目云健康科技有限公司提供,数据来源于其云医院平台的真实电子病历数据 | 详细介绍 数据下载 |
音乐 | CCKS2018-Task2 | 15k | song;artist | 主要来自人机对话系统中音乐领域以及非音乐领域的真实用户utterance请求记录 | 数据下载 |
口语理解 | NLPCC-Task4 | 20k | music.play, navigation.start_navigation, phone_call.make_a_phone_call | 采集自一个商用的任务型对话系统的线上数据,实体所属领域包括音乐、导航、电话 | 数据下载 |
1.5 评测指标
通常,正确的命名实体识别结果,既要确保实体边界正确,也要确保实体类型正确。实体边界和分词类似,找到实体的开始和结束,如果把实体“中关村SOHO”识别为“中关村”和“SOHO”两个实体,就发生了边界错误。而实体类型是分类结果,是命名实体所属的类别,例如“中关村SOHO”的正确实体类型是POI_GENERIC。
命名实体识别任务的常用评测指标是准确率P、召回率R、F1分值。具体计算又分为micro和macro,前者是直接计算所有样本的评测指标,更常用;后者是分别计算每个类别所属样本的评测指标,再求平均值,使得样本数较少的类别的正确与否变得“重要”起来,因此更适用于类别不均衡的数据集(不均衡的命名实体识别语料很常见)。
以下以Presion的计算公式,举例说明micro和macro的不同之处:
m i c r o P = 正确数量 样本总数