Example #1
0
        static async Task Work()
        {
            var Client = new LinguisticsClient("96fc9641c5934292be66b62d51fdde5c");

            var Analyzers = await Client.ListAnalyzersAsync();

            Console.WriteLine("ANALYZERS");

            foreach (var a in Analyzers)
            {
                Console.WriteLine($" > {a.Implementation}");
            }

            var           f  = File.OpenText(@"Data\wap.txt");
            StringBuilder sb = new StringBuilder();
            int           c  = 0;

            while (!f.EndOfStream)
            {
                var s = await f.ReadLineAsync();

                if (s.Contains("CHAPTER") || s.Contains("BOOK"))
                {
                    Console.WriteLine(s);
                    c++;
                    if (c > 10)
                    {
                        break;
                    }
                    continue;
                }
                if (s.Trim() == string.Empty)
                {
                    if (sb.Length > 5)
                    {
                        var Req = new AnalyzeTextRequest();
                        Req.Language = "en";
                        Req.Text     = sb.ToString();
                        // Req.AnalyzerIds = (from x in Analyzers select x.Id).ToArray();
                        Req.AnalyzerIds = new Guid[] { Analyzers[1].Id };
                        var Res = await Client.AnalyzeTextAsync(Req);

                        // Console.WriteLine(Res[0].Result);
                        ShowAdj(Res[0].Result.ToString());
                        await Task.Delay(1000);

                        // Console.ReadKey();
                    }
                    sb.Clear();
                }
                else
                {
                    sb.AppendLine(s);
                }
            }
        }
Example #2
0
 /// <summary>
 /// Analyze text synchronously.
 /// </summary>
 /// <param name="request">Analyze text request.</param>
 /// <returns>An array of analyze text result.</returns>
 private static AnalyzeTextResult[] AnalyzeText(AnalyzeTextRequest request)
 {
     try
     {
         return(Client.AnalyzeTextAsync(request).Result);
     }
     catch (Exception exception)
     {
         throw new Exception("Failed to analyze text", exception as ClientException);
     }
 }
        async Task Reply(string s, Func <string, Task> reply)
        {
            var Client    = new LinguisticsClient("202b0a9b3ad749d9bffcc77800124268");
            var Analyzers = await Client.ListAnalyzersAsync();

            var Req = new AnalyzeTextRequest();

            Req.AnalyzerIds = (from x in Analyzers
                               where x.Kind == "Constituency_Tree"
                               select x.Id).ToArray();
            Req.Text     = s;
            Req.Language = "en";
            var Resp = await Client.AnalyzeTextAsync(Req);

            await reply(Resp[0].Result.ToString());

            var r = Process(Resp[0].Result.ToString(), (a, b) =>
            {
                switch (a)
                {
                case "NN":
                    return("bot");

                case "NNS":
                    return("bots");

                case "JJ":
                    return("crazy");

                case "PRP":
                    if (b.ToLower() == "i")
                    {
                        return("you");
                    }
                    else if (b.ToLower() == "you")
                    {
                        return("I");
                    }
                    else
                    {
                        return(b);
                    }

                default:
                    return(b);
                }
            });

            await reply(r);
        }
Example #4
0
        async Task <string> Reply(string msg)
        {
            var Client = new LinguisticsClient(api_key);
            var Req    = new AnalyzeTextRequest();

            Req.Language    = "en";
            Req.Text        = msg;
            Req.AnalyzerIds = new Guid[] { AnalyzerId };
            var Res = await Client.AnalyzeTextAsync(Req);

            await ctx.PostAsync(Res[0].Result.ToString());

            return(Build(Res[0].Result.ToString()));
        }
