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); }
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;