摘要:題目闡釋算法實(shí)現(xiàn)。用實(shí)現(xiàn)的和表現(xiàn)層的轉(zhuǎn)移動(dòng)態(tài)規(guī)劃問(wèn)題,歸結(jié)到相鄰兩個(gè)之間存在轉(zhuǎn)移概率,轉(zhuǎn)移概率。難點(diǎn)三層循環(huán),為了保留,計(jì)算每個(gè)的的概率,所以要嵌套在之外。
題目闡釋:
viterbi算法實(shí)現(xiàn)。 用python實(shí)現(xiàn)viterbi的hidden state 和 表現(xiàn)層的轉(zhuǎn)移 動(dòng)態(tài)規(guī)劃問(wèn)題,歸結(jié)到 相鄰兩個(gè)step之間存在 state轉(zhuǎn)移概率,state2emibission轉(zhuǎn)移概率。 計(jì)算后可以得到每個(gè)step的每個(gè)state max_probablity 由于step_n依賴于 step_n-1,跟 step_n-2無(wú)關(guān),所以可以一直如此往復(fù),得到最后的max_prob 整個(gè)問(wèn)題抽象為,下一個(gè)step依賴于上一個(gè)step的所有state,所以只需要計(jì)算每一層step的所有state的prbo即可。
難點(diǎn):
三層for循環(huán),為了保留,計(jì)算每個(gè)step的state的概率,所以要 next_state 嵌套在 source_state之外。
states=["Rainy","Sunny"] observations=["walk","shop","clean"] observations=("walk","clean","walk") emission_probability={"Rainy":{"walk":0.1,"shop":0.4,"clean":0.5}, "Sunny": {"walk": 0.6, "shop": 0.3, "clean": 0.1} } trans_probability={"Rainy":{"Rainy":0.7,"Sunny":0.3}, "Sunny":{"Rainy":0.4,"Sunny":0.6} } start_probability={"Rainy":0.6,"Sunny":0.4} def vertibi(states,objservations,start_prob,trans_prob,emi_prob): T={state:[start_prob[state],[state],start_prob[state]] for state in states} for objservation in objservations: U={} for next_state in states: total=0 argmax=None valmax=0 for source_state in states: prob,v_path,v_prob=T[source_state] p=emi_prob[source_state][objservation]*trans_prob[source_state][next_state] prob*=p v_prob*=p if v_prob>valmax: valmax=v_prob argmax=v_path+[next_state] total+=prob U[next_state]=[total,argmax,valmax] T=U total = 0 argmax = None valmax = 0 for state in states: prob, v_path, v_prob=T[state] if v_prob>valmax: argmax=v_path total=prob valmax=v_prob return total,argmax,valmax total,argmax,valmax=vertibi(states,observations,start_probability,trans_probability,emission_probability) print(total) print(argmax) print(valmax)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42110.html
摘要:我來(lái)到北京清華大學(xué)對(duì)應(yīng)的狀態(tài)應(yīng)該為其實(shí)和的區(qū)別就是對(duì)未成功切分的部分,沒(méi)有使用進(jìn)行分詞。 介紹 結(jié)巴分詞是一個(gè)受大家喜愛(ài)的分詞庫(kù),源碼地址為github,今天我們就跟進(jìn)源碼,看一下結(jié)巴分詞的原理 原理 def cut(self, sentence, cut_all=False, HMM=True): The main function that...
摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...
摘要:源碼漫游指南一作者秘塔科技算法研究員前幾天發(fā)布了第五屆頂級(jí)語(yǔ)言交互排行榜,語(yǔ)言繼續(xù)穩(wěn)坐第一把交椅,并且相比去年的排行情況,拉開(kāi)了與第二名的距離去年第二名的排名得分為。包含字節(jié)碼相關(guān)的底層抽象。字節(jié)碼對(duì)象的實(shí)現(xiàn)。源文件執(zhí)行結(jié)束后的清理工作。 Python源碼漫游指南(一) 作者:秘塔科技算法研究員 Qian Wan 前幾天IEEE Spectrum發(fā)布了第五屆頂級(jí)語(yǔ)言交互排行榜,Pyth...
摘要:的解析器實(shí)現(xiàn)更成熟,第三方庫(kù)質(zhì)量高解析器盡管已經(jīng)有了很大的性能提升和很多新的功能,但是從源代碼實(shí)現(xiàn)的角度來(lái)說(shuō),基本上是通過(guò)在源代碼上打來(lái)增加功能的。相對(duì)而言,解析器更成熟,也比較穩(wěn)定。 最近在考慮學(xué)習(xí)一門(mén)后端語(yǔ)言,在ruby和python直接猶豫,然后自己做了一些對(duì)比,希望能幫到有同樣問(wèn)題的你。 一、異同對(duì)比選擇1、Python和ruby的相同點(diǎn): 都強(qiáng)調(diào)語(yǔ)法簡(jiǎn)單,都具有更一般的表達(dá)...
閱讀 2233·2021-09-02 15:11
閱讀 1565·2019-08-30 15:43
閱讀 2100·2019-08-29 13:48
閱讀 2820·2019-08-26 13:55
閱讀 2126·2019-08-23 15:09
閱讀 2924·2019-08-23 14:40
閱讀 3458·2019-08-23 14:23
閱讀 2666·2019-08-23 14:20