词性标注与HMM模型原理
1.摘要
本章主要介绍了:
- 英语中的词性分类、标注集
- 词性标注的意义及方法(基于规则、基于HMM、基于规则转换)
- 词性标注的评估和误差分析
- 关于词性标注的一些前沿话题(多标注词性和合成词的分割问题,未登录词的识别与标注,不同语言的词性标注,多算法合成的词性标注)
2.词性分类
在英语中,从另一个角度可将词性分为两大类:封闭类、开放类
- 封闭类:即该类词中不会再有新的词加入进去了,比如“介词、连词、冠词、数词”
- 开放类:即该类词中可能还会有新的词加入,比如“名词、动词、形容词、副词”。例如:“天秀”、“蒂花之秀”、“造化钟神秀”、emmmm
3.标注集
要想做词性标注肯定得有一个标注好的词库作为参考,一个标注集的好坏直接影响文本最终的词性标注好坏。下面列出几个常用的标注集:
- 英语:
Brown corpus: 87 tags
Penn Treebank: 45 tags
Lancaster UCREL C5(used for the BNC): 61 tags
Lancaster C7: 146 tags - 中文:
PENN:33 tags
北大:39 tags
4.词性标注的方法
在进行词性标注之前得先进行分词处理,去掉符号。
标注算法输入:词序列、标注集。
标注算法输出:每一个单词后对应的最佳词性标注
但是由于词语在不同的上下文环境中,其词性是不同的,所以得进行消歧处理。而这也是词性标注算法要解决的最大问题,下面就引出这三个词性标注算法。
4.1基于规则的词性标注算法
现在基于规则的词性标注普遍上都是采用“语法限制”的方法来进行词性选择——EngCG Tagger。它通过两个阶段来实现:
- 先将文本中的单词按照标注集生成每一个可能的词性标注,有可能存在一个词对应多个词性的情况,下面就要对这些多标注词进行筛选,选出最佳词性。
- 通过上下文和语法规则来消除一些不符规则的词性
我们通过上面的步骤可发现,这里存在一个问题,就是上下文的语法规则要怎么来确定,早期都是通过相关领域的语言学专家进行规则的制定,然而随着语料库规模的逐步增大,以人工提取规则的方式显然是不现实的,于是在这基础之上又提出了基于规则转换的词性标注算法(就是基于机器学习的规则自动提取方法)。
4.2基于规则转换的词性标注算法
其具体处理过程如下图所示(图像来源 https://www.jianshu.com/p/cceb592ceda7):
4.3基于HMM的词性标注算法
4.3.1 隐马尔可夫模型的基本概念
隐马尔可夫模型是一种时序概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由序列中的各个状态生成一个观测结果。这样一个产生观测随机序列的过程即为马尔可夫链。隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。
形式化表示如下HMM(Q,V,A,B,π):
- 所有可能的隐藏状态集合 Q = { q 1 . . . q n } Q=\{q_1...q_n\} Q={ q1...qn},n为可能的状态数
- 所有可能的观测状态集合 V = { v 1 . . . v m } V=\{v_1...v_m\} V={ v1...vm},m为可能的观测数
- 初始隐藏状态概率向量 π = { π i = p ( q i ) } \pi=\{\pi_i = p(q_i)\} π={ πi=p(qi)},即初始时刻(t=1),每一个隐藏状态的出现概率
- 隐藏状态转移概率矩阵 A = [ a i j ] n × n A =[a_{ij}]_{n\times n} A=[aij]n×n,其中 a i j a_{ij} aij表示在当前时刻状态 q i q_i qi转移到下一时刻状态 q j q_j qj的概率: a i j = p ( t + 1 = q j t = q i ) a_{ij}=p(\frac{t+1=q_j}{t=q_i}) aij=p(t=qit+1=qj)
- 观测概率矩阵 B = [ b j k ] n × m B =[b_{jk}]_{n\times m} B=[bjk]n×m,其中 b j k b_{jk} bjk表示在当前时刻状态 q j q_j qj的条件下产生观测状态 v k v_k vk的概率: b j k = p ( v k q j ) b_{jk}=p(\frac{v_k}{q_j}) bjk=p(qjvk)
其中π、A决定了下一时刻的隐藏状态,B决定了该时刻该隐藏状态产生的观测状态。
我们从上面的表述可看出,为了简化模型的复杂度,HMM模型做了两个假设:
- 齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的隐藏状态只依赖于其前一时刻的隐藏状态,与其他时刻的隐藏状态及观测状态无关,也与时刻t无关
- 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
4.3.2 什么问题适合HMM模型
使用HMM模型时我们的问题一般有这两个特征:
- 我们的问题是基于序列的,比如时间序列,或者状态序列。
- 我们的问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观察到的,即隐藏状态序列,简称状态序列。
由此,根据HMM模型,我们可引出如下3个方面的问题:
- 评估观察序列概率。即给定模型λ=(A,B,π)和观测序列 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,计算在模型λ下观测序列O出现的概率P(O|λ)。这个问题的求解需要用到前向后向算法,这个问题是HMM模型三个问题中最简单的。
- 模型参数学习问题。即给定观测序列 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT,估计模型λ=(A,B,π)的参数,使该模型下观测序列的条件概率P(O|λ)最大。这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法,这个问题是HMM模型三个问题中最复杂的。
- 预测问题,也称为解码问题。即给定模型λ=(A,B,π)和观测序列 O = o 1 , o 2 , . . . , o T O={o_1,o_2,...,o_T} O=o1,o2,...,oT