Esempio n. 1
0
        public void ConstructWordModel(Lx.Lexicon lexicon, int ngramLength)
        {
            if (lexicon == null || ngramLength < 1)
            {
                return;
            }

            MainWindow.Instance.ParseNgrams.IsEnabled      = false;
            MainWindow.Instance.GenerateWords.IsEnabled    = false;
            MainWindow.Instance.BackgroundProgress.Maximum = lexicon.Count;

            WordModel = new Lx.FiniteStateAutomoton <Lx.Grapheme>();

            var arguments = new WordModelArguments()
            {
                Model       = WordModel,
                Lexicon     = lexicon,
                NgramLength = ngramLength
            };

            var worker = new BackgroundWorker();

            worker.DoWork               += WordModel_DoWork;
            worker.ProgressChanged      += MainWindow.Instance.UpdateProgressBar;
            worker.RunWorkerCompleted   += WordModel_WorkCompleted;
            worker.WorkerReportsProgress = true;

            worker.RunWorkerAsync(arguments);
        }
Esempio n. 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();
 }
Esempio n. 3
0
            public static MorphemeView GetMorphemeView(Lx.Lexicon lexicon)
            {
                var list = new MorphemeView();

                foreach (var m in lexicon.Keys.OrderBy(m => m.Graph))
                {
                    list.AddNewItem(m, lexicon);
                }

                return(list);
            }
Esempio n. 4
0
 public bool AddNewItem(Lx.Morpheme morpheme, Lx.Lexicon lexicon)
 {
     if (this.Any(m => m.Morpheme == morpheme && m.Lexicon == lexicon))
     {
         // this is already in the view collection
         return(false);
     }
     else
     {
         Add(new MorphemeViewItem(morpheme, lexicon, this));
         return(true);
     }
 }
Esempio n. 5
0
        public void GenerateWords(int number)
        {
            if (GeneratedLexicon == null)
            {
                GeneratedLexicon = new Lx.Lexicon();
            }

            if (WordModel == null)// || !WordModel.Transitions.Any(t => t.Chain.Contains(Lx.Node<char>.Start)))
            {
                // Word model hasn't been built yet
                // Word Model has no transitions from Start state.
                return;
            }

            var worker = new BackgroundWorker();

            worker.DoWork             += GenerateWord_DoWork;
            worker.RunWorkerCompleted += GenerateWord_WorkCompleted;

            //worker.ProgressChanged += MainWindow.Instance.UpdateProgressBar;
            //worker.WorkerReportsProgress = true;

            worker.RunWorkerAsync(number);
        }
Esempio n. 6
0
 public MorphemeViewItem(Lx.Morpheme morpheme, Lx.Lexicon lexicon, MorphemeView view)
 {
     Morpheme   = morpheme;
     Lexicon    = lexicon;
     ParentView = view;
 }