public ActionResult <string> GetEntities(int id)
        {
            List <Models.Entities>    obj     = new List <Models.Entities>();
            EntitiesBatchResultV2dot1 result4 = client.EntitiesAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "The Great Depression began in 1929. By 1933, the GDP in America fell by 25%.")
            })).Result;

            // Printing entities results
            foreach (var document in result4.Documents)
            {
                Models.Entities temp = new Models.Entities();
                temp.id = document.Id;

                foreach (EntityRecordV2dot1 entity in document.Entities)
                {
                    temp.entity.Add(entity);
                }
                obj.Add(temp);
            }

            return(Ok(obj));
        }
Exemple #2
0
        /// <summary>
        /// This method gets the list of inputs and sends them off to the API
        /// to get a list of entity results returned.
        /// </summary>
        /// <param name="Inputs"></param>
        public void Entities(List <MultiLanguageInput> Inputs)
        {
            if (Inputs == null)
            {
                return;
            }

            List <List <MultiLanguageInput> > Lists = SplitIntoChunks(Inputs, 1000);

            try
            {
                for (int i = 0; i < Lists.Count; i++)
                {
                    EntitiesBatchResultV2dot1 result = client.EntitiesAsync(new MultiLanguageBatchInput(Lists[i])).Result;

                    // Printing entities results
                    foreach (var document in result.Documents)
                    {
                        string entities = string.Empty;

                        foreach (EntityRecordV2dot1 entity in document.Entities)
                        {
                            if (entity.Name != string.Empty)
                            {
                                entities += entity.Name + " | ";
                                EntityOccurrences.Add(entity.Name);
                            }
                        }

                        if (entities != string.Empty)
                        {
                            EntitiesList.Add("Document ID: " + document.Id + ", Entities: " + entities);
                        }
                    }
                    System.Threading.Thread.Sleep(delay);
                }
            }
            catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Error: " + ex.Message); }
        }
Exemple #3
0
        public async Task Entities()
        {
            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                HttpMockServer.Initialize(this.GetType().FullName, "Entities");
                ITextAnalyticsClient      client = GetClient(HttpMockServer.CreateInstance());
                EntitiesBatchResultV2dot1 result = await client.EntitiesAsync(
                    new MultiLanguageBatchInput(
                        new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput()
                    {
                        Id = "id",
                        Text = "Microsoft released Windows 10",
                        Language = "en"
                    }
                }));

                Assert.Equal("Windows 10", result.Documents[0].Entities[0].Name);
                Assert.Equal("5f9fbd03-49c4-39ef-cc95-de83ab897b94", result.Documents[0].Entities[0].BingId);
                context.Stop();
            }
        }
Exemple #4
0
        private static void RunExperiment4(ITextAnalyticsClient client)
        {
            Console.WriteLine("\n\n===== Experiment 4. - entities identification ======");

            EntitiesBatchResultV2dot1 result = client.EntitiesAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "The Great Depression began in 1929. By 1933, the GDP in America fell by 25%."),
                new MultiLanguageInput("de", "1", "Berlin is die Hauptstadt der Bundesrepublik Deutschland.")
            })).Result;

            // Printing entities results
            foreach (var document in result.Documents)
            {
                Console.WriteLine($"Document ID: {document.Id} ");
                Console.WriteLine("\t Entities:");

                foreach (EntityRecordV2dot1 entity in document.Entities)
                {
                    Console.WriteLine($"\t\t{entity.Name}\t\t{entity.WikipediaUrl}\t\t{entity.Type}\t\t{entity.SubType}");
                }
            }
        }
        public static async Task RunSampleAsync(string endpoint, string key)
        {
            // Create a client.
            ITextAnalyticsClient client = new TextAnalyticsClient(new ApiKeyServiceClientCredentials(key))
            {
                Endpoint = endpoint
            };

            Console.OutputEncoding = System.Text.Encoding.UTF8;

            // Extracting language
            Console.WriteLine("===== LANGUAGE EXTRACTION ======");

            LanguageBatchResult result = await client.DetectLanguageAsync(
                new BatchInput(
                    new List <Input>()
            {
                new Input("1", "This is a document written in English."),
                new Input("2", "Este es un document escrito en Español."),
                new Input("3", "这是一个用中文写的文件")
            }));

            // Printing language results.
            foreach (var document in result.Documents)
            {
                Console.WriteLine("Document ID: {0} , Language: {1}", document.Id, document.DetectedLanguages[0].Name);
            }

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

            KeyPhraseBatchResult result2 = await client.KeyPhrasesAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("ja", "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!")
            }));


            // 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);
                }
            }

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

            SentimentBatchResult result3 = await client.SentimentAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "I had the best day of my life."),
                new MultiLanguageInput("en", "1", "This was a waste of my time. The speaker put me to sleep."),
                new MultiLanguageInput("es", "2", "No tengo dinero ni nada que dar..."),
                new MultiLanguageInput("it", "3", "L'hotel veneziano era meraviglioso. È un bellissimo pezzo di architettura."),
            }));


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

            // Extracting entities
            Console.WriteLine("\n\n===== Entity Extraction ======");

            EntitiesBatchResultV2dot1 result4 = await client.EntitiesAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "Microsoft released win10. Microsoft also released Hololens"),
                new MultiLanguageInput("en", "1", "Microsoft is an IT company."),
                new MultiLanguageInput("es", "2", "Microsoft lanzó win10. Microsoft también lanzó Hololens"),
                new MultiLanguageInput("es", "3", "Microsoft es una empresa de TI."),
            }));


            // Printing entity extraction results
            foreach (var document in result4.Documents)
            {
                Console.WriteLine("Document ID: {0} ", document.Id);

                Console.WriteLine("\t Entities:");

                foreach (EntityRecordV2dot1 entity in document.Entities)
                {
                    Console.WriteLine("\t\tEntity Name: {0}", entity.Name);
                    Console.WriteLine("\t\tWikipedia Language: {0}", entity.WikipediaLanguage);
                    Console.WriteLine("\t\tWikipedia Url: {0}", entity.WikipediaUrl);
                    Console.WriteLine("\t\tNumber of times appeared on the text: {0}", entity.Matches.Count);
                    Console.WriteLine("\t\tEntity Type: {0}", entity.Type);
                    Console.WriteLine("\t\tEntity SubType: {0}", entity.SubType);
                    Console.WriteLine("\n");
                }
            }
        }
Exemple #6
0
        static void Main(string[] args)
        {
            // Create a client.
            ITextAnalyticsClient client = new TextAnalyticsClient(new ApiKeyServiceClientCredentials())
            {
                Endpoint = "https://centralindia.api.cognitive.microsoft.com"
            }; //Replace 'westus' with the correct region for your Text Analytics subscription

            Console.OutputEncoding = System.Text.Encoding.UTF8;

            // Extracting language
            Console.WriteLine("===== LANGUAGE EXTRACTION ======");

            var result = client.DetectLanguageAsync(new BatchInput(
                                                        new List <Input>()
            {
                new Input("1", "This is a document written in English."),
                new Input("2", "Este es un document escrito en Español."),
                new Input("3", "这是一个用中文写的文件")
            })).Result;

            // Printing language results.
            foreach (var document in result.Documents)
            {
                Console.WriteLine($"Document ID: {document.Id} , Language: {document.DetectedLanguages[0].Name}");
            }

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

            KeyPhraseBatchResult result2 = client.KeyPhrasesAsync(new MultiLanguageBatchInput(
                                                                      new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("ja", "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!")
            })).Result;

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

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

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

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

            SentimentBatchResult result3 = client.SentimentAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "I had the best day of my life."),
                new MultiLanguageInput("en", "1", "This was a waste of my time. The speaker put me to sleep."),
                new MultiLanguageInput("es", "2", "No tengo dinero ni nada que dar..."),
                new MultiLanguageInput("it", "3", "L'hotel veneziano era meraviglioso. È un bellissimo pezzo di architettura."),
            })).Result;


            // Printing sentiment results
            foreach (var document in result3.Documents)
            {
                Console.WriteLine($"Document ID: {document.Id} , Sentiment Score: {document.Score:0.00}");
            }


            // Identify entities
            Console.WriteLine("\n\n===== ENTITIES ======");

            EntitiesBatchResultV2dot1 result4 = client.EntitiesAsync(
                new MultiLanguageBatchInput(
                    new List <MultiLanguageInput>()
            {
                new MultiLanguageInput("en", "0", "The Great Depression began in 1929. By 1933, the GDP in America fell by 25%.")
            })).Result;

            // Printing entities results
            foreach (var document in result4.Documents)
            {
                Console.WriteLine($"Document ID: {document.Id} ");

                Console.WriteLine("\t Entities:");

                foreach (EntityRecordV2dot1 entity in document.Entities)
                {
                    Console.WriteLine($"\t\t{entity.Name}\t\t{entity.WikipediaUrl}\t\t{entity.Type}\t\t{entity.SubType}");
                }
            }

            Console.ReadLine();
        }
        public static void TextAnalytics(PdfReader pdfReader, TraceWriter log, ResumeDocModel resumeDocModel)
        {
            // Create a client.
            ITextAnalyticsClient client = new TextAnalyticsClient(new ApiKeyServiceClientCredentialsForText())
            {
                Endpoint = TextAnalyticsEndPoint
            }; //Replace 'westus' with the correct region for your Text Analytics subscription

            Console.OutputEncoding = System.Text.Encoding.UTF8;



            // Extracting language
            log.Info("===== Text Analytics Started ======");
            string content = DocumentExtraction.GetTextFromPDF(pdfReader);


            List <string> splittedList = StringExtensions.Split(content, MaxLengthofCharacters).ToList();

            var LanguageDetectAPI = client.DetectLanguageAsync(new BatchInput(
                                                                   new List <Input>()
            {
                new Input(resumeDocModel.DocumentName, splittedList.First())
            })).Result;

            resumeDocModel.languageBatchResult = LanguageDetectAPI.Documents.FirstOrDefault();

            var detectedLanguage = LanguageDetectAPI.Documents.Select(doc => doc.DetectedLanguages[0].Iso6391Name).FirstOrDefault();

            //SentimentBatchResult result3 = client.SentimentAsync(
            //   new MultiLanguageBatchInput(
            //       new List<MultiLanguageInput>()
            //       {
            //              new MultiLanguageInput(detectedLanguage, resumeDocModel.DocumentName, splittedList.First())
            //       })).Result;

            //resumeDocModel.sentimentBatchResult = result3.Documents.FirstOrDefault();

            List <string> keyPhraseList = new List <string>();

            List <EntityRecordV2dot1> entityRecords = new List <EntityRecordV2dot1>();

            foreach (string splittedContent in splittedList)
            {
                KeyPhraseBatchResult keyPhraseBatch = client.KeyPhrasesAsync(new MultiLanguageBatchInput(
                                                                                 new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput(detectedLanguage, resumeDocModel.DocumentName, splittedContent)
                })).Result;

                foreach (var doc in keyPhraseBatch.Documents)
                {
                    keyPhraseList.AddRange(doc.KeyPhrases.ToList());
                }


                EntitiesBatchResultV2dot1 entitiesbatchres = client.EntitiesAsync(
                    new MultiLanguageBatchInput(
                        new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput(detectedLanguage, resumeDocModel.DocumentName, splittedContent)
                })).Result;

                entityRecords.AddRange(entitiesbatchres.Documents.First().Entities.ToList());
            }

            resumeDocModel.keyPhraseBatchResult.Id         = resumeDocModel.DocumentName;
            resumeDocModel.keyPhraseBatchResult.KeyPhrases = keyPhraseList;

            resumeDocModel.entityBatchResult.Id            = resumeDocModel.DocumentName;
            resumeDocModel.entityBatchResult.EntityRecords = entityRecords;



            log.Info("===== Text Analytics Completed ======");
        }
