internal void ConstructTextModel(Lx.Text text, int chainLength) { if (text == null || chainLength < 1) { return; } MainWindow.Instance.ParseTextModel.IsEnabled = false; MainWindow.Instance.GenerateLines.IsEnabled = false; MainWindow.Instance.BackgroundProgress.Maximum = text.Count; TextModel = new Lx.FiniteStateAutomoton <string>(); var arguments = new TextModelArguments() { Model = TextModel, Text = text, ChainLength = chainLength }; var worker = new BackgroundWorker(); worker.DoWork += TextModel_DoWork; worker.ProgressChanged += MainWindow.Instance.UpdateProgressBar; worker.RunWorkerCompleted += TextModel_WorkCompleted; worker.WorkerReportsProgress = true; worker.RunWorkerAsync(arguments); }
public LingMachine() { Text = new Lx.Text(); Lexicon = new Lx.Lexicon(); GeneratedText = new Lx.Text(); GeneratedLexicon = new Lx.Lexicon(); Script = new Lx.Script(); Orthography = new Lx.Orthography(); }
public void GenerateLines(int number) { if (GeneratedText is null) { GeneratedText = new Lx.Text(); } var random = new Random(); var paragraph = new Lx.Discourse(); GeneratedText.Discourse.AddLast(paragraph); for (int l = 0; l < number; l++) { var words = TextModel.GenerateRandomChain(random); var line = new Lx.Expression(string.Join(" ", words)); paragraph.Expressions.AddLast(line); } }