Exemple #1
0
        public static GWGraph <TrainingInputNodeData, TrainingInputEdgeData, TrainingInputGraphData> ExampleData()
        {
            var rdm   = new Random();
            var graph = GWGraphpackageOne.GWString <TrainingInputNodeData, TrainingInputEdgeData, TrainingInputGraphData>(6);

            graph.Data = new TrainingInputGraphData();
            graph.Data.ObservationToCRFScoreProbability = new double[5, 5];
            for (int i = 0; i < 5; i++)
            {
                for (int k = 0; k < 5; k++)
                {
                    graph.Data.ObservationToCRFScoreProbability[i, k] = rdm.NextDouble();
                }
            }

            foreach (var node in graph.Nodes)
            {
                node.Data             = new TrainingInputNodeData();
                node.Data.Observation = rdm.Next(5);
            }
            foreach (var edge in graph.Edges)
            {
                edge.Data = new TrainingInputEdgeData();
            }

            return(graph);
        }
Exemple #2
0
        static void Main(string[] args)
        {
            CRFBase.Build.Do();

            // als Referenz folgende Klasse:
            //var oldWorkFlow = new WorkflowPede();

            //WorkflowPede.Start(null);

            { // example Gradient Descent
              //var request = new ExecuteGradientDescent();


                //request.Request();

                //Console.Write(request.Result);
            }

            { // example viterbi
                var graph = GWGraphpackageOne.GWString <CRFNodeData, CRFEdgeData, CRFGraphData>(12);
                foreach (var node in graph.Nodes)
                {
                    node.Data        = new CRFNodeData();
                    node.Data.Scores = new double[] { 1, 2 };
                }
                foreach (var edge in graph.Edges)
                {
                    edge.Data        = new CRFEdgeData();
                    edge.Data.Scores = new double[, ] {
                        { -11, 1 }, { 2, -22 }
                    };
                }
                var request = new SolveInference(graph, 2, 100);
                request.Request();

                foreach (var entry in request.Solution.Labeling)
                {
                    Console.Write(entry);
                    Console.ReadKey();
                }
            }
        }