隐马尔可夫在自然语言里可以用来做词性标注,实体标注和分词。
在词性标注的任务中,我们可以将一个句子看成是可见状态序列,每一个词都是一个可见的状态(oi),而每一个词都对应着一个词性,这个词性就是隐藏状态(qi),而整个文本中的所有词汇表就是观察状态的集合(W),预定义的词性标记集就是隐藏状态集合(S)。而我们的目标是,在给定一个观察序列O(句子,或者可以看成是词组的序列)的情况下,寻找其对应的隐藏状态序列Q(每一个词对应的词性标记)。
词性标注中我的理解转移概率矩阵A就是已知上个词的词性,紧接下一个可能的词性会是什么的概率。观测概率矩阵B是已知这个词的词性,它会对应哪个词。当HMM是2阶时,转移概率矩阵由前2个词的词性决定;是3阶时,转移概率矩阵由前3个词的词性决定。初始状态概率向量π我不太理解如何生成。按照整体词性标注库中在句子中不同位置的统计概率决定?
最后如何做标注我也不完全理解。是有了观察序列和3中HMM的参数,就能反过来推导计算出隐藏状态序列的值吗?或者是计算隐藏状态序列中每一个值的概率?这个中要解决的问题和老师文中的例子不太一样。
展开
作者回复: 做标注一般就是根据观测找到后验概率最大的状态,也就是在给定词语时找到最可能的一组词性。求解时利用的是Viterbi算法,简单说就是每走一步都只保留最优的状态,比穷举效率高很多。
在监督学习里,隐马尔可夫的三个矩阵需要在初始化时确定,根据训练数据计算出来。两个矩阵你理解的都是对的。初始状态其实就是词性的先验,每类词在文本中出现的频率。