<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-23  評論-58  文章-0  trackbacks-0
    wikipedia上有個java版的Viterbi(維特比)實現程序(http://en.wikipedia.org/wiki/Viterbi_algorithm),但是3個觀察序列會標注出4個狀態序列。
    下面本人寫的這個Viterbi(維特比)實現程序就沒這個問題,3個觀察序列就只標注出3個狀態序列。
    public class Viterbi
    {
        
    public static void main(String[] args)
        
    {
            String[] states 
    = {"Rainy""Sunny"};
            String[] observations 
    = {"walk""shop""clean"};
            
    double[] start_probability = {0.60.4};
            
    double[][] transition_probability = {{0.70.3}{0.40.6}};
            
    double[][] emission_probability = {{0.10.40.5}{0.60.30.1}};
            forward_viterbi(observations,states,start_probability,transition_probability,emission_probability);
        }

        
        
    public static void  forward_viterbi(String[] observations, String[] states,double[] start_probability, double[][] transition_probability, double[][] emission_probability)
        
    {
            
    int[][] path=new int[observations.length][states.length];
            
    double[][] r=new double[observations.length][states.length];
            
    for(int j=0;j<states.length;j++)
            
    {
                r[
    0][j]=start_probability[j]*emission_probability[j][0];
                path[
    0][j]=0;
            }

            
            
    for(int t=1;t<observations.length;t++)
            
    {
                
    for(int i=0;i<states.length;i++)
                
    {
                    
    double tmp=0;int m=0;
                    
    for(int j=0;j<states.length;j++)
                    
    {
                        
    double tem=r[t-1][j]*transition_probability[j][i]*emission_probability[i][t];
                        
    if(tem>tmp)
                        
    {
                            tmp
    =tem;
                            m
    =j;
                        }

                    }

                    r[t][i]
    =tmp;
                    path[t][i]
    =m;
                }

            }

            
            
    double p=0;int m=0;
            
    for(int i=0;i<r[0].length;i++)
            
    {
                
    if(r[r.length-1][i]>p)
                
    {
                    p
    =r[r.length-1][i];
                    m
    =i;
                }

            }

            
            System.out.println(
    "p="+p);
            
            
    int[] trace=new int[observations.length];
            trace[observations.length
    -1]=m;
            
    for(int t=observations.length-1;t>0;t--)
            
    {
                trace[t
    -1]=path[t][m];
                m
    =path[t][m];
            }

            
            
    for(int i=0;i<trace.length;i++)
                System.out.println(states[trace[i]]);
        }

    }


    posted on 2012-09-07 16:43 nianzai 閱讀(1987) 評論(0)  編輯  收藏 所屬分類: 機器學習

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品张柏芝在线观看| 亚洲一区二区高清| 67pao强力打造67194在线午夜亚洲| gogo免费在线观看| 亚洲精品高清国产一线久久| 有色视频在线观看免费高清在线直播| 四虎永久精品免费观看| 羞羞网站在线免费观看| 国产男女猛烈无遮挡免费网站| 男男gay做爽爽的视频免费| 精品免费国产一区二区三区 | 久久久久久一品道精品免费看| 久久亚洲综合色一区二区三区 | 亚洲一区中文字幕在线电影网| 久久精品国产大片免费观看| 自怕偷自怕亚洲精品| 永久免费的网站在线观看| 亚洲Av无码国产一区二区 | 好看的亚洲黄色经典| 99免费观看视频| 亚洲日本VA中文字幕久久道具| 国产又大又长又粗又硬的免费视频 | 毛片在线播放免费观看| 亚洲精品综合久久中文字幕| 久久精品免费一区二区喷潮| 久久精品亚洲日本波多野结衣 | 67194熟妇在线永久免费观看 | 日韩插啊免费视频在线观看| 亚洲欧洲国产经精品香蕉网| 免费观看男人免费桶女人视频| 九九久久国产精品免费热6| 久久久久久亚洲精品中文字幕| 免费下载成人电影| 美女露100%胸无遮挡免费观看| 亚洲精品午夜无码电影网| 国产乱子精品免费视观看片| 国产精品亚洲二区在线| 久久久久无码精品亚洲日韩| 妞干网免费视频观看| 久久嫩草影院免费看夜色| 亚洲人成7777影视在线观看|