【NLP】序列标注BIO介绍(也叫IOB2)

1. 序列标注

      序列标注(Sequence labeling)是我们在解决NLP问题时经常遇到的基本问题之一。在序列标注中,我们想对一个序列的每一个元素标注一个标签。一般来说,一个序列指的是一个句子,而一个元素指的是句子中的一个词。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。

      序列标注一般可以分为两类

1、原始标注(Raw labeling):每个元素都需要被标注为一个标签。

2、联合标注(Joint segmentation and labeling):所有的分段被标注为同样的标签。

      命名实体识别(Named entity recognition, NER)是信息提取问题的一个子任务,需要将元素进行定位和分类,如人名、组织名、地点、时间、质量等。

      举个NER和联合标注的例子。一个句子为:Yesterday , George Bush gave a speech. 其中包括一个命名实体:George Bush。我们希望将标签“人名”标注到整个短语“George Bush”中,而不是将两个词分别标注。这就是联合标注。

2. BIO标注

(B-begin,I-inside,O-outside)

      解决联合标注问题的最简单的方法,就是将其转化为原始标注问题。标准做法就是使用BIO标注。

      BIO标注:将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。

      比如,我们将 X 表示为名词短语(Noun Phrase, NP),则BIO的三个标记为:

(1)B-NP:名词短语的开头

(2)I-NP:名词短语的中间

(3)O:不是名词短语

    因此可以将一段话划分为如下结果;

【NLP】序列标注BIO介绍(也叫IOB2)_第1张图片 

      我们可以进一步将BIO应用到NER中,来定义所有的命名实体(人名、组织名、地点、时间等),那么我们会有许多 B 和 I 的类别,如 B-PERS、I-PERS、B-ORG、I-ORG等。然后可以得到以下结果:

【NLP】序列标注BIO介绍(也叫IOB2)_第2张图片 

3. 其他标注方式介绍

3.1 IOB1标注模式

标签I用于文本块中的字符,标签O用于文本块之外的字符,标签B用于在该文本块前面接续则一个同类型的文本块情况下的第一个字符。

举个简单的例子(标注地名)

南京北京

I   I  B  I

南京和北京

I   I  O  I   I

3.2 IOE1标注模式

标签I用于文本块中的字符,标签O用于文本块之外的字符,标签B用于在该文本块前面接续则一个同类型的文本块情况下的第一个字符。

想法和IOB1一样,只不过是用于结尾。

3.3 IOE2标注模式

每个文本块都以标签B开始,除此之外,跟IOB1一样。

3.4 BIOES(也叫SBEIO、IOBES)标注模式

(B-begin,I-inside,O-outside,E-end,S-single)

包含了全部的5种标签,使用S标签表示文本块由单个字符组成;由一个以上的字符组成时,首字符总是使用B标签,尾字符总是使用E标签,中间的字符使用I标签。

3.5 IO标注模式 

只使用I和O标签,显然,如果文本中有连续的同种类型实体的文本块,使用该标签方案不能够区分这种情况。

其中最常用的是IOB2、IOBS、IOBES。 

参考文献

[1] http://nlpers.blogspot.com.au/2006/11/getting-started-in-sequence-labeling.html

[2] https://blog.csdn.net/weixin_38278334/article/details/83897997

你可能感兴趣的:(NLP,自然语言处理,p2p,人工智能)