Example #5
0
        static async Task Work(string[] args)
        {
            var Client = new LinguisticsClient("96fc9641c5934292be66b62d51fdde5c");

            var Analyzers = await Client.ListAnalyzersAsync();

            var           f  = File.OpenText(args[0]);
            StringBuilder sb = new StringBuilder();
            int           c  = 0;

            while (!f.EndOfStream)
            {
                var s = await f.ReadLineAsync();

                if (s.Contains("CHAPTER") || s.Contains("BOOK"))
                {
                    Console.WriteLine(s);
                    c++;
                }
                if (s.Trim() == string.Empty)
                {
                    if (sb.Length > 5)
                    {
                        var Req = new AnalyzeTextRequest();
                        Req.Language = "en";
                        Req.Text     = sb.ToString();
                        // Req.AnalyzerIds = (from x in Analyzers select x.Id).ToArray();
                        Req.AnalyzerIds = new Guid[] { Analyzers[1].Id };
                        var Res = await Client.AnalyzeTextAsync(Req);

                        // Console.WriteLine(Res[0].Result);
                        Process(Res[0].Result.ToString());
                        await Task.Delay(1000);

                        Console.Write(".");
                    }
                    sb.Clear();
                }
                else
                {
                    sb.AppendLine(s);
                }
            }
            File.AppendAllText($"{args[0]}.dict", Newtonsoft.Json.JsonConvert.SerializeObject(Dict));
        }
