序列标注

序列标注是为序列中每个元素打上标签的任务,是NLP中历史悠久且应用广泛的问题。

共 3 篇文章·阅读时间:约40分钟

01HMM与CRF

HMM和CRF是序列标注的两大经典方法,分别代表生成式和判别式模型。

隐马尔可夫模型

HMM是生成式模型,假设观测序列由隐状态序列生成。用于序列标注时,隐状态就是标签序列。

HMM的三个问题

  1. 概率计算:给定模型参数,计算观测序列概率
  2. 解码:给定观测序列,找出最可能的隐状态序列(维特比算法)
  3. 学习:给定观测数据,学习模型参数(前后向算法)

HMM的参数

初始概率 π:P(状态)

转移概率 A:P(状态t|状态t-1)

发射概率 B:P(观测t|状态t)

条件随机场

CRF是判别式模型,直接建模条件概率 P(标签序列|词序列),能学习更复杂的特征。

CRF vs HMM

特性HMMCRF
建模方式生成式判别式
特征学习有限任意特征
标签偏置存在不存在
计算复杂度较低较高

CRF的核心是定义特征函数,可以是任意函数(如"当前词是大写开头"、"前一个词是动词"等), 比HMM的发射概率和转移概率更灵活。

02命名实体识别

命名实体识别(NER)是从文本中识别出人名、地名、机构名等实体的任务,是信息抽取的核心。

NER任务定义

给定文本序列,输出每个词的标签,通常采用BIO或BIOES标注 scheme。

标注集示例(BIO)

B-PER / I-PER:人名的开始/内部

B-LOC / I-LOC:地名的开始/内部

B-ORG / I-ORG:机构名的开始/内部

BIOES标注示例

"John [B-PER] works at [B-ORG Google I-ORG]"
S:单实体,E:实体结尾

NER方法演进

规则方法

使用正则表达式、词典匹配。精度高但召回率低,难以迁移。

传统ML方法

CRF是主流,需要手工特征(词形、词性、上下文等)。

深度学习方法

BiLSTM-CRF是里程碑,词向量+BiLSTM+CRF层,端到端学习。

预训练模型时代

BERT+CRF / BERT+Softmax,只需在BERT上微调即可达到SOTA。

NER应用

  • 信息抽取:从新闻中提取事件、人物关系
  • 知识图谱构建:实体识别与链接
  • 问答系统:问题中的实体识别
  • 机器翻译:保留专有名词

03词性标注

词性标注(POS Tagging)为句子中每个词标注其语法类别,是NLP的基础任务之一。

词性标注任务

为每个词分配一个词性标签,如名词(NN)、动词(VB)、形容词(JJ)等。

示例

"The/DT cat/NN sits/VBZ on/IN the/DT mat/NN"
DT=限定词, NN=名词单数, VBZ=动词第三人称单数现在时, IN=介词

标注集与工具

常用标注集

  • Penn Treebank (PTB):英语,45个词性标签
  • 863词性标注集:中文,94个词性标签
  • 北大词性标注集:中文,106个词性标签
传统方法

HMM、CRF、TnT(TnT是一个高效的基于Trigram的词性标注器)。

深度学习方法

BiLSTM-CRF、BERT+Softmax。BERT微调后准确率可达97%+。

词性标注的作用

  • 语法分析:句法树构建的基础
  • 特征工程:作为下游任务的特征
  • 文本预处理:分词消歧、命名实体识别辅助
  • 语言学研究:语法规则发现
----