Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
 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;
 }
Example #4
0
        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);
        }
Example #5
0
        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));
        }
Example #6
0
        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));
        }