标注问题以及隐马尔可夫模型
来源:互联网 发布:网络借贷怎么样 编辑:程序博客网 时间:2024/03/29 14:27
简介
序列标注问题:给定一个句子x1…xn,生成一个与之对应的序列y1…yn.如词性标注。
序列标注的目标是从训练数据中学习一个从句子到标注序列的映射。
两种标注问题:词性标注和命名实体识别
词性标注
词性标注的一个难点是歧义。英文中的许多单词可以有不同的词性。另外一个问题是训练语料不可能穷尽所有的单词,如何确定训练语料中没出现过单词的词性同样值得研究。
词性标注时,有两种有用的信息值得考虑。第一是单个单词的词性统计性特征。某些单词更有可能是名词而某些单词更多的是动词。如quarter既可以做动词又可以做名词,但是更多的时候做的是名词。第二种信息是第一个单词来说上下文的信息对其有影响。譬如名词后面更多的接动词而不是形容词,而名词前面更多的是形容词而不是副词。当然,有时候这两种信息表现的并不一致,甚至会出现相互冲突的现象。这在后面的模型中会具体考虑这个问题。
命名实体识别
命名实体识别的输入是一个句子,目标是将句子中的所有已定义的命名实体找出来(如人名、地点名或者公司名等)。句子中的每个单词或者是每个命名实体的开始(如SC表示公司名的开始)、继续(如CC为公司名的非其实单词)或者非命名实体单词(NA).
生成式模型以及噪音信道模型
自然语言处理中的许多问题都是监督式的学习问题。例如在标注问题中,我们要从训练样本中学习一个输入x到标记序列y的映射。在机器翻译中,输入x可以是源语言,输出y是需要得到的语言。在语音识别当中,输入是语音,输出是文字。所有这些问题都是要学习从输入x到输出y的一个映射函数,通过给定的标记数据。
一种方式是定义映射f(X)为条件概率。在这种方法种,会有一个条件概率模型对所有的x,y定义了所有的条件概率:p(y|x).模型的参数通过训练语料学习得到。对于测试集中的一个数据x,模型的输出就是:
f(X)=argmax
另外一个在自然语言处理和机器学习中用的比较多的方法是定义一个生成式模型。而不是直接估计条件概率p(y|x).在生成式模型中会学习联合概率模型p(x,y).模型的参数仍然从训练预料中学习得到。在许多情形下会将联合概率写成:p(x,y)=p(y)*p(x|y).然后分别估计p(y)和p(x|y).这两个部分又有如下解释:
- p(y)是关于y的先验概率分布。
- p(x|y)是给定y生成x的条件概率。
通过联合概率以及贝叶斯公式,我们可以得到p(y|x)=p(y)p(x|y)/p(x).然后求argmaxp(y|x).这种将联合概率分解为p(y)和p(x|y)的模型被称为噪音信道模型。直观来讲,生成模型的过程如下:首先通过概率密度p(y)生成一个标记y,然后又根据条件概率密度p(x|y)生成x.我们目标是当我们给定x之后寻找最有可能生成x的y.其中给定输入x寻找输出f(x)的问题被成为解码问题。
生成序列模型
对于序列标注问题,如何通过生成式模型来求解。
这里面有三个基本问题:
- 如何定义生成式序列模型p(x1…xn,y1…yn)?
- 如何从训练语料中估计出模型的参数
- 对于输入x1…xn,如何有效的找到y1…yn使得p(x1…xn,y1…yn)最大
三元隐马尔可夫模型
如何定义生成式序列模型p(x1…xn,y1…yn)
隐马尔可夫模型的关键就在于定义
p(x1…xn,y1…)=
其中
在三元隐马尔可夫模型下,句子生成的步骤如下:
- 初始化i=1并且
y0=y−1=∗ - 根据分布
q(yi|yi−2,yi−1) 生成yi - 如果
yi=STOP ,返回y1...yn,x1...xn ,否则根据条件概率e(xi|yi) 生成xi 并且i+1返回第二步
估计模型的参数
模型参数的估计采用最简单的极大似然估计,就是统计训练语料中相关词、词性出现的次数,然后做除法。为了避免数据稀疏的问题,可以采用语言模型中的平滑处理方法,就是一元、二元、三元模型估计一块上,最后做个折中。如 q(s|u,v)=a1*
解码方法
对于给定的输入语句x1…xn,解码算法是找出最有可能的序列y1…yn.
最简单的方法就是枚举法,就是遍历整个解空间,寻找是概率p(x1…xn,y1…yn)最大的y1…yn.但是这种方法对于标记词典大小为n,句子长度为m的情况,总的可能序列是
维特比算法
枚举法的时间复杂度太高,采用动态规划的维特比算法。
输入仍然是句子序列x1…xn.对于这个句子,对于任意的
定义
令
算法逐步的计算
完整的解码算法如下:
也可以在每一步存储使得当前序列概率最大的标记。其算法如下:
总结
对于序列标记问题的相关要点如下:
首先学习一个三元的隐含马尔可夫模型,这个模型有参数:q(s|u,v)和e(x|s). 定义任何句子和标记的联合概率为(其中
yn+1=STOP ):p(x1...xn,y1...yn+1)=∏n+1i=1q(yi|yi−2,yi−1)∏ni=1e(xi|yi) 给予一个训练语料,可以使用最大似然估计获取上述的参数:
q(s|u,v)=c(u,v,s)c(u,v) e(x|s)=c(s−>x)c(s) 给定一个句子
x1...xn 以及由2估计的参数q和e(即训练好的隐马模型),通过维特比解码算法(figure 2.5)获得概率最大的标记序列。
- 标注问题以及隐马尔可夫模型
- 隐马尔可夫模型与词性标注(上)
- 隐马尔可夫模型与词性标注(下)
- 使用隐马尔科夫模型Viterbi算法解决词性标注问题
- 标注问题
- 标注问题
- 序列标注模型
- 统计学习:泛化能力、生成模型、判别模型、分类、标注和回归问题
- 基于隐马尔可夫模型的有监督词性标注
- 基于隐马尔可夫模型的有监督词性标注
- 基于隐马尔可夫模型的有监督词性标注
- 基于隐马尔可夫模型的有监督词性标注
- 序列标注模型和分类器标注模型区别
- 标注偏置问题(Label Bias Problem)和HMM、MEMM、CRF模型比较
- 标注偏置问题(Label Bias Problem)和HMM、MEMM、CRF模型比较
- 标注偏置问题(Label Bias Problem)和HMM、MEMM、CRF模型比较
- NLP | 自然语言处理 - 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)
- 标注问题与隐马尔科夫模型(Tagging Problems, and Hidden Markov Models)
- 基于c++的单链表,双向链表操作以及环
- 网页添加html编辑器
- POJ 1988 Cube Stacking(带权并查集)
- 图解Linux命令之--cd命令
- 黑马程序员——OC语言加强---NSFileManager介绍和用法
- 标注问题以及隐马尔可夫模型
- hdu 3449 Consumer
- position:absolute相对于谁定位以及当溢出时怎么隐藏
- 文件写的简单实例
- 深入Java集合学习系列:深入CopyOnWriteArraySet
- 视频Android studio1.3.1从菜鸟到高手--第一季-IT蓝豹
- 5种8阶群、5种12阶群、15种24阶群、52种48阶群(2013-01-29 17:03、2013-03-23 21:36)(附GAP软件的使用)
- 无氧间歇家庭瘦身(chinafitter)
- MySql数据库索引原理(总结性)