Exemple #8
0
        /// <summary>
        /// This method is used to test whether to API is working by sending sample data
        /// </summary>
        public void Test()
        {
            try
            {
                // Extracting language
                Console.WriteLine("===== LANGUAGE EXTRACTION ======");

                var result = client.DetectLanguageAsync(new BatchInput(
                                                            new List <Input>()
                {
                    new Input("1", "This is a document written in English."),
                    new Input("2", "Este es un document escrito en Español."),
                    new Input("3", "这是一个用中文写的文件")
                })).Result;

                // Printing language results.
                foreach (var document in result.Documents)
                {
                    Console.WriteLine("Document ID: {0} , Language: {1}", document.Id, document.DetectedLanguages[0].Name);
                }

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

                KeyPhraseBatchResult result2 = client.KeyPhrasesAsync(new MultiLanguageBatchInput(
                                                                          new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput("ja", "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!")
                })).Result;

                // 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);
                    }
                }

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

                SentimentBatchResult result3 = client.SentimentAsync(
                    new MultiLanguageBatchInput(
                        new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput("en", "0", "I had the best day of my life."),
                    new MultiLanguageInput("en", "1", "This was a waste of my time. The speaker put me to sleep."),
                    new MultiLanguageInput("es", "2", "No tengo dinero ni nada que dar..."),
                    new MultiLanguageInput("it", "3", "L'hotel veneziano era meraviglioso. È un bellissimo pezzo di architettura."),
                })).Result;


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


                // Identify entities
                Console.WriteLine("\n\n===== ENTITIES ======");

                EntitiesBatchResultV2dot1 result4 = client.EntitiesAsync(
                    new MultiLanguageBatchInput(
                        new List <MultiLanguageInput>()
                {
                    new MultiLanguageInput("en", "0", "The Great Depression began in 1929. By 1933, the GDP in America fell by 25%.")
                })).Result;

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

                    Console.WriteLine("\t Entities:");

                    foreach (EntityRecordV2dot1 entity in document.Entities)
                    {
                        Console.WriteLine("\t\t" + entity.Name);
                    }
                }
            }
            catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Test Failed. Error: " + ex.Message); return; }
            System.Windows.Forms.MessageBox.Show("Test successful! Test results are in the console", "Success");
        }