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); } }
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()}"); }