簡體   English   中英

MS 文本分析認知服務:如何使用本地數據庫?

[英]MS Text Analytics Cognitive Service: how to work with local database?

Microsoft 提供了一種分析文本數據的服務,稱為文本分析認知服務。

是否可以將此服務與本地數據庫一起使用? 即不在 Azure 中

我使用一些大型數據庫,對我而言,將它用於:語言檢測 關鍵短語提取 命名實體識別 情感分析

從本地數據庫中提取要檢測其語言的數據后,您只需要獲取它,然后傳入以下方法即可。 它會分析你的價值作為回應。

API Access Keys:

        private static readonly string endpointKey = "YourEndPonitKey";
        private static readonly string endpoint = "https://YourServiceURL.cognitiveservices.azure.com/text/analytics/v2.1/languages";

Code Snippet:

    public async Task<object> DetectLanguageAsync(string InputFromDbOrUser)
    {
        try
        {
            DetectedLanguageResponseModel ObjDitectedLanguageResponse = new DetectedLanguageResponseModel();
            //Create laguage detection request param
            RequestModel objRequestModel = new RequestModel();
            objRequestModel.id = "1";
            objRequestModel.text = InputFromDbOrUser;

            //Made Document List
            List<RequestModel> Objdocuments = new List<RequestModel>();
            Objdocuments.Add(objRequestModel);
            //Bind Request Model
            LanguageDetection objRequestList = new LanguageDetection();
            objRequestList.documents = Objdocuments;

            // Bind and Serialize Request Object 
            var serializedObject = JsonConvert.SerializeObject(objRequestList);

            // Call Language Detection API   
            using (var client = new HttpClient())
            using (var request = new HttpRequestMessage())
            {
                request.Method = HttpMethod.Post;
                request.RequestUri = new Uri(endpoint);
                request.Content = new StringContent(serializedObject, Encoding.UTF8, "application/json");
                request.Headers.Add("Ocp-Apim-Subscription-Key", endpointKey);

                var response = await client.SendAsync(request);

                //Check status code and retrive response

                if (response.IsSuccessStatusCode)
                {

                    ResponseModel objResponse = JsonConvert.DeserializeObject<ResponseModel>(await response.Content.ReadAsStringAsync());
                    //Check Response List
                    foreach (var item in objResponse.documents)
                    {

                        //Checkings Empty Response and Return to Caller
                        if (objResponse.documents != null)
                        {
                            ObjDitectedLanguageResponse.Language = objResponse.documents[0].detectedLanguages[0].name;
                            return ObjDitectedLanguageResponse;
                        }
                        else
                        {
                            return "Sorry, I am not able to find a related topic! Would you like me to Bing Search?";
                        }

                    }


                }
                else
                {
                    var result_string = await response.Content.ReadAsStringAsync();
                    return result_string;
                }
            }
            return ObjDitectedLanguageResponse;
        }
        catch (Exception ex)
        {
            throw new NotImplementedException(ex.Message, ex.InnerException);
        }

    }

Class Used:

public class DetectedLanguage
    {
        public string name { get; set; }
        public string iso6391Name { get; set; }
    }

    public class DetectedLanguageResponseModel
    {
        public dynamic Language { get; set; }
    }

    public class LanguageDetection
    {
        public List<RequestModel> documents { get; set; }
    }

    public class RequestModel
    {
        public string id { get; set; }
        public string text { get; set; }
    }
    public class ResponseDocument
    {
        public string id { get; set; }
        public List<DetectedLanguage> detectedLanguages { get; set; }
    }
    public class ResponseModel
    {
        public List<ResponseDocument> documents { get; set; }
        public List<object> errors { get; set; }
    }

注意:當前限制為每個文檔 5,120 個字符; 如果你需要分析較大的文件,你可以把它們分成更小的塊,你可以參考官方文件

希望這會有所幫助。 如果您需要更多實施幫助, 請查看此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM