Пример #1
0
        public void TrainModel2()
        {
            var trainer = BrightWireProvider.CreateMarkovTrainer2 <string>();

            _Train(trainer);
            var model = trainer.Build().AsDictionary;

            // generate some text
            var    rand = new Random();
            string prev = default(string), curr = default(string);
            var    output = new List <string>();

            for (var i = 0; i < 1024; i++)
            {
                var transitions  = model.GetTransitions(prev, curr);
                var distribution = new Categorical(transitions.Select(d => Convert.ToDouble(d.Probability)).ToArray());
                var next         = transitions[distribution.Sample()].NextState;
                output.Add(next);
                if (SimpleTokeniser.IsEndOfSentence(next))
                {
                    break;
                }
                prev = curr;
                curr = next;
            }
            Assert.IsTrue(output.Count < 1024);
        }
Пример #2
0
        public void TrainModel2()
        {
            var trainer = BrightWireProvider.CreateMarkovTrainer2 <string>();

            _Train(trainer);

            // test serialisation/deserialisation
            using (var buffer = new MemoryStream())
            {
                trainer.SerialiseTo(buffer);
                buffer.Position = 0;
                trainer.DeserialiseFrom(buffer, true);
            }

            var dictionary = trainer.Build().AsDictionary;

            // generate some text
            var    rand = new Random();
            string prev = default, curr = default;