为单词定义隐马尔可夫模型

时间:2018-03-13 10:23:55

标签: probability hidden-markov-models viterbi

我尝试定义一个隐藏的马尔可夫模型,并使用维特比算法(https://en.wikipedia.org/wiki/Viterbi_algorithm)预测给定的单词序列是否正确。为了帮助理解,我试图定义模型参数:

语料库中的字母为abbd。从这个我定义:

states : a,b,b,d

trans_p (transition probabilities) : 
There are
 a : 1/4
 b : 2/4
 d : 1/4

emit_p (emission probabilities) : 
 count(a->b) / count(a) = 1/1 = 1
 count(b->b) / count(b) = 1/2 = 1/2
 count(b->d) / count(b) = 1/2 = 1/2

以上是否正确?

我是否需要为d定义转换概率? 我是否需要定义b->a&的排放概率? b->d

我还提到: https://stats.stackexchange.com/questions/212961/calculating-emission-probability-values-for-hidden-markov-model-hmm帮助确定排放概率。

1 个答案:

答案 0 :(得分:0)

我认为您将排放概率与转移概率混淆。定义HMM时,需要定义

  • 一组(隐藏)状态,一组可观察对象,
  • 描述从一个空间到下一个空间的概率的状态转移矩阵
  • 描述观察一个概率的发射概率 从给定(隐藏)状态可观察到的
  • 初始状态概率 矢量描述你在给定的开始概率是多少 状态。

如果他们在你的语料库里,我想a,b和d是你的观察者,而不是你的状态。您需要定义相关状态才能完成HMM。如果您可以观察状态,那么您的Markov模型不会被隐藏,它是一个普通的Markov模型,并且不需要Viterbi算法