Example #1
0
        /// <summary>
        /// 情感分析
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public RES SentimentAnalysis(string input)
        {
            try
            {
                Credential cred = new Credential
                {
                    SecretId  = secretId,
                    SecretKey = secretKey
                };

                ClientProfile clientProfile = new ClientProfile();
                HttpProfile   httpProfile   = new HttpProfile();
                httpProfile.Endpoint      = ("nlp.ap-shanghai.tencentcloudapi.com");
                clientProfile.HttpProfile = httpProfile;

                NlpClient client             = new NlpClient(cred, "ap-guangzhou", clientProfile);
                SentimentAnalysisRequest req = new SentimentAnalysisRequest();
                string strParams             = JSON.ToJson(new { Text = input });
                req = SentimentAnalysisRequest.FromJsonString <SentimentAnalysisRequest>(strParams);
                SentimentAnalysisResponse resp = client.SentimentAnalysis(req).
                                                 ConfigureAwait(false).GetAwaiter().GetResult();
                return(RES.OK(resp));
            }
            catch (Exception ex)
            {
                return(RES.FAIL(ex.Message));
            }
        }
Example #2
0
        /// <summary>
        /// 情感分析接口能够对带有情感色彩的主观性文本进行分析、处理、归纳和推理,识别出用户的情感倾向,是积极还是消极,并且提供各自概率。
        ///
        /// 该功能基于千亿级大规模互联网语料和LSTM、BERT等深度神经网络模型进行训练,并持续迭代更新,以保证效果不断提升。
        /// </summary>
        /// <param name="req"><see cref="SentimentAnalysisRequest"/></param>
        /// <returns><see cref="SentimentAnalysisResponse"/></returns>
        public SentimentAnalysisResponse SentimentAnalysisSync(SentimentAnalysisRequest req)
        {
            JsonResponseModel <SentimentAnalysisResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "SentimentAnalysis");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <SentimentAnalysisResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
        public SentimentAnalysisResponse Post(SentimentAnalysisRequest request)
        {
            if (request != null && request?.Sentiments.Count > 0)
            {
                List <SentimentData> sentimentDatas = new List <SentimentData>();
                foreach (string s in request.Sentiments)
                {
                    sentimentDatas.Add(new SentimentData()
                    {
                        SentimentText = s
                    });
                }

                SentimentAnalysis sentimentAnalysis = new SentimentAnalysis();
                MLContext         mlContext         = new MLContext();
                TrainTestData     splitDataView     = sentimentAnalysis.LoadData(mlContext);
                ITransformer      model             = sentimentAnalysis.BuildAndTrainModel(mlContext, splitDataView.TrainSet);
                sentimentAnalysis.Evaluate(mlContext, model, splitDataView.TestSet);
                //UseModelWithSingleItem(mlContext, model);
                return(sentimentAnalysis.PredictSentiments(mlContext, model, sentimentDatas));
            }

            return(null);
        }
Example #4
0
        public async Task <CloudmersiveNLPResponse> CloudmersiveNLPResponseAsync(string type, string url)
        {
            string CloudmersiveApiKey = _config["CloudmersiveApiKey"];

            string scrapeResult = await ScrapeNewsSiteByUrlAsync(url);

            // Configure API key authorization: Apikey
            Configuration.Default.AddApiKey("Apikey", CloudmersiveApiKey); // Get an API key at, https://account.cloudmersive.com/

            var apiInstance = new AnalyticsApi();

            if (type == "sentimentality")
            {
                var input = new SentimentAnalysisRequest(scrapeResult); // SentimentAnalysisRequest | Input sentiment analysis request

                try
                {
                    // Perform Sentiment Analysis and Classification on Text
                    SentimentAnalysisResponse cloudmersiveResult = apiInstance.AnalyticsSentiment(input);

                    CloudmersiveNLPResponse cloudmersiveNLPResponse = new CloudmersiveNLPResponse
                    {
                        Successful = cloudmersiveResult.Successful,
                        SentimentClassificationResult = cloudmersiveResult.SentimentClassificationResult,
                        SentimentScoreResult          = cloudmersiveResult.SentimentScoreResult,
                        SentenceCount = cloudmersiveResult.SentenceCount,
                    };

                    return(cloudmersiveNLPResponse);
                }
                catch (Exception e)
                {
                    return(null);
                }
            }
            else if (type == "subjectivity")
            {
                var input = new SubjectivityAnalysisRequest(scrapeResult); // SentimentAnalysisRequest | Input sentiment analysis request

                try
                {
                    // Perform Subjectivity Analysis and Classification on Text
                    SubjectivityAnalysisResponse cloudmersiveResult = apiInstance.AnalyticsSubjectivity(input);

                    CloudmersiveNLPResponse cloudmersiveNLPResponse = new CloudmersiveNLPResponse
                    {
                        Successful = cloudmersiveResult.Successful,
                        SubjectivityScoreResult = cloudmersiveResult.SubjectivityScoreResult,
                        SentenceCount           = cloudmersiveResult.SentenceCount,
                    };

                    return(cloudmersiveNLPResponse);
                }
                catch (Exception e)
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Example #5
0
        public async Task <ActionResult <SentimentAnalysisResponse> > Analyse([FromBody] SentimentAnalysisRequest sentimentAnalysisRequest)
        {
            var sentiment = await this.textAnalyticsService.AnalyseSentiment(sentimentAnalysisRequest.Content);

            return(this.MapResult(sentiment));
        }