public void StemAll(object ownerViewModel, StemmingMethod method) { if (method == StemmingMethod.Automatic) { foreach (Variety variety in _projectService.Project.Varieties) { variety.Affixes.Clear(); } } var pipeline = new MultiThreadedPipeline <Variety>(GetStemProcessors(method)); var progressVM = new ProgressViewModel(pvm => { pvm.Text = "Stemming all varieties..."; pipeline.Process(_projectService.Project.Varieties); while (!pipeline.WaitForComplete(100)) { if (pvm.Canceled) { pipeline.Cancel(); pipeline.WaitForComplete(); } } }, false, true); pipeline.ProgressUpdated += (sender, e) => progressVM.Value = e.PercentCompleted; _dialogService.ShowModalDialog(ownerViewModel, progressVM); Messenger.Default.Send(new DomainModelChangedMessage(true)); }
public void Stem(StemmingMethod method, Variety variety) { _busyService.ShowBusyIndicatorUntilFinishDrawing(); if (method == StemmingMethod.Automatic) { variety.Affixes.Clear(); } var pipeline = new Pipeline <Variety>(GetStemProcessors(method)); pipeline.Process(variety.ToEnumerable()); Messenger.Default.Send(new DomainModelChangedMessage(true)); }
public IEnumerable<IProcessor<Variety>> GetStemProcessors(StemmingMethod method) { CogProject project = _projectService.Project; var processors = new List<IProcessor<Variety>> {new AffixStripper(project.Segmenter)}; IProcessor<Variety> syllabifier = project.VarietyProcessors[ComponentIdentifiers.Syllabifier]; if (method != StemmingMethod.Manual) { processors.Add(syllabifier); processors.Add(_projectService.Project.VarietyProcessors[ComponentIdentifiers.AffixIdentifier]); } processors.Add(new Stemmer(_spanFactory, project.Segmenter)); processors.Add(syllabifier); processors.Add(new SegmentFrequencyDistributionCalculator(_segmentPool)); return processors; }
public IEnumerable <IProcessor <Variety> > GetStemProcessors(StemmingMethod method) { CogProject project = _projectService.Project; var processors = new List <IProcessor <Variety> > { new AffixStripper(project.Segmenter) }; IProcessor <Variety> syllabifier = project.VarietyProcessors[ComponentIdentifiers.Syllabifier]; if (method != StemmingMethod.Manual) { processors.Add(syllabifier); processors.Add(_projectService.Project.VarietyProcessors[ComponentIdentifiers.AffixIdentifier]); } processors.Add(new Stemmer(_spanFactory, project.Segmenter)); processors.Add(syllabifier); processors.Add(new SegmentFrequencyDistributionCalculator(_segmentPool)); return(processors); }
public void StemAll(object ownerViewModel, StemmingMethod method) { if (method == StemmingMethod.Automatic) { foreach (Variety variety in _projectService.Project.Varieties) variety.Affixes.Clear(); } var pipeline = new MultiThreadedPipeline<Variety>(GetStemProcessors(method)); var progressVM = new ProgressViewModel(pvm => { pvm.Text = "Stemming all varieties..."; pipeline.Process(_projectService.Project.Varieties); while (!pipeline.WaitForComplete(100)) { if (pvm.Canceled) { pipeline.Cancel(); pipeline.WaitForComplete(); } } }, false, true); pipeline.ProgressUpdated += (sender, e) => progressVM.Value = e.PercentCompleted; _dialogService.ShowModalDialog(ownerViewModel, progressVM); Messenger.Default.Send(new DomainModelChangedMessage(true)); }
public void Stem(StemmingMethod method, Variety variety) { _busyService.ShowBusyIndicatorUntilFinishDrawing(); if (method == StemmingMethod.Automatic) variety.Affixes.Clear(); var pipeline = new Pipeline<Variety>(GetStemProcessors(method)); pipeline.Process(variety.ToEnumerable()); Messenger.Default.Send(new DomainModelChangedMessage(true)); }