Exemple #1
0
        public async Task ProductTest(SentimentAspectData data)
        {
            log.LogInformation("ProductTest: {0}", data);
            var aspectHandler = new MainAspectHandler(new AspectContextFactory());
            var runner        = new TestRunner(TestHelper.Instance, data.Sentiment);

            var semaphore = new SemaphoreSlim(Environment.ProcessorCount / 2, Environment.ProcessorCount / 2);
            IObservable <IParsedDocumentHolder> result = runner.Load().ObserveOn(TaskPoolScheduler.Default).Select(review => ProcessItem(semaphore, aspectHandler, review)).Merge();

            await result;

            IAspectSerializer serializer = TestHelper.Instance.ContainerHelper.Resolve <IAspectSerializer>();

            serializer.Serialize(aspectHandler).Save(Path.Combine(TestContext.CurrentContext.TestDirectory, data.Sentiment.Product + ".xml"));

            Text.Words.IWordItem[] features   = aspectHandler.GetFeatures(10).ToArray();
            Text.Words.IWordItem[] attributes = aspectHandler.GetAttributes(10).ToArray();
            for (var i = 0; i < data.Features.Items.Length; i++)
            {
                Assert.IsTrue(features.Any(item => string.Compare(item.Text, data.Features.Items[i], StringComparison.OrdinalIgnoreCase) == 0));
            }

            for (var i = 0; i < data.Attributes.Items.Length; i++)
            {
                Assert.IsTrue(attributes.Any(item => string.Compare(item.Text, data.Attributes.Items[i], StringComparison.OrdinalIgnoreCase) == 0));
            }
        }
        public TrainingClient(ILogger <TrainingClient> log, IClientContext clientContext)
        {
            this.clientContext = clientContext ?? throw new ArgumentNullException(nameof(clientContext));
            if (string.IsNullOrEmpty(clientContext.Context.SvmPath))
            {
                throw new ArgumentException("Value cannot be null or empty.", nameof(clientContext.Context.SvmPath));
            }

            this.log         = log ?? throw new ArgumentNullException(nameof(log));
            SentimentVector  = new SentimentVector();
            analyze          = new AnalyseReviews();
            featureExtractor = new MainAspectHandler(new AspectContextFactory());
            sentimentVector  = new SentimentVector();
        }
Exemple #3
0
        private static async Task <IParsedDocumentHolder> ProcessItem(SemaphoreSlim semaphore, MainAspectHandler aspectHandler, IParsedDocumentHolder review)
        {
            try
            {
                await semaphore.WaitAsync().ConfigureAwait(false);

                Document parsedDoc = await review.GetParsed().ConfigureAwait(false);

                Text.Data.IParsedReview parseReview = TestHelper.Instance.ContainerHelper.Resolve <Func <Document, IParsedReviewManager> >()(parsedDoc).Create();
                aspectHandler.Process(parseReview);
                return(review);
            }
            finally
            {
                semaphore.Release();
            }
        }
 public void Setup()
 {
     instance = new MainAspectHandler(new AspectContextFactory(), 0);
 }