Пример #1
0
        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);
        }
Пример #2
0
 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();
 }
Пример #3
0
        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);
            }
        }