protected override async Task Process(IObservable <IParsedDocumentHolder> reviews,
                                              ISessionContainer container,
                                              ISentimentDataHolder sentimentAdjustment)
        {
            var client = container.GetTesting(Config.Model);

            container.Context.Lexicon = sentimentAdjustment;
            using (Observable.Interval(TimeSpan.FromSeconds(30))
                   .Subscribe(item => Logger.LogInformation(client.Pipeline.Monitor.ToString())))
            {
                client.TrackArff     = false;
                client.UseBagOfWords = Config.UseBagOfWords;
                client.Init();
                var result = await client.Process(reviews.ObserveOn(TaskPoolScheduler.Default))
                             .Select(
                    item =>
                {
                    Semaphore.Release();
                    return(Resolve(item));
                })
                             .ToArray();

                SaveDocuments(result);
            }
        }
Exemple #2
0
        protected override async Task Process(IObservable <IParsedDocumentHolder> reviews, ISessionContainer container, ISentimentDataHolder sentimentAdjustment)
        {
            ITestingClient client;

            Config.Out.EnsureDirectoryExistence();
            using (persistency)
            {
                persistency.Start(Config.Out);
                persistency.Debug        = Config.Debug;
                persistency.ExtractStyle = Config.ExtractStyle;
                client = container.GetTesting(Config.Model);
                container.Context.Lexicon = sentimentAdjustment;
                using (Observable.Interval(TimeSpan.FromSeconds(30))
                       .Subscribe(item => Logger.LogInformation(client.Pipeline.Monitor.ToString())))
                {
                    client.TrackArff     = Config.TrackArff;
                    client.UseBagOfWords = Config.UseBagOfWords;
                    client.Init();
                    await client.Process(reviews.ObserveOn(TaskPoolScheduler.Default))
                    .Select(
                        item =>
                    {
                        persistency.Save(item);
                        Semaphore.Release();
                        return(item);
                    })
                    .LastOrDefaultAsync();
                }

                if (!Config.TrackArff)
                {
                    client.Save(Config.Out);
                }
            }

            Logger.LogInformation($"Testing performance {client.GetPerformanceDescription()}");
        }