azure.ai.textanalytics.aio package¶
-
class
azure.ai.textanalytics.aio.
AsyncAnalyzeActionsLROPoller
(client: Any, initial_response: Any, deserialization_callback: Callable, polling_method: azure.core.polling._async_poller.AsyncPollingMethod[PollingReturnType])[source]¶ -
continuation_token
() → str¶ Return a continuation token that allows to restart the poller later.
- Returns
An opaque continuation token
- Return type
-
done
() → bool¶ Check status of the long running operation.
- Returns
‘True’ if the process has completed, else ‘False’.
- Return type
-
classmethod
from_continuation_token
(polling_method: azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeActionsLROPollingMethod, continuation_token: str, **kwargs: Any) → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeActionsLROPoller[source]¶
-
polling_method
() → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeActionsLROPollingMethod[source]¶ Return the polling method associated to this poller.
-
async
result
() → PollingReturnType¶ Return the result of the long running operation.
- Returns
The deserialized resource of the long running operation, if one is available.
- Raises
HttpResponseError – Server problem with the query.
-
async
wait
() → None¶ Wait on the long running operation.
- Raises
HttpResponseError – Server problem with the query.
-
property
actions_failed_count
¶ Total number of actions that have failed
- Returns
Total number of actions that have failed
- Return type
-
property
actions_in_progress_count
¶ Total number of actions currently in progress
- Returns
Total number of actions currently in progress
- Return type
-
property
actions_succeeded_count
¶ Total number of actions that succeeded
- Returns
Total number of actions that succeeded
- Return type
-
property
created_on
¶ When your analyze job was created
- Returns
When your analyze job was created
- Return type
-
property
display_name
¶ The display name of your
begin_analyze_actions()
call.Corresponds to the display_name kwarg you pass to your
begin_analyze_actions()
call.- Returns
The display name of your
begin_analyze_actions()
call.- Return type
-
property
expires_on
¶ When your analyze job will expire
- Returns
When your analyze job will expire
- Return type
-
property
id
¶ ID of your
begin_analyze_actions()
call.- Returns
ID of your
begin_analyze_actions()
call.- Return type
-
property
last_modified_on
¶ The last time your actions results were updated
- Returns
The last time your actions results were updated
- Return type
-
-
class
azure.ai.textanalytics.aio.
AsyncAnalyzeHealthcareEntitiesLROPoller
(client: Any, initial_response: Any, deserialization_callback: Callable, polling_method: azure.core.polling._async_poller.AsyncPollingMethod[PollingReturnType])[source]¶ -
async
cancel
(**kwargs) → azure.core.polling._async_poller.AsyncLROPoller[None][source]¶ Cancel the operation currently being polled.
- Keyword Arguments
polling_interval (int) – The polling interval to use to poll the cancellation status. The default value is 5 seconds.
- Returns
Returns an instance of an AsyncLROPoller that returns None.
- Return type
- Raises
HttpResponseError – When the operation has already reached a terminal state.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=AzureKeyCredential(key), ) documents = [ "RECORD #333582770390100 | MH | 85986313 | | 054351 | 2/14/2001 12:00:00 AM | \ CORONARY ARTERY DISEASE | Signed | DIS | Admission Date: 5/22/2001 \ Report Status: Signed Discharge Date: 4/24/2001 ADMISSION DIAGNOSIS: \ CORONARY ARTERY DISEASE. HISTORY OF PRESENT ILLNESS: \ The patient is a 54-year-old gentleman with a history of progressive angina over the past several months. \ The patient had a cardiac catheterization in July of this year revealing total occlusion of the RCA and \ 50% left main disease , with a strong family history of coronary artery disease with a brother dying at \ the age of 52 from a myocardial infarction and another brother who is status post coronary artery bypass grafting. \ The patient had a stress echocardiogram done on July , 2001 , which showed no wall motion abnormalities ,\ but this was a difficult study due to body habitus. The patient went for six minutes with minimal ST depressions \ in the anterior lateral leads , thought due to fatigue and wrist pain , his anginal equivalent. Due to the patient's \ increased symptoms and family history and history left main disease with total occasional of his RCA was referred \ for revascularization with open heart surgery." ] async with text_analytics_client: poller = await text_analytics_client.begin_analyze_healthcare_entities(documents) try: cancellation_poller = await poller.cancel() await cancellation_poller.wait() except HttpResponseError as e: # If the operation has already reached a terminal state it cannot be cancelled. print(e) else: print("Healthcare entities analysis was successfully cancelled.")
-
continuation_token
() → str¶ Return a continuation token that allows to restart the poller later.
- Returns
An opaque continuation token
- Return type
-
done
() → bool¶ Check status of the long running operation.
- Returns
‘True’ if the process has completed, else ‘False’.
- Return type
-
classmethod
from_continuation_token
(polling_method: azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeHealthcareEntitiesLROPollingMethod, continuation_token: str, **kwargs: Any) → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeHealthcareEntitiesLROPoller[source]¶
-
polling_method
() → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeHealthcareEntitiesLROPollingMethod[source]¶ Return the polling method associated to this poller.
-
async
result
() → PollingReturnType¶ Return the result of the long running operation.
- Returns
The deserialized resource of the long running operation, if one is available.
- Raises
HttpResponseError – Server problem with the query.
-
async
wait
() → None¶ Wait on the long running operation.
- Raises
HttpResponseError – Server problem with the query.
-
property
created_on
¶ When your healthcare entities job was created
- Returns
When your healthcare entities job was created
- Return type
-
property
expires_on
¶ When your healthcare entities job will expire
- Returns
When your healthcare entities job will expire
- Return type
-
property
id
¶ ID of your call to
begin_analyze_healthcare_entities()
- Returns
ID of your call to
begin_analyze_healthcare_entities()
- Return type
-
async
-
class
azure.ai.textanalytics.aio.
TextAnalyticsClient
(endpoint: str, credential: Union[AzureKeyCredential, AsyncTokenCredential], **kwargs: Any)[source]¶ The Text Analytics API is a suite of text analytics web services built with best-in-class Microsoft machine learning algorithms. The API can be used to analyze unstructured text for tasks such as sentiment analysis, key phrase extraction, entities recognition, and language detection. No training data is needed to use this API - just bring your text data. This API uses advanced natural language processing techniques to deliver best in class predictions.
Further documentation can be found in https://docs.microsoft.com/azure/cognitive-services/text-analytics/overview
- Parameters
endpoint (str) – Supported Cognitive Services or Text Analytics resource endpoints (protocol and hostname, for example: https://westus2.api.cognitive.microsoft.com).
credential (
AzureKeyCredential
orAsyncTokenCredential
) – Credentials needed for the client to connect to Azure. This can be the an instance of AzureKeyCredential if using a cognitive services/text analytics API key or a token credential fromazure.identity
.
- Keyword Arguments
default_country_hint (str) – Sets the default country_hint to use for all operations. Defaults to “US”. If you don’t want to use a country hint, pass the string “none”.
default_language (str) – Sets the default language to use for all operations. Defaults to “en”.
api_version (str or TextAnalyticsApiVersion) – The API version of the service to use for requests. It defaults to the latest service version. Setting to an older version may result in reduced feature compatibility.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint, AzureKeyCredential(key))
from azure.ai.textanalytics.aio import TextAnalyticsClient from azure.identity.aio import DefaultAzureCredential endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] credential = DefaultAzureCredential() text_analytics_client = TextAnalyticsClient(endpoint, credential=credential)
-
async
analyze_sentiment
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.AnalyzeSentimentResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Analyze sentiment for a batch of documents. Turn on opinion mining with show_opinion_mining.
Returns a sentiment prediction, as well as sentiment scores for each sentiment class (Positive, Negative, and Neutral) for the document and each sentence within it.
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
show_opinion_mining (bool) – Whether to mine the opinions of a sentence and conduct more granular analysis around the aspects of a product or service (also known as aspect-based sentiment analysis). If set to true, the returned
SentenceSentiment
objects will have property mined_opinions containing the result of this analysis. Only available for API version v3.1 and up.language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
string_index_type (str) – Specifies the method used to interpret string offsets. UnicodeCodePoint, the Python encoding, is the default. To override the Python default, you can also pass in Utf16CodePoint or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets
disable_service_logs (bool) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
AnalyzeSentimentResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The show_opinion_mining, disable_service_logs, and string_index_type keyword arguments.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key)) documents = [ """I had the best day of my life. I decided to go sky-diving and it made me appreciate my whole life so much more. I developed a deep-connection with my instructor as well, and I feel as if I've made a life-long friend in her.""", """This was a waste of my time. All of the views on this drop are extremely boring, all I saw was grass. 0/10 would not recommend to any divers, even first timers.""", """This was pretty good! The sights were ok, and I had fun with my instructors! Can't complain too much about my experience""", """I only have one word for my experience: WOW!!! I can't believe I have had such a wonderful skydiving company right in my backyard this whole time! I will definitely be a repeat customer, and I want to take my grandmother skydiving too, I know she'll love it!""" ] async with text_analytics_client: result = await text_analytics_client.analyze_sentiment(documents) docs = [doc for doc in result if not doc.is_error] print("Let's visualize the sentiment of each of these documents") for idx, doc in enumerate(docs): print("Document text: {}".format(documents[idx])) print("Overall sentiment: {}".format(doc.sentiment))
-
async
begin_analyze_actions
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], actions: List[Union[azure.ai.textanalytics._models.RecognizeEntitiesAction, azure.ai.textanalytics._models.RecognizeLinkedEntitiesAction, azure.ai.textanalytics._models.RecognizePiiEntitiesAction, azure.ai.textanalytics._models.ExtractKeyPhrasesAction, azure.ai.textanalytics._models.AnalyzeSentimentAction, azure.ai.textanalytics._models.ExtractSummaryAction, azure.ai.textanalytics._models.RecognizeCustomEntitiesAction, azure.ai.textanalytics._models.SingleCategoryClassifyAction, azure.ai.textanalytics._models.MultiCategoryClassifyAction]], **kwargs: Any) → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeActionsLROPoller[azure.core.async_paging.AsyncItemPaged[List[Union[azure.ai.textanalytics._models.RecognizeEntitiesResult, azure.ai.textanalytics._models.RecognizeLinkedEntitiesResult, azure.ai.textanalytics._models.RecognizePiiEntitiesResult, azure.ai.textanalytics._models.ExtractKeyPhrasesResult, azure.ai.textanalytics._models.AnalyzeSentimentResult, azure.ai.textanalytics._models.ExtractSummaryResult, azure.ai.textanalytics._models.RecognizeCustomEntitiesResult, azure.ai.textanalytics._models.SingleCategoryClassifyResult, azure.ai.textanalytics._models.MultiCategoryClassifyResult, azure.ai.textanalytics._models.DocumentError]]]][source]¶ Start a long-running operation to perform a variety of text analysis actions over a batch of documents.
We recommend you use this function if you’re looking to analyze larger documents, and / or combine multiple Text Analytics actions into one call. Otherwise, we recommend you use the action specific endpoints, for example
analyze_sentiment()
.Note
See the service documentation for regional support of custom action features: https://aka.ms/azsdk/textanalytics/customfunctionalities
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.actions (list[RecognizeEntitiesAction or RecognizePiiEntitiesAction or ExtractKeyPhrasesAction or RecognizeLinkedEntitiesAction or AnalyzeSentimentAction or ExtractSummaryAction or RecognizeCustomEntitiesAction or SingleCategoryClassifyAction or MultiCategoryClassifyAction]) – A heterogeneous list of actions to perform on the input documents. Each action object encapsulates the parameters used for the particular action type. The action results will be in the same order of the input actions.
- Keyword Arguments
display_name (str) – An optional display name to set for the requested analysis.
language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
show_stats (bool) – If set to true, response will contain document level statistics.
polling_interval (int) – Waiting time between two polls for LRO operations if no Retry-After header is present. Defaults to 5 seconds.
continuation_token (str) – Call continuation_token() on the poller object to save the long-running operation (LRO) state into an opaque token. Pass the value as the continuation_token keyword argument to restart the LRO from a saved state.
- Returns
An instance of an AsyncAnalyzeActionsLROPoller. Call result() on the poller object to return a pageable heterogeneous list of lists. This list of lists is first ordered by the documents you input, then ordered by the actions you input. For example, if you have documents input [“Hello”, “world”], and actions
RecognizeEntitiesAction
andAnalyzeSentimentAction
, when iterating over the list of lists, you will first iterate over the action results for the “Hello” document, getting theRecognizeEntitiesResult
of “Hello”, then theAnalyzeSentimentResult
of “Hello”. Then, you will get theRecognizeEntitiesResult
andAnalyzeSentimentResult
of “world”.- Return type
AsyncAnalyzeActionsLROPoller[AsyncItemPaged[ list[Union[RecognizeEntitiesResult, RecognizeLinkedEntitiesResult, RecognizePiiEntitiesResult, ExtractKeyPhrasesResult, AnalyzeSentimentResult, ExtractSummaryAction, RecognizeCustomEntitiesResult, SingleCategoryClassifyResult, MultiCategoryClassifyResult, DocumentError]]]]
- Raises
HttpResponseError or TypeError or ValueError or NotImplementedError –
New in version v3.1: The begin_analyze_actions client method.
New in version v3.2-preview: The ExtractSummaryAction, RecognizeCustomEntitiesAction, SingleCategoryClassifyAction, and MultiCategoryClassifyAction input options and the corresponding ExtractSummaryResult, RecognizeCustomEntitiesResult, SingleCategoryClassifyResult, and MultiCategoryClassifyResult result objects
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient from azure.ai.textanalytics import ( RecognizeEntitiesAction, RecognizeLinkedEntitiesAction, RecognizePiiEntitiesAction, ExtractKeyPhrasesAction, AnalyzeSentimentAction, ) 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 order@contososteakhouse.com! ' 'The only complaint I have is the food didn\'t come fast enough. Overall I highly recommend it!' ] async with text_analytics_client: poller = await text_analytics_client.begin_analyze_actions( documents, display_name="Sample Text Analysis", actions=[ RecognizeEntitiesAction(), RecognizePiiEntitiesAction(), ExtractKeyPhrasesAction(), RecognizeLinkedEntitiesAction(), AnalyzeSentimentAction(), ] ) pages = await poller.result() # To enumerate / zip for async, unless you install a third party library, # you have to read in all of the elements into memory first. # If you're not looking to enumerate / zip, we recommend you just asynchronously # loop over it immediately, without going through this step of reading them into memory document_results = [] async for page in pages: document_results.append(page) for doc, action_results in zip(documents, document_results): print("\nDocument text: {}".format(doc)) recognize_entities_result = action_results[0] print("...Results of Recognize Entities Action:") if recognize_entities_result.is_error: print("...Is an error with code '{}' and message '{}'".format( recognize_entities_result.code, recognize_entities_result.message )) else: for entity in recognize_entities_result.entities: print("......Entity: {}".format(entity.text)) print(".........Category: {}".format(entity.category)) print(".........Confidence Score: {}".format(entity.confidence_score)) print(".........Offset: {}".format(entity.offset)) recognize_pii_entities_result = action_results[1] print("...Results of Recognize PII Entities action:") if recognize_pii_entities_result.is_error: print("...Is an error with code '{}' and message '{}'".format( recognize_pii_entities_result.code, recognize_pii_entities_result.message )) else: for entity in recognize_pii_entities_result.entities: print("......Entity: {}".format(entity.text)) print(".........Category: {}".format(entity.category)) print(".........Confidence Score: {}".format(entity.confidence_score)) extract_key_phrases_result = action_results[2] print("...Results of Extract Key Phrases action:") if extract_key_phrases_result.is_error: print("...Is an error with code '{}' and message '{}'".format( extract_key_phrases_result.code, extract_key_phrases_result.message )) else: print("......Key Phrases: {}".format(extract_key_phrases_result.key_phrases)) recognize_linked_entities_result = action_results[3] print("...Results of Recognize Linked Entities action:") if recognize_linked_entities_result.is_error: print("...Is an error with code '{}' and message '{}'".format( recognize_linked_entities_result.code, recognize_linked_entities_result.message )) else: for linked_entity in recognize_linked_entities_result.entities: print("......Entity name: {}".format(linked_entity.name)) print(".........Data source: {}".format(linked_entity.data_source)) print(".........Data source language: {}".format(linked_entity.language)) print(".........Data source entity ID: {}".format(linked_entity.data_source_entity_id)) print(".........Data source URL: {}".format(linked_entity.url)) print(".........Document matches:") for match in linked_entity.matches: print("............Match text: {}".format(match.text)) print("............Confidence Score: {}".format(match.confidence_score)) print("............Offset: {}".format(match.offset)) print("............Length: {}".format(match.length)) analyze_sentiment_result = action_results[4] print("...Results of Analyze Sentiment action:") if analyze_sentiment_result.is_error: print("...Is an error with code '{}' and message '{}'".format( analyze_sentiment_result.code, analyze_sentiment_result.message )) else: print("......Overall sentiment: {}".format(analyze_sentiment_result.sentiment)) print("......Scores: positive={}; neutral={}; negative={} \n".format( analyze_sentiment_result.confidence_scores.positive, analyze_sentiment_result.confidence_scores.neutral, analyze_sentiment_result.confidence_scores.negative, )) print("------------------------------------------")
-
async
begin_analyze_healthcare_entities
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → azure.ai.textanalytics.aio._lro_async.AsyncAnalyzeHealthcareEntitiesLROPoller[azure.core.async_paging.AsyncItemPaged[Union[azure.ai.textanalytics._models.AnalyzeHealthcareEntitiesResult, azure.ai.textanalytics._models.DocumentError]]][source]¶ Analyze healthcare entities and identify relationships between these entities in a batch of documents.
Entities are associated with references that can be found in existing knowledge bases, such as UMLS, CHV, MSH, etc.
We also extract the relations found between entities, for example in “The subject took 100 mg of ibuprofen”, we would extract the relationship between the “100 mg” dosage and the “ibuprofen” medication.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics.
string_index_type (str) – Specifies the method used to interpret string offsets. Can be one of ‘UnicodeCodePoint’ (default), ‘Utf16CodePoint’, or ‘TextElement_v8’. For additional information see https://aka.ms/text-analytics-offsets
polling_interval (int) – Waiting time between two polls for LRO operations if no Retry-After header is present. Defaults to 5 seconds.
continuation_token (str) – Call continuation_token() on the poller object to save the long-running operation (LRO) state into an opaque token. Pass the value as the continuation_token keyword argument to restart the LRO from a saved state.
disable_service_logs (bool) – Defaults to true, meaning that Text Analytics will not log your input text on the service side for troubleshooting. If set to False, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
An instance of an AsyncAnalyzeHealthcareEntitiesLROPoller. Call result() on the poller object to return a heterogeneous pageable of
AnalyzeHealthcareEntitiesResult
andDocumentError
.- Return type
AsyncAnalyzeHealthcareEntitiesLROPoller[AsyncItemPaged[ Union[AnalyzeHealthcareEntitiesResult, DocumentError]]]
- Raises
HttpResponseError or TypeError or ValueError or NotImplementedError –
New in version v3.1: The begin_analyze_healthcare_entities client method.
Example:
import os from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import HealthcareEntityRelation from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=AzureKeyCredential(key), ) documents = [ """ Patient needs to take 100 mg of ibuprofen, and 3 mg of potassium. Also needs to take 10 mg of Zocor. """, """ Patient needs to take 50 mg of ibuprofen, and 2 mg of Coumadin. """ ] async with text_analytics_client: poller = await text_analytics_client.begin_analyze_healthcare_entities(documents) result = await poller.result() docs = [doc async for doc in result if not doc.is_error] print("Let's first visualize the outputted healthcare result:") for idx, doc in enumerate(docs): for entity in doc.entities: print("Entity: {}".format(entity.text)) print("...Normalized Text: {}".format(entity.normalized_text)) print("...Category: {}".format(entity.category)) print("...Subcategory: {}".format(entity.subcategory)) print("...Offset: {}".format(entity.offset)) print("...Confidence score: {}".format(entity.confidence_score)) if entity.data_sources is not None: print("...Data Sources:") for data_source in entity.data_sources: print("......Entity ID: {}".format(data_source.entity_id)) print("......Name: {}".format(data_source.name)) if entity.assertion is not None: print("...Assertion:") print("......Conditionality: {}".format(entity.assertion.conditionality)) print("......Certainty: {}".format(entity.assertion.certainty)) print("......Association: {}".format(entity.assertion.association)) for relation in doc.entity_relations: print("Relation of type: {} has the following roles".format(relation.relation_type)) for role in relation.roles: print("...Role '{}' with entity '{}'".format(role.name, role.entity.text)) print("------------------------------------------") print("Now, let's get all of medication dosage relations from the documents") dosage_of_medication_relations = [ entity_relation for doc in docs for entity_relation in doc.entity_relations if entity_relation.relation_type == HealthcareEntityRelation.DOSAGE_OF_MEDICATION ]
-
async
close
() → None¶ Close sockets opened by the client. Calling this method is unnecessary when using the client as a context manager.
-
async
detect_language
(documents: Union[List[str], List[azure.ai.textanalytics._models.DetectLanguageInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.DetectLanguageResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Detect language for a batch of documents.
Returns the detected language and a numeric score between zero and one. Scores close to one indicate 100% certainty that the identified language is true. See https://aka.ms/talangs for the list of enabled languages.
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[DetectLanguageInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and country_hint on a per-item basis you must use as input a list[
DetectLanguageInput
] or a list of dict representations ofDetectLanguageInput
, like {“id”: “1”, “country_hint”: “us”, “text”: “hello world”}.- Keyword Arguments
country_hint (str) – Country of origin hint for the entire batch. Accepts two letter country codes specified by ISO 3166-1 alpha-2. Per-document country hints will take precedence over whole batch hints. Defaults to “US”. If you don’t want to use a country hint, pass the string “none”.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
disable_service_logs (bool) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
DetectLanguageResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The disable_service_logs keyword argument.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key)) documents = [ """ The concierge Paulette was extremely helpful. Sadly when we arrived the elevator was broken, but with Paulette's help we barely noticed this inconvenience. She arranged for our baggage to be brought up to our room with no extra charge and gave us a free meal to refurbish all of the calories we lost from walking up the stairs :). Can't say enough good things about my experience! """, """ 最近由于工作压力太大,我们决定去富酒店度假。那儿的温泉实在太舒服了,我跟我丈夫都完全恢复了工作前的青春精神!加油! """ ] async with text_analytics_client: result = await text_analytics_client.detect_language(documents) reviewed_docs = [doc for doc in result if not doc.is_error] print("Let's see what language each review is in!") for idx, doc in enumerate(reviewed_docs): print("Review #{} is in '{}', which has ISO639-1 name '{}'\n".format( idx, doc.primary_language.name, doc.primary_language.iso6391_name )) if doc.is_error: print(doc.id, doc.error)
-
async
extract_key_phrases
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.ExtractKeyPhrasesResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Extract key phrases from a batch of documents.
Returns a list of strings denoting the key phrases in the input text. For example, for the input text “The food was delicious and there were wonderful staff”, the API returns the main talking points: “food” and “wonderful staff”
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
disable_service_logs (bool) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
ExtractKeyPhrasesResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The disable_service_logs keyword argument.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key)) articles = [ """ Washington, D.C. Autumn in DC is a uniquely beautiful season. The leaves fall from the trees in a city chockful of forrests, leaving yellow leaves on the ground and a clearer view of the blue sky above... """, """ Redmond, WA. In the past few days, Microsoft has decided to further postpone the start date of its United States workers, due to the pandemic that rages with no end in sight... """, """ Redmond, WA. Employees at Microsoft can be excited about the new coffee shop that will open on campus once workers no longer have to work remotely... """ ] async with text_analytics_client: result = await text_analytics_client.extract_key_phrases(articles) for idx, doc in enumerate(result): if not doc.is_error: print("Key phrases in article #{}: {}".format( idx + 1, ", ".join(doc.key_phrases) ))
-
async
recognize_entities
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.RecognizeEntitiesResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Recognize entities for a batch of documents.
Identifies and categorizes entities in your text as people, places, organizations, date/time, quantities, percentages, currencies, and more. For the list of supported entity types, check: https://aka.ms/taner
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
string_index_type (str) – Specifies the method used to interpret string offsets. UnicodeCodePoint, the Python encoding, is the default. To override the Python default, you can also pass in Utf16CodePoint or TextElement_v8`. For additional information see https://aka.ms/text-analytics-offsets
disable_service_logs (bool) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
RecognizeEntitiesResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The disable_service_logs and string_index_type keyword arguments.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key)) reviews = [ """I work for Foo Company, and we hired Contoso for our annual founding ceremony. The food was amazing and we all can't say enough good words about the quality and the level of service.""", """We at the Foo Company re-hired Contoso after all of our past successes with the company. Though the food was still great, I feel there has been a quality drop since their last time catering for us. Is anyone else running into the same problem?""", """Bar Company is over the moon about the service we received from Contoso, the best sliders ever!!!!""" ] async with text_analytics_client: result = await text_analytics_client.recognize_entities(reviews) result = [review for review in result if not review.is_error] for idx, review in enumerate(result): for entity in review.entities: print("Entity '{}' has category '{}'".format(entity.text, entity.category))
-
async
recognize_linked_entities
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.RecognizeLinkedEntitiesResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Recognize linked entities from a well-known knowledge base for a batch of documents.
Identifies and disambiguates the identity of each entity found in text (for example, determining whether an occurrence of the word Mars refers to the planet, or to the Roman god of war). Recognized entities are associated with URLs to a well-known knowledge base, like Wikipedia.
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
string_index_type (str) – Specifies the method used to interpret string offsets. UnicodeCodePoint, the Python encoding, is the default. To override the Python default, you can also pass in Utf16CodePoint or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets
disable_service_logs (bool) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Setting this parameter to true, disables input logging and may limit our ability to remediate issues that occur. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
RecognizeLinkedEntitiesResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The disable_service_logs and string_index_type keyword arguments.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics.aio import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient(endpoint=endpoint, credential=AzureKeyCredential(key)) documents = [ """ Microsoft was founded by Bill Gates with some friends he met at Harvard. One of his friends, Steve Ballmer, eventually became CEO after Bill Gates as well. Steve Ballmer eventually stepped down as CEO of Microsoft, and was succeeded by Satya Nadella. Microsoft originally moved its headquarters to Bellevue, Wahsington in Januaray 1979, but is now headquartered in Redmond. """ ] async with text_analytics_client: result = await text_analytics_client.recognize_linked_entities(documents) docs = [doc for doc in result if not doc.is_error] print( "Let's map each entity to it's Wikipedia article. I also want to see how many times each " "entity is mentioned in a document\n\n" ) entity_to_url = {} for doc in docs: for entity in doc.entities: print("Entity '{}' has been mentioned '{}' time(s)".format( entity.name, len(entity.matches) )) if entity.data_source == "Wikipedia": entity_to_url[entity.name] = entity.url
-
async
recognize_pii_entities
(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], **kwargs: Any) → List[Union[azure.ai.textanalytics._models.RecognizePiiEntitiesResult, azure.ai.textanalytics._models.DocumentError]][source]¶ Recognize entities containing personal information for a batch of documents.
Returns a list of personal information entities (“SSN”, “Bank Account”, etc) in the document. For the list of supported entity types, check https://aka.ms/tanerpii
See https://docs.microsoft.com/azure/cognitive-services/text-analytics/concepts/data-limits?tabs=version-3 for document length limits, maximum batch size, and supported text encoding.
- Parameters
documents (list[str] or list[TextDocumentInput] or list[dict[str, str]]) – The set of documents to process as part of this batch. If you wish to specify the ID and language on a per-item basis you must use as input a list[
TextDocumentInput
] or a list of dict representations ofTextDocumentInput
, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.- Keyword Arguments
language (str) – The 2 letter ISO 639-1 representation of language for the entire batch. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default. Per-document language will take precedence over whole batch language. See https://aka.ms/talangs for supported languages in Text Analytics API.
model_version (str) – This value indicates which model will be used for scoring, e.g. “latest”, “2019-10-01”. If a model-version is not specified, the API will default to the latest, non-preview version. See here for more info: https://aka.ms/text-analytics-model-versioning
show_stats (bool) – If set to true, response will contain document level statistics in the statistics field of the document-level response.
domain_filter (str or PiiEntityDomain) – Filters the response entities to ones only included in the specified domain. I.e., if set to ‘phi’, will only return entities in the Protected Healthcare Information domain. See https://aka.ms/tanerpii for more information.
categories_filter (list[str] or list[PiiEntityCategory]) – Instead of filtering over all PII entity categories, you can pass in a list of the specific PII entity categories you want to filter out. For example, if you only want to filter out U.S. social security numbers in a document, you can pass in [PiiEntityCategory.US_SOCIAL_SECURITY_NUMBER] for this kwarg.
string_index_type (str) – Specifies the method used to interpret string offsets. UnicodeCodePoint, the Python encoding, is the default. To override the Python default, you can also pass in Utf16CodePoint or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets
disable_service_logs (bool) – Defaults to true, meaning that Text Analytics will not log your input text on the service side for troubleshooting. If set to False, Text Analytics logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the Text Analytics natural language processing functions. Please see Cognitive Services Compliance and Privacy notes at https://aka.ms/cs-compliance for additional details, and Microsoft Responsible AI principles at https://www.microsoft.com/ai/responsible-ai.
- Returns
The combined list of
RecognizePiiEntitiesResult
andDocumentError
in the order the original documents were passed in.- Return type
- Raises
HttpResponseError or TypeError or ValueError –
New in version v3.1: The recognize_pii_entities client method.
Example:
from azure.core.credentials import AzureKeyCredential from azure.ai.textanalytics import TextAnalyticsClient endpoint = os.environ["AZURE_TEXT_ANALYTICS_ENDPOINT"] key = os.environ["AZURE_TEXT_ANALYTICS_KEY"] text_analytics_client = TextAnalyticsClient( endpoint=endpoint, credential=AzureKeyCredential(key) ) documents = [ """Parker Doe has repaid all of their loans as of 2020-04-25. Their SSN is 859-98-0987. To contact them, use their phone number 555-555-5555. They are originally from Brazil and have Brazilian CPF number 998.214.865-68""" ] result = text_analytics_client.recognize_pii_entities(documents) docs = [doc for doc in result if not doc.is_error] print( "Let's compare the original document with the documents after redaction. " "I also want to comb through all of the entities that got redacted" ) for idx, doc in enumerate(docs): print("Document text: {}".format(documents[idx])) print("Redacted document text: {}".format(doc.redacted_text)) for entity in doc.entities: print("...Entity '{}' with category '{}' got redacted".format( entity.text, entity.category ))