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