Example #6
0
        static void Main(string[] args)
        {
            // List analyzers
            Analyzer[] supportedAnalyzers = null;
            try
            {
                supportedAnalyzers = ListAnalyzers();
                var analyzersAsJson = JsonConvert.SerializeObject(supportedAnalyzers, Formatting.Indented, jsonSerializerSettings);
                Console.WriteLine("Supported analyzers: " + analyzersAsJson);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            // Analyze text with all available analyzers
            var analyzeTextRequest = new AnalyzeTextRequest()
            {
                Language    = "en",
                AnalyzerIds = supportedAnalyzers.Select(analyzer => analyzer.Id).ToArray(),
                Text        = "Two separate routes are defined for BLBAQA and BLCUSTQA process in FULL_QA run mode and each has a separate initiator. Both the imitators create an output file for the BLEXTFIN process. When any one of the initiators is run, it creates an entry in the BL1_CYCLE_GROUPS table and creates an output file for the BLEXTFIN process. After BLEXTFIN processes these entries, it checks the BL1_CYCLE_GROUPS table whether all the entries are in FN status. The BLEXTFIN process then changes the run_request status to FN without waiting for the other initiator."
            };

            try
            {
                var analyzeTextResults = AnalyzeText(analyzeTextRequest);
                var resultsAsJson      = JsonConvert.SerializeObject(analyzeTextResults, Formatting.Indented, jsonSerializerSettings);
                Console.WriteLine("Analyze text results: " + resultsAsJson);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            Console.ReadKey();
        }
Example #7
0
        static void Main(string[] args)
        {
            // List analyzers
            Analyzer[] supportedAnalyzers = null;
            try
            {
                supportedAnalyzers = ListAnalyzers();
                var analyzersAsJson = JsonConvert.SerializeObject(supportedAnalyzers, Formatting.Indented, jsonSerializerSettings);
                Console.WriteLine("Supported analyzers: " + analyzersAsJson);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            // Analyze text with all available analyzers
            var analyzeTextRequest = new AnalyzeTextRequest()
            {
                Language    = "en",
                AnalyzerIds = supportedAnalyzers.Select(analyzer => analyzer.Id).ToArray(),
                Text        = "Welcome to Microsoft Linguistic Analysis!"
            };

            try
            {
                var analyzeTextResults = AnalyzeText(analyzeTextRequest);
                var resultsAsJson      = JsonConvert.SerializeObject(analyzeTextResults, Formatting.Indented, jsonSerializerSettings);
                Console.WriteLine("Analyze text results: " + resultsAsJson);
            }
            catch (Exception e)
            {
                Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            Console.ReadKey();
        }
        /// <summary>
        /// POST: api/Messages
        /// Receive a message from a user and reply to it
        /// </summary>
        public async Task <Message> Post([FromBody] Message message)
        {
            var properties = new Dictionary <string, string> {
                { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                { "Session Id", telemetry.Context.Session.Id }, { "User Spoken Message Json", message.ToString() }
            };

            telemetry.TrackEvent("Post Event Views", properties);

            string messagetext  = message.Text;
            var    aiproperties = new Dictionary <string, string> {
                { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                { "Session Id", telemetry.Context.Session.Id }, { "User Spoken Message", messagetext }
            };

            telemetry.TrackEvent("Post Event Views", aiproperties);

            string resultsAsJson = "", botOutputString = "";

            this.serviceHost = string.IsNullOrWhiteSpace(serviceHost) ? DefaultServiceHost : serviceHost.Trim();

            httpClient = new HttpClient();
            httpClient.DefaultRequestHeaders.Add(SubscriptionKeyName, "b7ba08bf576747728ad0a74af2d5718f");

            // List analyzers
            Analyzer[] supportedAnalyzers = null;
            try
            {
                var requestUrl = $"{this.serviceHost}/{ListAnalyzersQuery}";

                supportedAnalyzers = await SendRequestAsync <object, Analyzer[]>(HttpMethod.Get, requestUrl);

                var analyzersAsJson = JsonConvert.SerializeObject(supportedAnalyzers, Formatting.Indented, jsonSerializerSettings);
                //Console.WriteLine("Supported analyzers: " + analyzersAsJson);
            }
            catch (Exception e)
            {
                //Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            // Analyze text with all available analyzers
            var analyzeTextRequest = new AnalyzeTextRequest()
            {
                Language    = "en",
                AnalyzerIds = supportedAnalyzers.Select(analyzer => analyzer.Id).ToArray(),
                Text        = messagetext
            };

            try
            {
                var requestUrl = $"{this.serviceHost}/{AnalyzeTextQuery}";

                var analyzeTextResults = await this.SendRequestAsync <object, AnalyzeTextResult[]>(HttpMethod.Post, requestUrl, analyzeTextRequest);

                resultsAsJson = JsonConvert.SerializeObject(analyzeTextResults, Formatting.Indented, jsonSerializerSettings);

                //Console.WriteLine("Analyze text results: " + resultsAsJson);
                var insightproperties = new Dictionary <string, string> {
                    { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                    { "Session Id", telemetry.Context.Session.Id }, { "Json Result", resultsAsJson }
                };

                telemetry.TrackEvent("Post Event Views", insightproperties);
            }
            catch (Exception e)
            {
                //Console.Error.WriteLine("Failed to list supported analyzers: " + e.ToString());
                Environment.Exit(1);
            }

            var data = JsonConvert.DeserializeObject <List <RootObject> >(resultsAsJson);

            if (data.Count == 3)
            {
                var    jsonTreeList = data[0].result.ToArray();
                string jsonTree     = jsonTreeList.Count() > 0 ? "{Nodes:" + jsonTreeList[0].ToString() + "}" : null;
                //jsonTree = "{Nodes:" + jsonTree;
                var posTags = JsonConvert.DeserializeObject <Tree>(jsonTree);


                var jsonTreeView = data[1].result.ToArray();

                var    tokenList = data[2].result.ToArray();
                string tokenJson = tokenList.Count() > 0 ? tokenList[0].ToString() : null;
                var    tokenData = JsonConvert.DeserializeObject <TokenRootObject>(tokenJson);

                for (int i = 0; i < posTags.Nodes.Count; i++)
                {
                    if (posTags.Nodes[i] == "NNP")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Noun" + " \r \n";
                    }
                    else if (posTags.Nodes[i] == "VBG" || posTags.Nodes[i] == "VB")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Verb" + " \r \n";
                    }
                    else if (posTags.Nodes[i] == "WRB")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Adverb" + " \r \n";
                    }
                    else if (posTags.Nodes[i] == "WP")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Pronoun" + " \r \n";
                    }
                    else if (posTags.Nodes[i] == "JJ" || posTags.Nodes[i] == "JJR" || posTags.Nodes[i] == "JJS")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Adjective" + " \r \n";
                    }
                    else if (posTags.Nodes[i] == "IN")
                    {
                        botOutputString += tokenData.Tokens[i].RawToken + " is Preposition" + " \r \n";
                    }
                }

                botOutputString = botOutputString != "" ? "Speech and Natural Language Processing \r \n" + botOutputString : "";

                var insightproperties = new Dictionary <string, string> {
                    { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                    { "Session Id", telemetry.Context.Session.Id }, { "Result From Linguistic API", botOutputString }
                };

                telemetry.TrackEvent("Post Event Views", insightproperties);
            }
            else
            {
                botOutputString = "";
            }



            //To identify name of a person, place and Company - Using LUIS
            var luisOutputString = "Intent and Language Understanding Intelligence Service Processing results are \r \n";
            var luisRequestURL   = "https://api.projectoxford.ai/luis/v1/application?id=fbec04e7-8bda-4160-a059-a8f8b995184b&subscription-key=d14817bff85b4de0af2cc701b2e5de70";

            httpClient = new HttpClient();
            HttpResponseMessage response = await httpClient.GetAsync(luisRequestURL + "&q=" + messagetext);

            string luisResponseString = await response.Content.ReadAsStringAsync();

            var insightsproperties = new Dictionary <string, string> {
                { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                { "Session Id", telemetry.Context.Session.Id }, { "Json Result From LUIS", luisResponseString }
            };

            telemetry.TrackEvent("Post Event Views", insightsproperties);

            var luisResponse = JsonConvert.DeserializeObject <LuisResponse>(luisResponseString);

            if (luisResponse.entities.Count > 0)
            {
                foreach (var entity in luisResponse.entities)
                {
                    if (entity.type.Contains("geography"))
                    {
                        if (!luisOutputString.ToLower().Contains(entity.entity.ToLower()))
                        {
                            luisOutputString += entity.type.Replace("builtin.geography.", "") + " : " + entity.entity + " \r \n";
                        }
                    }
                    else if (entity.type == "Name")
                    {
                        luisOutputString += "Name: " + entity.entity + " \r \n";
                    }
                    else if (entity.type == "Company")
                    {
                        luisOutputString += "Company: " + entity.entity + " \r \n";
                    }
                    else
                    {
                        luisOutputString += entity.type + " " + entity.entity + " \r \n";
                    }
                }
            }
            else
            {
                luisOutputString = "No matching found for Intent and Language Understanding Intelligence Service Processing";
            }

            if (botOutputString == "")
            {
                botOutputString = "No matching found for Natural Speech and Intent Processing";
            }

            var appinsightsproperties = new Dictionary <string, string> {
                { "Page Name", "MessagesController" }, { "Method Name", "Post" },
                { "Session Id", telemetry.Context.Session.Id }, { "Final Result From LUIS", luisOutputString }
            };

            telemetry.TrackEvent("Post Event Views", appinsightsproperties);

            return(message.CreateReplyMessage(botOutputString + " \r \n \r \n \r \n \r \n" + luisOutputString));
        }
Example #9
0
        /// <summary>
        /// Analyze text asynchronously.
        /// </summary>
        /// <param name="request">Analyze text request.</param>
        /// <returns>An array of analyze text result.</returns>
        public async Task <AnalyzeTextResult[]> AnalyzeTextAsync(AnalyzeTextRequest request)
        {
            var requestUrl = $"{this.serviceHost}/{AnalyzeTextQuery}";

            return(await this.SendRequestAsync <object, AnalyzeTextResult[]>(HttpMethod.Post, requestUrl, request).ConfigureAwait(false));
        }
Example #10
0
 public async Task <AnalyzeTextResponse> AnalyzeTextAsync(AnalyzeTextRequest model)
 {
     return(await Analyze(model.Text));
 }
Example #11
0
 public async Task <ActionResult <AnalyzeTextResponse> > AnalyzeText([FromBody] AnalyzeTextRequest model)
 {
     return(await _wordManager.AnalyzeTextAsync(model));
 }