序列标注的BIO标注体系

1、什么是序列标注

  • 输入和输出都是序列
  • 输入和输出序列是一一对应的
  • 是一种结构化的分类,分类问题的一种推广
  • 输出序列用的是BIO标注体系

序列标注是NLP中最基础的任务,应用十分广泛,如分词、词性标注、命名实体识别、关键词抽取、语义角色标注、槽位抽取等实质上都属于序列标注的范畴

2、标注体系

  • BIO 三位标注(B-begin, I-inside,O-outside)
    B-X表示实体X的开头
    I-X表示实体的结尾
    O表示不属于任何类型
输入序列 / S A T A 9 1 5 1 1
输出序列 B-brand I-brand O B-brand I-brand I-brand I-brand O O O O O O O O B-product I-product I-product I-product
  • BIOES (B-begin, I-inside,O-outside,E-end,S-single)
    B表示实体开头
    I表示实体内部
    O表示非实体
    E表示实体结尾
    S表示单个字符,其本身就是一个实体
输入序列 / S A T A 9 1 5 1 1
输出序列 B-brand E-brand O B-brand I-brand I-brand E-brand O O O O O O O O B-product I-product I-product E-product
  • BMES 四位序列标注法 (B-begin,M-middle,E-end,S-single)
    B表示实体开头
    M表示实体中间
    E表示实体结尾
    S表示单个字符,其本身就是一个实体
输入序列 / S A T A 9 1 5 1 1
输出序列 B E S B M M E S S S S S S S S B M M E

3、常见的序列标注任务

  • 中文分词
  • 词性标注
  • 命名实体识别

3.1 中文分词

分词基本上是所有自然语言处理任务的基础,目的是让文本的内容变成一个个的单词或词组,便于转换为词向量。

中文分词与英文分词的不同:

  1. 中文不像英文那样有空格作为词语的界限标志,而且“词”在中文里本来就是一个很模糊的概念,中文也不具备英文中的字母大小写等形态指示
  2. 中文的用字灵活多变,有些词语在脱离上下文语境的情况下无法判断是否是命名实体,而且就算是命名实体,当其处在不同的上下文语境下也可能是不同的实体类型
  3. 命名实体存在大量的嵌套现象,如“北京大学第三医院”这一组织机构名中还嵌套着同样可以作为组织机构名的“北京大学”,这种现象在组织机构名中尤其严重
  4. 中文里广泛存在简化表达现象,如”北医三院”、”国科大”,乃至简化表达构成的命名实体,如“国科大桥‘

3.2 词性标注

对已经分词完成的句子,将句子中的所有词标记词性。这里的“词”对应的就是已分词的词序列中的词,节点的标签空间为词性标记空间如{名词,动词,形容词,… .} 。每个词最终都会打上词性标签

词性标注的难点:

  1. 相对于英文,中文缺少词语形态变化,不能从词的形态来识别词性
  2. 一词多词性很常见。统计发现,一词多词性的概率高达22.5%。而且越常用的词,多词性线性越严重,比如“研究”既可以是名字也可以是动词。
  3. 词性划分标准不统一。词类划分粒度和标记符号等,目前还没有一个广泛认可的统一标准。比如LDC词性标注预料中,将汉语一级词性分为33类,而北京大学语料库则将其划分为26类。词类划分标准和标记符号的不统一,以及分词规范的含糊,都给词性标注带来了很大的困难。jieba分词采用了使用较为广泛的ICTCLAS 汉语词性标注集规范。
  4. 未登录词问题。和分词一样,未登录词的词性也是一个比较大的课题。未登录词不能通过查找字典的方式获取词性,可以采用HMM隐马尔科夫模型等基于统计的算法## 命名实体识别

3.3 命名实体识别

NER又称作专名识别,是自然语言处理中的一项基础任务,应用范围非常广泛。命名实体一般指的是文本中具有特定意义或者指代性强的实体,通常包括人名、地名、组织机构名、日期时间、专有名词等

NER系统就是从非结构化的输入文本中抽取出上述实体,并且可以按照业务需求识别出更多类别的实体,比如产品名称、型号、价格等。因此实体这个概念可以很广,只要是业务需要的特殊文本片段都可以称为实体。

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