Exemplo n.º 1
0
        static void SolveViterbiLearning()
        {
            //  read data
            StreamReader      input = new StreamReader("data.txt");
            HiddenMarkovModel HMM   = new HiddenMarkovModel();

            int iterations = Int32.Parse(input.ReadLine().Trim());

            input.ReadLine();

            string outcome = input.ReadLine().Trim();

            input.ReadLine();

            ReadAlphabet(input, HMM);
            ReadStates(input, HMM);
            ReadTransition(input, HMM);
            ReadEmission(input, HMM);

            for (int i = 0; i < iterations; ++i)
            {
                double prob = 0.0;
                string path = HMM.DecodePath(outcome, ref prob);
                HMM.EstimateParameters(outcome, path);
            }

            StreamWriter output = new StreamWriter("result.txt");

            output.Write(HMM._transition.ToString());
            output.WriteLine("--------");
            output.Write(HMM._emission.ToString());
            output.Flush();
        }
Exemplo n.º 2
0
        static void SolveParameterEstimation()
        {
            //  read data
            StreamReader      input = new StreamReader("data.txt");
            HiddenMarkovModel HMM   = new HiddenMarkovModel();

            string outcome = input.ReadLine().Trim();

            input.ReadLine();
            ReadAlphabet(input, HMM);

            string path = input.ReadLine().Trim();

            input.ReadLine();
            ReadStates(input, HMM);

            HMM.EstimateParameters(outcome, path);
            StreamWriter output = new StreamWriter("result.txt");

            output.Write(HMM._transition.ToString());
            output.WriteLine("--------");
            output.Write(HMM._emission.ToString());
            output.Flush();
        }