Определить скрытую марковскую модель для слова

Я пытаюсь определить скрытую марковскую модель и предсказать, верна ли данная последовательность слов, используя алгоритм Витерби (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, которые помогли определить вероятности выбросов.


person blue-sky    schedule 13.03.2018    source источник


Ответы (1)


Я думаю, вы путаете вероятности выбросов с вероятностями перехода. При определении HMM вам необходимо определить

  • набор (скрытых) состояний, набор наблюдаемых,
  • матрица перехода состояний, описывающая вероятность перехода от одного места к другому
  • вероятности излучения, описывающие вероятность наблюдения одного наблюдаемого из заданного (скрытого) состояния
  • вектор вероятности начального состояния, описывающий вашу вероятность запуска в данном состоянии.

Если они находятся в вашем корпусе, я полагаю, что a, b и d являются вашими наблюдаемыми, а не вашими состояниями. Вам необходимо определить соответствующие состояния, чтобы завершить HMM. Если вы можете наблюдать за состоянием, то ваша марковская модель не скрыта, это простая марковская модель, и нет необходимости в алгоритме Витерби.

person citronrose    schedule 13.03.2018