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); }
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 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); }
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); } }
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); }
public MorphemeViewItem(Lx.Morpheme morpheme, Lx.Lexicon lexicon, MorphemeView view) { Morpheme = morpheme; Lexicon = lexicon; ParentView = view; }