示例#1
0
        public async Task TextWithEmoji()
        {
            TextAnalyticsClient client = GetClient();
            string document            = "👨 Microsoft the company.";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document, "en");

            Assert.AreEqual(1, entities.Count);
            Assert.AreEqual("Microsoft", entities.FirstOrDefault().Text);
            Assert.AreEqual(3, entities.FirstOrDefault().Offset);
            Assert.AreEqual(9, entities.FirstOrDefault().Length);
        }
示例#2
0
        public async Task TextWithDiacriticsNFC()
        {
            TextAnalyticsClient client = GetClient();
            string document            = "año Microsoft";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document, "es");

            Assert.AreEqual(1, entities.Count);
            Assert.AreEqual("Microsoft", entities.FirstOrDefault().Text);
            Assert.AreEqual(4, entities.FirstOrDefault().Offset);
            Assert.AreEqual(9, entities.FirstOrDefault().Length);
        }
示例#3
0
        public async Task TextInKoreanNFC()
        {
            TextAnalyticsClient client = GetClient();
            string document            = "아가 Bill Gates.";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document);

            Assert.AreEqual(1, entities.Count);
            Assert.AreEqual("Bill Gates", entities.FirstOrDefault().Text);
            Assert.AreEqual(3, entities.FirstOrDefault().Offset);
            Assert.AreEqual(10, entities.FirstOrDefault().Length);
        }
        public async Task RecognizeEntitiesWithSubCategoryTest()
        {
            TextAnalyticsClient client = GetClient();
            string document            = "I had a wonderful trip to Seattle last week.";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document);

            Assert.GreaterOrEqual(entities.Count, 3);

            foreach (CategorizedEntity entity in entities)
            {
                if (entity.Text == "last week")
                {
                    Assert.AreEqual("DateRange", entity.SubCategory);
                }
            }
        }
示例#5
0
        public async Task RecognizeEntitiesResultsSorted_WithErrors()
        {
            var mockResults = new List <RecognizeEntitiesResult>()
            {
                new RecognizeEntitiesResult("2", new TextDocumentStatistics(), new List <NamedEntity>()
                {
                    new NamedEntity("EntityText0", "EntityType0", "EntitySubType0", 0, 1, 0.5),
                    new NamedEntity("EntityText1", "EntityType1", "EntitySubType1", 0, 1, 0.5),
                }),
                new RecognizeEntitiesResult("3", new TextDocumentStatistics(), new List <NamedEntity>()
                {
                    new NamedEntity("EntityText0", "EntityType0", "EntitySubType0", 0, 1, 0.5),
                    new NamedEntity("EntityText1", "EntityType1", "EntitySubType1", 0, 1, 0.5),
                }),
                new RecognizeEntitiesResult("4", "Document is invalid."),
                new RecognizeEntitiesResult("5", "Document is invalid."),
            };
            var mockResultCollection = new RecognizeEntitiesResultCollection(mockResults,
                                                                             new TextDocumentBatchStatistics(2, 2, 2, 2),
                                                                             "modelVersion");

            var mockResponse = new MockResponse(200);

            mockResponse.SetContent(SerializationHelpers.Serialize(mockResultCollection, SerializeRecognizeEntitiesResultCollection));

            var mockTransport          = new MockTransport(mockResponse);
            TextAnalyticsClient client = CreateTestClient(mockTransport);

            var inputs = new List <TextDocumentInput>()
            {
                new TextDocumentInput("4", "TextDocument1"),
                new TextDocumentInput("5", "TextDocument2"),
                new TextDocumentInput("2", "TextDocument3"),
                new TextDocumentInput("3", "TextDocument4"),
            };

            var response = await client.RecognizeEntitiesAsync(inputs, new TextAnalyticsRequestOptions());

            var resultCollection = response.Value;

            Assert.AreEqual("4", resultCollection[0].Id);
            Assert.AreEqual("5", resultCollection[1].Id);
            Assert.AreEqual("2", resultCollection[2].Id);
            Assert.AreEqual("3", resultCollection[3].Id);
        }
