Определить скрытую марковскую модель для слова
Я пытаюсь определить скрытую марковскую модель и предсказать, является ли данная последовательность слов правильной, используя алгоритм Витерби ( 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 ответ
Я думаю, что вы путаете вероятности выбросов с вероятностями переходов. При определении HMM необходимо определить
- набор (скрытых) состояний, набор наблюдаемых,
- матрица перехода состояний, описывающая вероятность перехода из одного пространства в другое
- вероятности излучения, описывающие вероятность наблюдения одной наблюдаемой из данного (скрытого) состояния
- вектор вероятности начального состояния, описывающий вашу вероятность запуска в данном состоянии.
Если они находятся в вашем корпусе, я полагаю, что a, b и d - это ваши наблюдаемые, а не ваши состояния. Вам необходимо определить соответствующие состояния для завершения вашего HMM. Если вы можете наблюдать за состоянием, то ваша марковская модель не скрыта, это простая марковская модель и в алгоритме Витерби нет необходимости