Viterbi algorithm: Difference between revisions

Content deleted Content added
References: upgrade to {{Reflist}}
Line 136:
V.append({})
for st in states:
max_tr_prob = V[t - 1] [states[0]] ["prob"] * trans_p[states[0]] [st] * emit_p[st] [obs[t]]
prev_st_selected = states[0]
for prev_st in states[1:]:
tr_prob = V[t - 1] [prev_st] ["prob"] * trans_p[prev_st] [st] * emit_p[st] [obs[t]]
if tr_prob > max_tr_prob:
max_tr_prob = tr_prob
prev_st_selected = prev_st
 
max_prob = max_tr_prob * emit_p[st] [obs[t]]
V[t] [st] = {"prob": max_prob, "prev": prev_st_selected}