示例#1
0
        public Analyzer(string xml)
        {
            ITextAnalyticsAPI client    = Program.Client();
            string            xmlString = xml;

            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Console.WriteLine("\n\n####TEXT ANALYSIS####");
            KeyPhraseBatchResult analysis = client.KeyPhrases(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "1", xmlString),
            }));

            foreach (var item in analysis.Documents)
            {
                Console.WriteLine("Document ID: {0}", item.Id);
                Console.WriteLine("\t Key phrases");
                foreach (string keyphrase in item.KeyPhrases)
                {
                    Console.WriteLine(keyphrase);
                    phrases = item.KeyPhrases;
                }
            }
            Sentiment(phrases);
            Recommendations(phrases);
        }
        private static void KeyPhrases(ITextAnalyticsAPI client)
        {
            // Getting key-phrases
            Console.WriteLine("\n\n===== KEY-PHRASE EXTRACTION ======");

            var inputs2 = new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("zh", "1", "我的兔子花花好可爱."),
                new MultiLanguageInput("de", "2", "Fahrt nach Stuttgart und dann zum Hotel zu Fu."),
                new MultiLanguageInput("en", "3", "My cat is stiff as a rock."),
                new MultiLanguageInput("es", "4", "A mi me encanta el fútbol!")
            };

            KeyPhraseBatchResult result2 = client.KeyPhrases(new MultiLanguageBatchInput(inputs2));

            // Printing keyphrases
            foreach (var document in result2.Documents)
            {
                Console.WriteLine("Document ID: {0} ", document.Id);

                Console.WriteLine("\t Key phrases:");

                foreach (string keyphrase in document.KeyPhrases)
                {
                    Console.WriteLine("\t\t" + keyphrase);
                }

                Console.WriteLine($"Text: {inputs2.FirstOrDefault(i => i.Id == document.Id).Text}");
                Console.WriteLine();
            }
        }
        public string[] ExtractKeyPhrases(string text, string language)
        {
            KeyPhraseBatchResult result = _AnalyticsClient.KeyPhrases(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput(language, "1", text)
            }));

            if (result.Documents.Any())
            {
                return(result.Documents.First().KeyPhrases.ToArray());
            }

            return(new string[] { "Restricted" });
        }
        public TextAnalyticsModel TextAnalysis(string value)
        {
            TextAnalyticsModel objTextAnalyticsModel = new TextAnalyticsModel();

            // Extracting language
            //"===== LANGUAGE EXTRACTION ======");

            LanguageBatchResult result = client.DetectLanguage(
                new BatchInput(
                    new List <Input>()
            {
                new Input("1", value)
            })
                );

            StringBuilder strbld   = new StringBuilder();
            string        Language = string.Empty;

            var    allCultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
            string TwoLetterISOLanguageName = string.Empty;



            // Printing language results.
            foreach (var document in result.Documents)
            {
                //strbld.Append(" Language: " + document.DetectedLanguages[0].Name);
                Language = document.DetectedLanguages[0].Name;
                objTextAnalyticsModel.Language = document.DetectedLanguages[0].Name;
                TwoLetterISOLanguageName       = allCultures.FirstOrDefault(c => c.DisplayName == Language).Name;
            }

            // Getting key-phrases
            //Console.WriteLine("\n\n===== KEY-PHRASE EXTRACTION ======");

            KeyPhraseBatchResult result2 = client.KeyPhrases(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput(TwoLetterISOLanguageName, "1", value)
            }));


            // Printing keyphrases
            foreach (var document in result2.Documents)
            {
                // strbld.Append(" Key Phrases: ");
                foreach (string keyphrase in document.KeyPhrases)
                {
                    strbld.Append(keyphrase + ", ");
                    //Console.WriteLine("\t\t" + keyphrase);
                    objTextAnalyticsModel.KeyPhrases = strbld.ToString();
                }
            }

            // Extracting sentiment
            //Console.WriteLine("\n\n===== SENTIMENT ANALYSIS ======");

            SentimentBatchResult result3 = client.Sentiment(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput(TwoLetterISOLanguageName, "0", value)
            }));


            // Printing sentiment results
            foreach (var document in result3.Documents)
            {
                //Console.WriteLine("Document ID: {0} , Sentiment Score: {1:0.00}", document.Id, document.Score);
                strbld.Append(" Sentiment Score: " + document.Score);
                objTextAnalyticsModel.SentimentScore = document.Score.ToString();
            }



            return(objTextAnalyticsModel);
        }
示例#5
0
 public KeyPhraseBatchResult GetKeyPhrases(List <MultiLanguageInput> data)
 {
     return(_client.KeyPhrases(new MultiLanguageBatchInput(data)));
 }