BuildIt.CognitiveServices.CognitiveServiceClient.DetectLanguageApiRequestAsync C# (CSharp) Метод

DetectLanguageApiRequestAsync() публичный Метод

The API returns the detected language and a numeric score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true. A total of 120 languages are supported
public DetectLanguageApiRequestAsync ( string subscriptionKey, string jsonString, string contentType = Constants.DefaultContentType, int numberofLanguagesToDetect = 1 ) : Task>
subscriptionKey string
jsonString string Request body
contentType string Media type of the body sent to the API. Default is "application/json"
numberofLanguagesToDetect int Format - int32. (Optional) Number of languages to detect. Set to 1 by default.
Результат Task>
        public async Task<ResultDto<DetectLanguageApiFeeds>> DetectLanguageApiRequestAsync(string subscriptionKey,
            string jsonString, string contentType = Constants.DefaultContentType, int numberofLanguagesToDetect = 1)
        {
            var resultDto = new ResultDto<DetectLanguageApiFeeds>();
            try
            {
                var client = new HttpClient();
                client.DefaultRequestHeaders.Add(Constants.SubscriptionTitle, subscriptionKey);
                //request parameters
                var parameter = $"numberOfLanguagesToDetect={numberofLanguagesToDetect}";
                var url = Constants.DetectLanguageApi + parameter;
                HttpResponseMessage response;

                // Request body
                var byteData = Encoding.UTF8.GetBytes(jsonString);

                using (var content = new ByteArrayContent(byteData))
                {
                    content.Headers.ContentType = new MediaTypeHeaderValue(contentType);
                    response = await client.PostAsync(url, content);
                }
                if (!response.IsSuccessStatusCode || (response.Content == null)) return null;
                var jsonResult = await response.Content.ReadAsStringAsync();
                var feed = JsonConvert.DeserializeObject<DetectLanguageApiFeeds>(jsonResult);

                resultDto.Result = feed;
                resultDto.ErrorMessage = feed.message;
                resultDto.StatusCode = feed.statusCode.ToString();
                foreach (var error in feed.errors)
                {
                    resultDto.ErrorMessage += $"InnerError :{error.message}";
                    resultDto.StatusCode += $"InnerErrorCode :{error.id}";
                }

                resultDto.Success = string.IsNullOrEmpty(feed.message);
            }
            catch (Exception ex)
            {
                resultDto.ErrorMessage = ex.Message;
                resultDto.Exception = ex;
                Debug.WriteLine($"Error: {ex}");
            }
            return resultDto;
        }

Usage Example

        public async Task TextAnalyticsAsync(string inputText)
        {


            //TextAnalyticsReplyBody text = new TextAnalyticsReplyBody();
            //text.documents[0].id = DateTime.Now.ToString();
            //text.documents[0].
            //text.text = inputText;
            //text.id = DateTime.Now.ToString();
            //var jsonString = JsonConvert.SerializeObject(text);
            var detectLanguage = " {\"documents\": [{ \"id\":\"" + DateTime.Now + "\", \"text\":\"" + inputText + "\"}]}";

            var textAnalytics = new AzureMachineLearningTextAnalytics();
            BatchInputV2 batch = new BatchInputV2()
            {
                Documents = new List<InputV2>() { }
            };
            var languageResult =
                await
                    textAnalytics.DetectLanguageWithHttpMessagesAsync(detectLanguage, 1, null,
                        Constants.TextAnalyticsKey, batch);

            //HTTPClient
            var client = new HttpClient();
            client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", Constants.TextAnalyticsKey);

            //request parameters
            var uri = $"https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/languages?";

            HttpResponseMessage response;

            var cognitiveService1 = new CognitiveServiceClient();
            var result1 = await cognitiveService1.DetectLanguageApiRequestAsync(Constants.TextAnalyticsKey, detectLanguage);



            // Request body
            byte[] byteData = Encoding.UTF8.GetBytes(detectLanguage);

            using (var content = new ByteArrayContent(byteData))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response = await client.PostAsync(uri, content);
            }
            var jsonResult = await response.Content.ReadAsStringAsync();
            var feed = JsonConvert.DeserializeObject<TextAnalyticsReplyBody>(jsonResult);
            


            //*****************************************
            //continue call keyPhrases API
            var detectkeyPhrases = " {\"documents\": [{ \"id\":\"" + DateTime.Now + "\", \"text\":\"" + inputText + "\", \"language\": \"" + IsoName + "\" }]}";
            var keyPhrasesUri = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases?";

            HttpResponseMessage response2;

            //var cognitiveService = new CognitiveServiceClient();
            //var result = await cognitiveService.KeyPhrasesApiRequestAsync(Constants.TextAnalyticsKey, detectkeyPhrases);

            // Request body
            byte[] byteData2 = Encoding.UTF8.GetBytes(detectkeyPhrases);

            using (var content = new ByteArrayContent(byteData2))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response2 = await client.PostAsync(keyPhrasesUri, content);
            }
            var jsonResult2 = await response2.Content.ReadAsStringAsync();
            var feed2 = JsonConvert.DeserializeObject<DetectkeyPhrases>(jsonResult2);
            



            //******************************
            //continue call sentiment API
            var detectSentiment = " {\"documents\": [{ \"id\":\"" + DateTime.Now + "\", \"text\":\"" + inputText + "\", \"language\": \"" + IsoName + "\" }]}";
            var SentimentUri = "https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/sentiment?";

            HttpResponseMessage response3;

            var cognitiveService = new CognitiveServiceClient();
            var result = await cognitiveService.SentimentApiRequestAsync(Constants.TextAnalyticsKey, detectSentiment);
            
            // Request body
            byte[] byteData3 = Encoding.UTF8.GetBytes(detectSentiment);

            using (var content = new ByteArrayContent(byteData3))
            {
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                response3 = await client.PostAsync(SentimentUri, content);
            }
            var jsonResult3 = await response3.Content.ReadAsStringAsync();
            var feed3 = JsonConvert.DeserializeObject<Sentiment>(jsonResult3);


            AnalysisResult(feed);
            AnalysisKeyPhraseResult(feed2);
            AnalysisSentimentResult(feed3);

        }