示例#6
0
        public async Task RecognizeEntitiesAsync()
        {
            string endpoint = TestEnvironment.Endpoint;
            string apiKey   = TestEnvironment.ApiKey;

            // Instantiate a client that will be used to call the service.
            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:RecognizeEntitiesAsync
            string document = @"We love this trail and make the trip every year. The views are breathtaking and well
                                worth the hike! Yesterday was foggy though, so we missed the spectacular views.
                                We tried again today and it was amazing. Everyone in my family liked the trail although
                                it was too challenging for the less athletic among us.
                                Not necessarily recommended for small children.
                                A hotel close to the trail offers services for childcare in case you want that.";

            try
            {
                Response <CategorizedEntityCollection> response = await client.RecognizeEntitiesAsync(document);

                CategorizedEntityCollection entitiesInDocument = response.Value;

                Console.WriteLine($"Recognized {entitiesInDocument.Count} entities:");
                foreach (CategorizedEntity entity in entitiesInDocument)
                {
                    Console.WriteLine($"    Text: {entity.Text}");
                    Console.WriteLine($"    Offset: {entity.Offset}");
                    Console.WriteLine($"  Length: {entity.Length}");
                    Console.WriteLine($"    Category: {entity.Category}");
                    if (!string.IsNullOrEmpty(entity.SubCategory))
                    {
                        Console.WriteLine($"    SubCategory: {entity.SubCategory}");
                    }
                    Console.WriteLine($"    Confidence score: {entity.ConfidenceScore}");
                    Console.WriteLine("");
                }
            }
            catch (RequestFailedException exception)
            {
                Console.WriteLine($"Error Code: {exception.ErrorCode}");
                Console.WriteLine($"Message: {exception.Message}");
            }
            #endregion
        }
示例#7
0
        public async Task RecognizeEntitiesWithSubtypeTest()
        {
            TextAnalyticsClient client = GetClient();
            string input = "I had a wonderful trip to Seattle last week.";

            RecognizeEntitiesResult result = await client.RecognizeEntitiesAsync(input);

            IReadOnlyCollection <NamedEntity> entities = result.NamedEntities;

            Assert.AreEqual(2, entities.Count);

            foreach (NamedEntity entity in entities)
            {
                if (entity.Text == "last week")
                {
                    Assert.IsTrue(entity.SubType != NamedEntitySubType.None);
                }
            }
        }
示例#8
0
        public async Task RecognizeEntitiesTest()
        {
            TextAnalyticsClient client = GetClient();
            string document            = "Microsoft was founded by Bill Gates and Paul Allen.";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document);

            Assert.AreEqual(3, entities.Count);

            var entitiesList = new List <string> {
                "Bill Gates", "Microsoft", "Paul Allen"
            };

            foreach (CategorizedEntity entity in entities)
            {
                Assert.IsTrue(entitiesList.Contains(entity.Text));
                Assert.IsNotNull(entity.ConfidenceScore);
            }
        }
        public async Task RecognizeEntitiesWithSubCategoryTest()
        {
            TextAnalyticsClient client = GetClient();
            string input = "I had a wonderful trip to Seattle last week.";

            Response <IReadOnlyCollection <CategorizedEntity> > response = await client.RecognizeEntitiesAsync(input);

            IReadOnlyCollection <CategorizedEntity> entities = response.Value;

            Assert.AreEqual(2, entities.Count);

            foreach (CategorizedEntity entity in entities)
            {
                if (entity.Text == "last week")
                {
                    Assert.IsTrue(entity.SubCategory != EntitySubCategory.None);
                }
            }
        }
        public async Task RecognizeEntitiesWithAADTest()
        {
            TextAnalyticsClient client = GetClient(useTokenCredential: true);
            string document            = singleEnglish;

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document);

            Assert.AreEqual(3, entities.Count);

            var entitiesList = new List <string> {
                "Bill Gates", "Microsoft", "Paul Allen"
            };

            foreach (CategorizedEntity entity in entities)
            {
                Assert.IsTrue(entitiesList.Contains(entity.Text));
                Assert.IsNotNull(entity.ConfidenceScore);
            }
        }
