序列标注
序列标注是为序列中每个元素打上标签的任务,是NLP中历史悠久且应用广泛的问题。
01HMM与CRF
HMM和CRF是序列标注的两大经典方法,分别代表生成式和判别式模型。
隐马尔可夫模型
HMM是生成式模型,假设观测序列由隐状态序列生成。用于序列标注时,隐状态就是标签序列。
HMM的三个问题
- 概率计算:给定模型参数,计算观测序列概率
- 解码:给定观测序列,找出最可能的隐状态序列(维特比算法)
- 学习:给定观测数据,学习模型参数(前后向算法)
HMM的参数
初始概率 π:P(状态)
转移概率 A:P(状态t|状态t-1)
发射概率 B:P(观测t|状态t)
条件随机场
CRF是判别式模型,直接建模条件概率 P(标签序列|词序列),能学习更复杂的特征。
CRF vs HMM
| 特性 | HMM | CRF |
|---|---|---|
| 建模方式 | 生成式 | 判别式 |
| 特征学习 | 有限 | 任意特征 |
| 标签偏置 | 存在 | 不存在 |
| 计算复杂度 | 较低 | 较高 |
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%+。
词性标注的作用
- 语法分析:句法树构建的基础
- 特征工程:作为下游任务的特征
- 文本预处理:分词消歧、命名实体识别辅助
- 语言学研究:语法规则发现