为word定义隐马尔可夫模型
Define hidden markov model for word
我正在尝试定义一个隐马尔可夫模型,并使用维特比算法 (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 这有助于定义排放概率。
我认为您混淆了发射概率和转移概率。定义HMM时,需要定义
- 一组(隐藏)状态,一组可观察值,
- 描述从一个 space 到下一个
的概率的状态转移矩阵
- 排放概率描述观察到一个的概率
从给定(隐藏)状态可观察
- 一个初始状态概率
描述你在给定条件下开始的概率的向量
状态。
如果它们在你的语料库中,我想 a、b 和 d 是你的可观察量,而不是你的状态。您需要定义相关状态来完成您的 HMM。如果你能观察到状态,那么你的马尔可夫模型就没有隐藏,它是一个普通的马尔可夫模型,不需要维特比算法
我正在尝试定义一个隐马尔可夫模型,并使用维特比算法 (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 这有助于定义排放概率。
我认为您混淆了发射概率和转移概率。定义HMM时,需要定义
- 一组(隐藏)状态,一组可观察值,
- 描述从一个 space 到下一个 的概率的状态转移矩阵
- 排放概率描述观察到一个的概率 从给定(隐藏)状态可观察
- 一个初始状态概率 描述你在给定条件下开始的概率的向量 状态。
如果它们在你的语料库中,我想 a、b 和 d 是你的可观察量,而不是你的状态。您需要定义相关状态来完成您的 HMM。如果你能观察到状态,那么你的马尔可夫模型就没有隐藏,它是一个普通的马尔可夫模型,不需要维特比算法