示例#11
0
        private static async Task EntityRecognitionExampleAsync(TextAnalyticsClient client)
        {
            WriteLine("****** Named Entity Recognition (NER) ******");
            WriteLine();

            var document = "I had a wonderful trip to Seattle last week.";

            WriteLine($"Document: {document}");

            var response = await client.RecognizeEntitiesAsync(document);

            Console.WriteLine("Named Entities:");
            foreach (var entity in response.Value)
            {
                WriteLine($"\tText: {entity.Text},\tCategory: {entity.Category},\tSub-Category: {entity.SubCategory}");
                WriteLine($"\t\tScore: {entity.ConfidenceScore:F2},\tLength: {entity.Length},\tOffset: {entity.Offset}\n");
            }

            WriteLine();
        }
        public async Task RecognizeEntitiesAsync()
        {
            string endpoint = Environment.GetEnvironmentVariable("TEXT_ANALYTICS_ENDPOINT");
            string apiKey   = Environment.GetEnvironmentVariable("TEXT_ANALYTICS_API_KEY");

            // Instantiate a client that will be used to call the service.
            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:RecognizeEntitiesAsync
            string document = "Microsoft was founded by Bill Gates and Paul Allen.";

            Response <IReadOnlyCollection <CategorizedEntity> > entities = await client.RecognizeEntitiesAsync(document);

            Console.WriteLine($"Recognized {entities.Value.Count} entities:");
            foreach (CategorizedEntity entity in entities.Value)
            {
                Console.WriteLine($"Text: {entity.Text}, Category: {entity.Category}, SubCategory: {entity.SubCategory}, Confidence score: {entity.ConfidenceScore}");
            }
            #endregion
        }
示例#13
0
        public async Task RecognizeEntitiesAsync()
        {
            string endpoint = TestEnvironment.Endpoint;
            string apiKey   = TestEnvironment.ApiKey;

            // Instantiate a client that will be used to call the service.
            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:RecognizeEntitiesAsync
            string document = "Microsoft was founded by Bill Gates and Paul Allen.";

            CategorizedEntityCollection entities = await client.RecognizeEntitiesAsync(document);

            Console.WriteLine($"Recognized {entities.Count} entities:");
            foreach (CategorizedEntity entity in entities)
            {
                Console.WriteLine($"Text: {entity.Text}, Category: {entity.Category}, SubCategory: {entity.SubCategory}, Confidence score: {entity.ConfidenceScore}");
            }
            #endregion
        }
        public async Task RecognizeEntitiesAsync()
        {
            string endpoint        = Environment.GetEnvironmentVariable("TEXT_ANALYTICS_ENDPOINT");
            string subscriptionKey = Environment.GetEnvironmentVariable("TEXT_ANALYTICS_SUBSCRIPTION_KEY");

            var client = new TextAnalyticsClient(new Uri(endpoint), subscriptionKey);

            #region Snippet:RecognizeEntitiesAsync
            string input = "Microsoft was founded by Bill Gates and Paul Allen.";

            RecognizeEntitiesResult result = await client.RecognizeEntitiesAsync(input);

            IReadOnlyCollection <NamedEntity> entities = result.NamedEntities;

            Console.WriteLine($"Recognized {entities.Count()} entities:");
            foreach (NamedEntity entity in entities)
            {
                Console.WriteLine($"Text: {entity.Text}, Type: {entity.Type}, SubType: {entity.SubType ?? "N/A"}, Score: {entity.Score}, Offset: {entity.Offset}, Length: {entity.Length}");
            }
            #endregion
        }
        public async Task RecognizeEntitiesTest()
        {
            TextAnalyticsClient client = GetClient();
            string input = "Microsoft was founded by Bill Gates and Paul Allen.";

            Response <IReadOnlyCollection <CategorizedEntity> > response = await client.RecognizeEntitiesAsync(input);

            IReadOnlyCollection <CategorizedEntity> entities = response.Value;

            Assert.AreEqual(3, entities.Count);

            var entitiesList = new List <string> {
                "Bill Gates", "Microsoft", "Paul Allen"
            };

            foreach (CategorizedEntity entity in entities)
            {
                Assert.IsTrue(entitiesList.Contains(entity.Text));
                Assert.IsNotNull(entity.Score);
                Assert.IsNotNull(entity.Offset);
                Assert.IsNotNull(entity.Length);
                Assert.Greater(entity.Length, 0);
            }
        }
 public async Task <CategorizedEntityCollection> GetCategorizedEntities(string document)
 {
     return(await _textAnalyticsClient.RecognizeEntitiesAsync(document));
 }
        public async Task <CategorizedEntityCollection> RecognizeEntitiesAsync(string text, string language = "en")
        {
            var result = await client.RecognizeEntitiesAsync(text, language);

            return(result.Value);
        }