def test_rotate_subscription_key(self, resource_group, location, text_analytics_account, text_analytics_account_key): credential = AzureKeyCredential(text_analytics_account_key) client = TextAnalyticsClient(text_analytics_account, credential) docs = [{ "id": "1", "text": "I will go to the park." }, { "id": "2", "text": "I did not like the hotel we stayed at." }, { "id": "3", "text": "The restaurant had really good food." }] response = client.begin_analyze( docs, entities_recognition_tasks=[EntitiesRecognitionTask()], key_phrase_extraction_tasks=[KeyPhraseExtractionTask()], pii_entities_recognition_tasks=[PiiEntitiesRecognitionTask()], polling_interval=self._interval(), ).result() self.assertIsNotNone(response) credential.update("xxx") # Make authentication fail with self.assertRaises(ClientAuthenticationError): response = client.begin_analyze( docs, entities_recognition_tasks=[EntitiesRecognitionTask()], key_phrase_extraction_tasks=[KeyPhraseExtractionTask()], pii_entities_recognition_tasks=[PiiEntitiesRecognitionTask()], polling_interval=self._interval(), ).result() credential.update( text_analytics_account_key) # Authenticate successfully again response = client.begin_analyze( docs, entities_recognition_tasks=[EntitiesRecognitionTask()], key_phrase_extraction_tasks=[KeyPhraseExtractionTask()], pii_entities_recognition_tasks=[PiiEntitiesRecognitionTask()], polling_interval=self._interval(), ).result() self.assertIsNotNone(response)
def analyze(self): # [START analyze] from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import TextAnalyticsClient, \ EntitiesRecognitionTask, \ PiiEntitiesRecognitionTask, \ KeyPhraseExtractionTask endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=AzureKeyCredential(key), ) documents = [ "We went to Contoso Steakhouse located at midtown NYC last week for a dinner party, and we adore the spot! \ They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is John Doe) \ and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! \ The Sirloin steak I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their \ online menu at www.contososteakhouse.com, call 312-555-0176 or send email to [email protected]! \ The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!" ] poller = text_analytics_client.begin_analyze( documents, display_name="Sample Text Analysis", entities_recognition_tasks=[EntitiesRecognitionTask()], pii_entities_recognition_tasks=[PiiEntitiesRecognitionTask()], key_phrase_extraction_tasks=[KeyPhraseExtractionTask()]) result = poller.result() for page in result: for task in page.entities_recognition_results: print("Results of Entities Recognition task:") docs = [doc for doc in task.results if not doc.is_error] for idx, doc in enumerate(docs): print("\nDocument text: {}".format(documents[idx])) for entity in doc.entities: print("Entity: {}".format(entity.text)) print("...Category: {}".format(entity.category)) print("...Confidence Score: {}".format( entity.confidence_score)) print("...Offset: {}".format(entity.offset)) print("------------------------------------------") for task in page.pii_entities_recognition_results: print("Results of PII Entities Recognition task:") docs = [doc for doc in task.results if not doc.is_error] for idx, doc in enumerate(docs): print("Document text: {}".format(documents[idx])) for entity in doc.entities: print("Entity: {}".format(entity.text)) print("Category: {}".format(entity.category)) print("Confidence Score: {}\n".format( entity.confidence_score)) print("------------------------------------------") for task in page.key_phrase_extraction_results: print("Results of Key Phrase Extraction task:") docs = [doc for doc in task.results if not doc.is_error] for idx, doc in enumerate(docs): print("Document text: {}\n".format(documents[idx])) print("Key Phrases: {}\n".format(doc.key_phrases)) print("------------------------------------------")