命名实体识别
命名实体识别是指识别序列中的人名、地名、组织机构名等实体。属于序列标注问题。
序列标注的几种模式
在序列标注中,我们想对一个序列的每一个元素(token)标注一个标签。一般来说,一个序列指的是一个句子,而一个元素(token)指的是句子中的一个词语或者一个字。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。
不同的序列标注任务就是将目标句中的字或者词按照需求的方式标记,不同的结果取决于对样本数据的标注,一般序列的标注是要符合一定的标注标准的如(PKU数据标注规范)。另外, 词性标注、分词都属于同一类问题,他们的区别主要是对序列中的token的标签标注的方式不同。
下面以命名实体识别来举例说明. 我们在进行命名实体识别时,通常对每个字进行标注。中文为单个字,英文为单词,空格分割。
标签类型的定义一般如下:
定义 | 全称 | 备注 |
---|---|---|
B | Begin | 实体片段的开始 |
I | Intermediate | 实体片段的中间 |
E | End | 实体片段的结束 |
S | Single | 单个字的实体 |
O | Other/Outside | 其他不属于任何实体的字符(包括标点等) |
常见的标签方案
常用的较为流行的标签方案有如下几种:
- IOB1: 标签I用于文本块中的字符,标签O用于文本块之外的字符,标签B用于在该文本块前面接续则一个同类型的文本块情况下的第一个字符。
- IOB2: 每个文本块都以标签B开始,除此之外,跟IOB1一样。
- IOE1: 标签I用于独立文本块中,标签E仅用于同类型文本块连续的情况,假如有两个同类型的文本块,那么标签E会被打在第一个文本块的最后一个字符。
- IOE2: 每个文本块都以标签E结尾,无论该文本块有多少个字符,除此之外,跟IOE1一样。
- START/END (也叫SBEIO、IOBES): 包含了全部的5种标签,文本块由单个字符组成的时候,使用S标签来表示,由一个以上的字符组成时,首字符总是使用B标签,尾字符总是使用E标签,中间的字符使用I标签。
- IO: 只使用I和O标签,显然,如果文本中有连续的同种类型实体的文本块,使用该标签方案不能够区分这种情况。
其中最常用的是IOB2、IOBS、IOBES。
BIO标注模式
将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。
命名实体识别中每个token对应的标签集合如下:
1 | LabelSet = {O, B-PER, I-PER, B-LOC, I-LOC, B-ORG, I-ORG} |
其中,PER代表人名, LOC代表位置, ORG代表组织. B-PER、I-PER代表人名首字、人名非首字,B-LOC、I-LOC代表地名(位置)首字、地名(位置)非首字,B-ORG、I-ORG代表组织机构名首字、组织机构名非首字,O代表该字不属于命名实体的一部分。

对于词性标注, 则可以用{B-NP, I-NP}给序列中的名词token打标签
BIOES标注模式
BIOES标注模式就是在BIO的基础上增加了单字符实体和字符实体的结束标识, 即
1 | LabelSet = {O, B-PER, I-PER, E-PER, S-PER, B-LOC, I-LOC, E-LOC, S-LOC, B-ORG, I-ORG, E-ORG, S-ORG} |

根据标注的复杂度, 还有会在其中添加其他的比如MISC之类的实体, 如
1 | LabelSet = {O ,B-MISC, I-MISC, B-ORG ,I-ORG, B-PER ,I-PER, B-LOC ,I-LOC}。 |
其中,一般一共分为四大类:PER(人名),LOC(位置[地名]),ORG(组织)以及MISC(杂项),而且B表示开始,I表示中间,O表示不是实体。
其他类似的标注方式:
- 标注方式1:
1 | LabelSet = {BA, MA, EA, BO, MO, EO, BP, MP, EP, O} |
其中,
BA代表这个汉字是地址首字,MA代表这个汉字是地址中间字,EA代表这个汉字是地址的尾字;
BO代表这个汉字是机构名的首字,MO代表这个汉字是机构名称的中间字,EO代表这个汉字是机构名的尾字;
BP代表这个汉字是人名首字,MP代表这个汉字是人名中间字,EP代表这个汉字是人名尾字,而O代表这个汉字不属于命名实体。
- 标注方式2:
1 | LabelSet = {NA, SC, CC, SL, CL, SP, } |
其中 NA = No entity, SC = Start Company, CC = Continue Company, SL = Start Location, CL = Continue Location, SP = Start Person, CP = Continue Person
上面两种标注方式与BIO和BIEOS类似, 只是使用不同的标签字符来标识而已.
基于字符的BiLSTM-CRF模型
參考文獻
序列标注两种模式BIO和BIOES
NER-序列标注
序列标注中的BIO标注介绍
NER
基础却不简单,命名实体识别的难点与现状
python+HMM之维特比解码
Tagging Problems, and Hidden Markov Models