自然語言學習-HMM隱馬爾科夫學習筆記(未完成)




先上一個代碼,算法與應用內容後續補充。(留一個位子)


import numpy as np
O = '1635273524'
Pai=np.matrix([[1.0/3],[1.0/3],[1.0/3]])
B_prob = np.matrix([
        [1.0/6, 1.0/6, 1.0/6, 1.0/6, 1.0/6, 1.0/6,     0,     0],
        [1.0/4, 1.0/4, 1.0/4, 1.0/4,     0,     0,     0,     0],
        [1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8, 1.0/8]
    ])
A_prob = np.matrix([
        [1.0/3, 1.0/3, 1.0/3],
        [1.0/3, 1.0/3, 1.0/3],
        [1.0/3, 1.0/3, 1.0/3]
    ])

alpha1=np.multiply(Pai,B_prob[:,int(O[0])-1])
alpha2=np.multiply(np.transpose(np.transpose(alpha1)*A_prob),B_prob[:,int(O[1])-1])
result=np.sum(alpha2)

def question1(O,Pai,A_prob,B_prob):
    alpha1=np.multiply(Pai,B_prob[:,int(O[0])-1])
    for i in xrange(1,len(O)):
        alpha2=np.multiply(np.transpose(np.transpose(alpha1)*A_prob),B_prob[:,int(O[i])-1])
        alpha1=alpha2
    print i
    return np.sum(alpha2)
print question1(O,Pai,A_prob,B_prob)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章