azure.ai.textanalytics package

class azure.ai.textanalytics.AbstractiveSummary(**kwargs: Any)[source]

An object representing a single summary with context for given document.

New in version 2023-04-01: The AbstractiveSummary model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
contexts: List[azure.ai.textanalytics._models.SummaryContext]

The context list of the summary.

text: str

The text of the summary. Required.

class azure.ai.textanalytics.AbstractiveSummaryAction(*, sentence_count: Optional[int] = None, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

AbstractiveSummaryAction encapsulates the parameters for starting a long-running abstractive summarization operation. For a conceptual discussion of extractive summarization, see the service documentation: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Abstractive summarization generates a summary for the input documents. Abstractive summarization is different from extractive summarization in that extractive summarization is the strategy of concatenating extracted sentences from the input document into a summary, while abstractive summarization involves paraphrasing the document using novel sentences.

Keyword Arguments
  • sentence_count (Optional[int]) – It controls the approximate number of sentences in the output summaries.

  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

New in version 2023-04-01: The AbstractiveSummaryAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

sentence_count: Optional[int] = None

It controls the approximate number of sentences in the output summaries.

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.AbstractiveSummaryResult(**kwargs: Any)[source]

AbstractiveSummaryResult is a result object which contains the summary generated for a particular document.

New in version 2023-04-01: The AbstractiveSummaryResult model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
id: str

Unique, non-empty document identifier. Required.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a AbstractiveSummaryResult.

kind: typing_extensions.Literal[AbstractiveSummarization] = 'AbstractiveSummarization'

The text analysis kind - “AbstractiveSummarization”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

summaries: List[azure.ai.textanalytics._models.AbstractiveSummary]

A list of abstractive summaries. Required.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.AnalyzeActionsLROPoller(client: Any, initial_response: Any, deserialization_callback: Callable, polling_method: azure.core.polling._poller.PollingMethod[PollingReturnType])[source]
add_done_callback(func: Callable)None

Add callback function to be run once the long running operation has completed - regardless of the status of the operation.

Parameters

func (callable) – Callback function that takes at least one argument, a completed LongRunningOperation.

cancel()None[source]

Cancel the operation currently being polled.

Returns

None

Return type

None

Raises

HttpResponseError – When the operation has already reached a terminal state.

continuation_token()str

Return a continuation token that allows to restart the poller later.

Returns

An opaque continuation token

Return type

str

done()bool

Check status of the long running operation.

Returns

‘True’ if the process has completed, else ‘False’.

Return type

bool

polling_method()azure.ai.textanalytics._lro.AnalyzeActionsLROPollingMethod[source]

Return the polling method associated to this poller.

Returns

AnalyzeActionsLROPollingMethod

Return type

AnalyzeActionsLROPollingMethod

remove_done_callback(func: Callable)None

Remove a callback from the long running operation.

Parameters

func (callable) – The function to be removed from the callbacks.

Raises

ValueError – if the long running operation has already completed.

result(timeout: Optional[float] = None)PollingReturnType

Return the result of the long running operation, or the result available after the specified timeout.

Returns

The deserialized resource of the long running operation, if one is available.

Raises

HttpResponseError – Server problem with the query.

status()str

Returns the current status string.

Returns

The current status string

Return type

str

wait(timeout: Optional[float] = None)None

Wait on the long running operation for a specified length of time. You can check if this call as ended with timeout with the “done()” method.

Parameters

timeout (float) – Period of time to wait for the long running operation to complete (in seconds).

Raises

HttpResponseError – Server problem with the query.

property details

Long-running operation metadata.

Returns

A mapping of details about the long-running operation.

Return type

Mapping[str, Any]

class azure.ai.textanalytics.AnalyzeHealthcareEntitiesAction(*, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

AnalyzeHealthcareEntitiesAction encapsulates the parameters for starting a long-running healthcare entities analysis operation.

If you just want to analyze healthcare entities in a list of documents, and not perform multiple long running actions on the input of documents, call method begin_analyze_healthcare_entities instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

New in version 2022-05-01: The AnalyzeHealthcareEntitiesAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.AnalyzeHealthcareEntitiesLROPoller(client: Any, initial_response: Any, deserialization_callback: Callable, polling_method: azure.core.polling._poller.PollingMethod[PollingReturnType])[source]
add_done_callback(func: Callable)None

Add callback function to be run once the long running operation has completed - regardless of the status of the operation.

Parameters

func (callable) – Callback function that takes at least one argument, a completed LongRunningOperation.

cancel(**kwargs: Any)azure.core.polling._poller.LROPoller[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 LROPoller that returns None.

Return type

LROPoller[None]

Raises

HttpResponseError – When the operation has already reached a terminal state.

Example:

Cancel an existing health operation.
import os
from azure.core.exceptions import HttpResponseError
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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."
]

poller = text_analytics_client.begin_analyze_healthcare_entities(documents)

try:
    poller.cancel()
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

str

done()bool

Check status of the long running operation.

Returns

‘True’ if the process has completed, else ‘False’.

Return type

bool

polling_method()azure.ai.textanalytics._lro.AnalyzeHealthcareEntitiesLROPollingMethod[source]

Return the polling method associated to this poller.

Returns

AnalyzeHealthcareEntitiesLROPollingMethod

Return type

AnalyzeHealthcareEntitiesLROPollingMethod

remove_done_callback(func: Callable)None

Remove a callback from the long running operation.

Parameters

func (callable) – The function to be removed from the callbacks.

Raises

ValueError – if the long running operation has already completed.

result(timeout: Optional[float] = None)PollingReturnType

Return the result of the long running operation, or the result available after the specified timeout.

Returns

The deserialized resource of the long running operation, if one is available.

Raises

HttpResponseError – Server problem with the query.

status()str

Returns the current status string.

Returns

The current status string

Return type

str

wait(timeout: Optional[float] = None)None

Wait on the long running operation for a specified length of time. You can check if this call as ended with timeout with the “done()” method.

Parameters

timeout (float) – Period of time to wait for the long running operation to complete (in seconds).

Raises

HttpResponseError – Server problem with the query.

property details

Long-running operation metadata.

Returns

A mapping of details about the long-running operation.

Return type

Mapping[str, Any]

class azure.ai.textanalytics.AnalyzeHealthcareEntitiesResult(**kwargs: Any)[source]

AnalyzeHealthcareEntitiesResult contains the Healthcare entities from a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entities: List[azure.ai.textanalytics._models.HealthcareEntity]

Identified Healthcare entities in the document, i.e. in the document “The subject took ibuprofen”, “ibuprofen” is an identified entity from the document.

entity_relations: List[azure.ai.textanalytics._models.HealthcareRelation]

Identified Healthcare relations between entities. For example, in the document “The subject took 100mg of ibuprofen”, we would identify the relationship between the dosage of 100mg and the medication ibuprofen.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a AnalyzeHealthcareEntitiesResult.

kind: typing_extensions.Literal[Healthcare] = 'Healthcare'

The text analysis kind - “Healthcare”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=true was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.AnalyzeSentimentAction(*, show_opinion_mining: Optional[bool] = None, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

AnalyzeSentimentAction encapsulates the parameters for starting a long-running Sentiment Analysis operation.

If you just want to analyze sentiment in a list of documents, and not perform multiple long running actions on the input of documents, call method analyze_sentiment instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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_opinion_mining (Optional[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.

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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_opinion_mining: Optional[bool] = None

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.

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.AnalyzeSentimentResult(**kwargs: Any)[source]

AnalyzeSentimentResult is a result object which contains the overall predicted sentiment and confidence scores for your document and a per-sentence sentiment prediction with scores.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_scores: azure.ai.textanalytics._models.SentimentConfidenceScores

Document level sentiment confidence scores between 0 and 1 for each sentiment label.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a AnalyzeSentimentResult.

kind: typing_extensions.Literal[SentimentAnalysis] = 'SentimentAnalysis'

The text analysis kind - “SentimentAnalysis”.

sentences: List[azure.ai.textanalytics._models.SentenceSentiment]

Sentence level sentiment analysis.

sentiment: str

Predicted sentiment for document (Negative, Neutral, Positive, or Mixed). Possible values include ‘positive’, ‘neutral’, ‘negative’, ‘mixed’

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.AssessmentSentiment(**kwargs: Any)[source]

AssessmentSentiment contains the predicted sentiment, confidence scores and other information about an assessment given about a particular target. For example, in the sentence “The food is good”, the assessment of the target ‘food’ is ‘good’.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_scores: azure.ai.textanalytics._models.SentimentConfidenceScores

The sentiment confidence score between 0 and 1 for the assessment for ‘positive’ and ‘negative’ labels. It’s score for ‘neutral’ will always be 0

is_negated: bool

Whether the value of the assessment is negated. For example, in “The food is not good”, the assessment “good” is negated.

length: int

The assessment text length. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

offset: int

The assessment text offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

sentiment: str

The predicted Sentiment for the assessment. Possible values include ‘positive’, ‘mixed’, and ‘negative’.

text: str

The assessment text.

class azure.ai.textanalytics.CategorizedEntity(**kwargs: Any)[source]

CategorizedEntity contains information about a particular entity found in text.

New in version v3.1: The offset and length properties.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
category: str

Entity category, such as Person/Location/Org/SSN etc

confidence_score: float

Confidence score between 0 and 1 of the extracted entity.

length: int

The entity text length. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

offset: int

The entity text offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

subcategory: Optional[str] = None

Entity subcategory, such as Age/Year/TimeRange etc

text: str

Entity text as appears in the request.

class azure.ai.textanalytics.ClassificationCategory(**kwargs: Any)[source]

ClassificationCategory represents a classification of the input document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
category: str

Classification category for the document.

confidence_score: float

Confidence score between 0 and 1 of the recognized classification.

class azure.ai.textanalytics.ClassifyDocumentResult(**kwargs: Any)[source]

ClassifyDocumentResult is a result object which contains the classifications for a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
classifications: List[azure.ai.textanalytics._models.ClassificationCategory]

Recognized classification results in the document.

id: str

Unique, non-empty document identifier.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a ClassifyDocumentResult.

kind: typing_extensions.Literal[CustomDocumentClassification] = 'CustomDocumentClassification'

The text analysis kind - “CustomDocumentClassification”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document.

class azure.ai.textanalytics.DetectLanguageInput(*, id: str, text: str, country_hint: Optional[str] = None, **kwargs: Any)[source]

The input document to be analyzed for detecting language.

Keyword Arguments
  • id (str) – Required. Unique, non-empty document identifier.

  • text (str) – Required. The input text to process.

  • country_hint (str) – A country hint to help better detect the language of the text. Accepts two letter country codes specified by ISO 3166-1 alpha-2. Defaults to “US”. Pass in the string “none” to not use a country_hint.

  • id – Unique, non-empty document identifier. Required.

  • text – Required.

  • country_hint

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Return a dict that can be JSONify using json.dump.

Advanced usage might optionally use a callback as parameter:

Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains ‘type’ with the msrest type and ‘key’ with the RestAPI encoded key. Value is the current value in this object.

The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict.

See the three examples in this file:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

If you want XML serialization, you can pass the kwargs is_xml=True.

Parameters

key_transformer (function) – A key transformer function.

Returns

A dict JSON compatible object

Return type

dict

classmethod deserialize(data, content_type=None)

Parse a str using the RestAPI syntax and return a model.

Parameters
  • data (str) – A str using RestAPI structure. JSON by default.

  • content_type (str) – JSON by default, set application/xml if XML.

Returns

An instance of this model

Raises

DeserializationError if something went wrong

classmethod enable_additional_properties_sending()
classmethod from_dict(data, key_extractors=None, content_type=None)

Parse a dict using given key extractor return a model.

By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor)

Parameters
  • data (dict) – A dict using RestAPI structure

  • content_type (str) – JSON by default, set application/xml if XML.

Returns

An instance of this model

Raises

DeserializationError if something went wrong

classmethod is_xml_model()
serialize(keep_readonly=False, **kwargs)

Return the JSON that would be sent to azure from this model.

This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).

If you want XML serialization, you can pass the kwargs is_xml=True.

Parameters

keep_readonly (bool) – If you want to serialize the readonly attributes

Returns

A dict JSON compatible object

Return type

dict

country_hint: Optional[str] = None

A country hint to help better detect the language of the text. Accepts two letter country codes specified by ISO 3166-1 alpha-2. Defaults to “US”. Pass in the string “none” to not use a country_hint.

id: str

Required. Unique, non-empty document identifier.

text: str

Required. The input text to process.

class azure.ai.textanalytics.DetectLanguageResult(**kwargs: Any)[source]

DetectLanguageResult is a result object which contains the detected language of a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a DetectLanguageResult.

kind: typing_extensions.Literal[LanguageDetection] = 'LanguageDetection'

The text analysis kind - “LanguageDetection”.

primary_language: azure.ai.textanalytics._models.DetectedLanguage

The primary language detected in the document.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.DetectedLanguage(**kwargs: Any)[source]

DetectedLanguage contains the predicted language found in text, its confidence score, and its ISO 639-1 representation.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_score: float

A confidence score between 0 and 1. Scores close to 1 indicate 100% certainty that the identified language is true.

iso6391_name: str

A two letter representation of the detected language according to the ISO 639-1 standard (e.g. en, fr).

name: str

Long name of a detected language (e.g. English, French).

class azure.ai.textanalytics.DocumentError(**kwargs: Any)[source]

DocumentError is an error object which represents an error on the individual document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
error: azure.ai.textanalytics._models.TextAnalyticsError

The document error.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[True] = True

Boolean check for error item when iterating over list of results. Always True for an instance of a DocumentError.

kind: typing_extensions.Literal[DocumentError] = 'DocumentError'

Error kind - “DocumentError”.

class azure.ai.textanalytics.EntityAssociation(value)[source]

Describes if the entity is the subject of the text or if it describes someone else.

OTHER = 'other'
SUBJECT = 'subject'
class azure.ai.textanalytics.EntityCertainty(value)[source]

Describes the entities certainty and polarity.

NEGATIVE = 'negative'
NEGATIVE_POSSIBLE = 'negativePossible'
NEUTRAL_POSSIBLE = 'neutralPossible'
POSITIVE = 'positive'
POSITIVE_POSSIBLE = 'positivePossible'
class azure.ai.textanalytics.EntityConditionality(value)[source]

Describes any conditionality on the entity.

CONDITIONAL = 'conditional'
HYPOTHETICAL = 'hypothetical'
class azure.ai.textanalytics.ExtractKeyPhrasesAction(*, model_version: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

ExtractKeyPhrasesAction encapsulates the parameters for starting a long-running key phrase extraction operation

If you just want to extract key phrases from a list of documents, and not perform multiple long running actions on the input of documents, call method extract_key_phrases instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

class azure.ai.textanalytics.ExtractKeyPhrasesResult(**kwargs: Any)[source]

ExtractKeyPhrasesResult is a result object which contains the key phrases found in a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a ExtractKeyPhrasesResult.

key_phrases: List[str]

A list of representative words or phrases. The number of key phrases returned is proportional to the number of words in the input document.

kind: typing_extensions.Literal[KeyPhraseExtraction] = 'KeyPhraseExtraction'

The text analysis kind - “KeyPhraseExtraction”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.ExtractiveSummaryAction(*, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, max_sentence_count: Optional[int] = None, order_by: Optional[typing_extensions.Literal[Rank, Offset]] = None, **kwargs: Any)[source]

ExtractiveSummaryAction encapsulates the parameters for starting a long-running Extractive Text Summarization operation. For a conceptual discussion of extractive summarization, see the service documentation: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • max_sentence_count (Optional[int]) – Maximum number of sentences to return. Defaults to 3.

  • order_by (Optional[str]) – Possible values include: “Offset”, “Rank”. Default value: “Offset”.

New in version 2023-04-01: The ExtractiveSummaryAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

max_sentence_count: Optional[int] = None

Number of sentences to return. Defaults to 3.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

order_by: Optional[typing_extensions.Literal[Rank, Offset]] = None

Possible values include “Offset”, “Rank”. Default value is “Offset”.

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.ExtractiveSummaryResult(**kwargs: Any)[source]

ExtractiveSummaryResult is a result object which contains the extractive text summarization from a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
id: str

Unique, non-empty document identifier.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of an ExtractiveSummaryResult.

kind: typing_extensions.Literal[ExtractiveSummarization] = 'ExtractiveSummarization'

The text analysis kind - “ExtractiveSummarization”.

sentences: List[azure.ai.textanalytics._models.SummarySentence]

A ranked list of sentences representing the extracted summary.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document.

class azure.ai.textanalytics.HealthcareEntity(**kwargs: Any)[source]

HealthcareEntity contains information about a Healthcare entity found in text.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
assertion: Optional[azure.ai.textanalytics._models.HealthcareEntityAssertion] = None

Contains various assertions about this entity. For example, if an entity is a diagnosis, is this diagnosis ‘conditional’ on a symptom? Are the doctors ‘certain’ about this diagnosis? Is this diagnosis ‘associated’ with another diagnosis?

category: str

Entity category, see the HealthcareEntityCategory type for possible healthcare entity categories.

confidence_score: float

Confidence score between 0 and 1 of the extracted entity.

data_sources: Optional[List[azure.ai.textanalytics._models.HealthcareEntityDataSource]]

A collection of entity references in known data sources.

length: int

The entity text length. This value depends on the value of the string_index_type parameter specified in the original request, which is UnicodeCodePoints by default.

normalized_text: Optional[str] = None

Normalized version of the raw text we extract from the document. Not all text will have a normalized version.

offset: int

The entity text offset from the start of the document. This value depends on the value of the string_index_type parameter specified in the original request, which is UnicodeCodePoints by default.

subcategory: Optional[str] = None

Entity subcategory.

text: str

Entity text as appears in the document.

class azure.ai.textanalytics.HealthcareEntityAssertion(**kwargs: Any)[source]

Contains various assertions about a HealthcareEntity.

For example, if an entity is a diagnosis, is this diagnosis ‘conditional’ on a symptom? Are the doctors ‘certain’ about this diagnosis? Is this diagnosis ‘associated’ with another diagnosis?

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
association: Optional[str] = None

Describes whether the healthcare entity it’s on is the subject of the document, or if this entity describes someone else in the document. For example, in “The subject’s mother has a fever”, the “fever” entity is not associated with the subject themselves, but with the subject’s mother. Possible values are “subject” and “other”.

certainty: Optional[str] = None

Describes how certain the healthcare entity it’s on is. For example, in “The patient may have a fever”, the fever entity is not 100% certain, but is instead “positivePossible”. Possible values are “positive”, “positivePossible”, “neutralPossible”, “negativePossible”, and “negative”.

conditionality: Optional[str] = None

Describes whether the healthcare entity it’s on is conditional on another entity. For example, “If the patient has a fever, he has pneumonia”, the diagnosis of pneumonia is ‘conditional’ on whether the patient has a fever. Possible values are “hypothetical” and “conditional”.

class azure.ai.textanalytics.HealthcareEntityCategory(value)[source]

Healthcare Entity Category.

ADMINISTRATIVE_EVENT = 'AdministrativeEvent'
AGE = 'Age'
ALLERGEN = 'Allergen'
BODY_STRUCTURE = 'BodyStructure'
CARE_ENVIRONMENT = 'CareEnvironment'
CONDITION_QUALIFIER = 'ConditionQualifier'
CONDITION_SCALE = 'ConditionScale'
COURSE = 'Course'
DATE = 'Date'
DIAGNOSIS = 'Diagnosis'
DIRECTION = 'Direction'
DOSAGE = 'Dosage'
EMPLOYMENT = 'Employment'
ETHNICITY = 'Ethnicity'
EXAMINATION_NAME = 'ExaminationName'
EXPRESSION = 'Expression'
FAMILY_RELATION = 'FamilyRelation'
FREQUENCY = 'Frequency'
GENDER = 'Gender'
GENE_OR_PROTEIN = 'GeneOrProtein'
HEALTHCARE_PROFESSION = 'HealthcareProfession'
LIVING_STATUS = 'LivingStatus'
MEASUREMENT_UNIT = 'MeasurementUnit'
MEASUREMENT_VALUE = 'MeasurementValue'
MEDICATION_CLASS = 'MedicationClass'
MEDICATION_FORM = 'MedicationForm'
MEDICATION_NAME = 'MedicationName'
MEDICATION_ROUTE = 'MedicationRoute'
MUTATION_TYPE = 'MutationType'
RELATIONAL_OPERATOR = 'RelationalOperator'
SUBSTANCE_USE = 'SubstanceUse'
SUBSTANCE_USE_AMOUNT = 'SubstanceUseAmount'
SYMPTOM_OR_SIGN = 'SymptomOrSign'
TIME = 'Time'
TREATMENT_NAME = 'TreatmentName'
VARIANT = 'Variant'
class azure.ai.textanalytics.HealthcareEntityDataSource(**kwargs: Any)[source]

HealthcareEntityDataSource contains information representing an entity reference in a known data source.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entity_id: str

ID of the entity in the given source catalog.

name: str

The name of the entity catalog from where the entity was identified, such as UMLS, CHV, MSH, etc.

class azure.ai.textanalytics.HealthcareEntityRelation(value)[source]

Type of relation. Examples include: DosageOfMedication or ‘FrequencyOfMedication’, etc.

ABBREVIATION = 'Abbreviation'
BODY_SITE_OF_CONDITION = 'BodySiteOfCondition'
BODY_SITE_OF_TREATMENT = 'BodySiteOfTreatment'
COURSE_OF_CONDITION = 'CourseOfCondition'
COURSE_OF_EXAMINATION = 'CourseOfExamination'
COURSE_OF_MEDICATION = 'CourseOfMedication'
COURSE_OF_TREATMENT = 'CourseOfTreatment'
DIRECTION_OF_BODY_STRUCTURE = 'DirectionOfBodyStructure'
DIRECTION_OF_CONDITION = 'DirectionOfCondition'
DIRECTION_OF_EXAMINATION = 'DirectionOfExamination'
DIRECTION_OF_TREATMENT = 'DirectionOfTreatment'
DOSAGE_OF_MEDICATION = 'DosageOfMedication'
EXAMINATION_FINDS_CONDITION = 'ExaminationFindsCondition'
EXPRESSION_OF_GENE = 'ExpressionOfGene'
EXPRESSION_OF_VARIANT = 'ExpressionOfVariant'
FORM_OF_MEDICATION = 'FormOfMedication'
FREQUENCY_OF_CONDITION = 'FrequencyOfCondition'
FREQUENCY_OF_MEDICATION = 'FrequencyOfMedication'
FREQUENCY_OF_TREATMENT = 'FrequencyOfTreatment'
MUTATION_TYPE_OF_GENE = 'MutationTypeOfGene'
MUTATION_TYPE_OF_VARIANT = 'MutationTypeOfVariant'
QUALIFIER_OF_CONDITION = 'QualifierOfCondition'
RELATION_OF_EXAMINATION = 'RelationOfExamination'
ROUTE_OF_MEDICATION = 'RouteOfMedication'
SCALE_OF_CONDITION = 'ScaleOfCondition'
TIME_OF_CONDITION = 'TimeOfCondition'
TIME_OF_EVENT = 'TimeOfEvent'
TIME_OF_EXAMINATION = 'TimeOfExamination'
TIME_OF_MEDICATION = 'TimeOfMedication'
TIME_OF_TREATMENT = 'TimeOfTreatment'
UNIT_OF_CONDITION = 'UnitOfCondition'
UNIT_OF_EXAMINATION = 'UnitOfExamination'
VALUE_OF_CONDITION = 'ValueOfCondition'
VALUE_OF_EXAMINATION = 'ValueOfExamination'
VARIANT_OF_GENE = 'VariantOfGene'
class azure.ai.textanalytics.HealthcareRelation(**kwargs: Any)[source]

HealthcareRelation is a result object which represents a relation detected in a document.

Every HealthcareRelation is an entity graph of a certain relation type, where all entities are connected and have specific roles within the relation context.

New in version 2023-04-01: The confidence_score property.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_score: Optional[float] = None

Confidence score between 0 and 1 of the extracted relation.

relation_type: str

The type of relation, i.e. the relationship between “100mg” and “ibuprofen” in the document “The subject took 100 mg of ibuprofen” is “DosageOfMedication”. Possible values found in HealthcareEntityRelation

roles: List[azure.ai.textanalytics._models.HealthcareRelationRole]

The roles present in this relation. I.e., in the document “The subject took 100 mg of ibuprofen”, the present roles are “Dosage” and “Medication”.

class azure.ai.textanalytics.HealthcareRelationRole(**kwargs: Any)[source]

A model representing a role in a relation.

For example, in “The subject took 100 mg of ibuprofen”, “100 mg” is a dosage entity fulfilling the role “Dosage” in the extracted relation “DosageOfMedication”.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entity: azure.ai.textanalytics._models.HealthcareEntity

The entity that is present in the relationship. For example, in “The subject took 100 mg of ibuprofen”, this property holds the dosage entity of “100 mg”.

name: str

The role of the entity in the relationship. I.e., in the relation “The subject took 100 mg of ibuprofen”, the dosage entity “100 mg” has role “Dosage”.

class azure.ai.textanalytics.LinkedEntity(**kwargs: Any)[source]

LinkedEntity contains a link to the well-known recognized entity in text. The link comes from a data source like Wikipedia or Bing. It additionally includes all of the matches of this entity found in the document.

New in version v3.1: The bing_entity_search_api_id property.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
bing_entity_search_api_id: Optional[str] = None

Bing Entity Search unique identifier of the recognized entity. Use in conjunction with the Bing Entity Search SDK to fetch additional relevant information.

data_source: str

Data source used to extract entity linking, such as Wiki/Bing etc.

data_source_entity_id: Optional[str] = None

Unique identifier of the recognized entity from the data source.

language: str

Language used in the data source.

matches: List[azure.ai.textanalytics._models.LinkedEntityMatch]

List of instances this entity appears in the text.

name: str

Entity Linking formal name.

url: str

URL to the entity’s page from the data source.

class azure.ai.textanalytics.LinkedEntityMatch(**kwargs: Any)[source]

A match for the linked entity found in text. Provides the confidence score of the prediction and where the entity was found in the text.

New in version v3.1: The offset and length properties.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_score: float

If a well-known item is recognized, a decimal number denoting the confidence level between 0 and 1 will be returned.

length: int

The linked entity match text length. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

offset: int

The linked entity match text offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

text: str

Entity text as appears in the request.

class azure.ai.textanalytics.MinedOpinion(**kwargs: Any)[source]

A mined opinion object represents an opinion we’ve extracted from a sentence. It consists of both a target that these opinions are about, and the assessments representing the opinion.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
assessments: List[azure.ai.textanalytics._models.AssessmentSentiment]

The assessments representing the opinion of the target.

target: azure.ai.textanalytics._models.TargetSentiment

The target of an opinion about a product/service.

class azure.ai.textanalytics.MultiLabelClassifyAction(project_name: str, deployment_name: str, *, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

MultiLabelClassifyAction encapsulates the parameters for starting a long-running custom multi label classification operation. For information on regional support of custom features and how to train a model to classify your documents, see https://aka.ms/azsdk/textanalytics/customfunctionalities

Parameters
  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – Required. This field indicates the deployment name for the model.

Keyword Arguments

disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

New in version 2022-05-01: The MultiLabelClassifyAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
deployment_name: str

This field indicates the deployment name for the model.

disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

project_name: str

This field indicates the project name for the model.

class azure.ai.textanalytics.PiiEntity(**kwargs: Any)[source]

PiiEntity contains information about a Personally Identifiable Information (PII) entity found in text.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
category: str

Entity category, such as Financial Account Identification/Social Security Number/Phone Number, etc.

confidence_score: float

Confidence score between 0 and 1 of the extracted entity.

length: int

The PII entity text length. This value depends on the value of the string_index_type parameter specified in the original request, which is UnicodeCodePoints by default.

offset: int

The PII entity text offset from the start of the document. This value depends on the value of the string_index_type parameter specified in the original request, which is UnicodeCodePoints by default.

subcategory: Optional[str] = None

Entity subcategory, such as Credit Card/EU Phone number/ABA Routing Numbers, etc.

text: str

Entity text as appears in the request.

class azure.ai.textanalytics.PiiEntityCategory(value)[source]

PiiEntityCategory.

ABA_ROUTING_NUMBER = 'ABARoutingNumber'
ADDRESS = 'Address'
AGE = 'Age'
ALL = 'All'
AR_NATIONAL_IDENTITY_NUMBER = 'ARNationalIdentityNumber'
AT_IDENTITY_CARD = 'ATIdentityCard'
AT_TAX_IDENTIFICATION_NUMBER = 'ATTaxIdentificationNumber'
AT_VALUE_ADDED_TAX_NUMBER = 'ATValueAddedTaxNumber'
AU_BANK_ACCOUNT_NUMBER = 'AUBankAccountNumber'
AU_BUSINESS_NUMBER = 'AUBusinessNumber'
AU_COMPANY_NUMBER = 'AUCompanyNumber'
AU_DRIVERS_LICENSE_NUMBER = 'AUDriversLicenseNumber'
AU_MEDICAL_ACCOUNT_NUMBER = 'AUMedicalAccountNumber'
AU_PASSPORT_NUMBER = 'AUPassportNumber'
AU_TAX_FILE_NUMBER = 'AUTaxFileNumber'
AZURE_DOCUMENT_DB_AUTH_KEY = 'AzureDocumentDBAuthKey'
AZURE_IAAS_DATABASE_CONNECTION_AND_SQL_STRING = 'AzureIAASDatabaseConnectionAndSQLString'
AZURE_IO_T_CONNECTION_STRING = 'AzureIoTConnectionString'
AZURE_PUBLISH_SETTING_PASSWORD = 'AzurePublishSettingPassword'
AZURE_REDIS_CACHE_STRING = 'AzureRedisCacheString'
AZURE_SAS = 'AzureSAS'
AZURE_SERVICE_BUS_STRING = 'AzureServiceBusString'
AZURE_STORAGE_ACCOUNT_GENERIC = 'AzureStorageAccountGeneric'
AZURE_STORAGE_ACCOUNT_KEY = 'AzureStorageAccountKey'
BE_NATIONAL_NUMBER = 'BENationalNumber'
BE_NATIONAL_NUMBER_V2 = 'BENationalNumberV2'
BE_VALUE_ADDED_TAX_NUMBER = 'BEValueAddedTaxNumber'
BG_UNIFORM_CIVIL_NUMBER = 'BGUniformCivilNumber'
BRCPF_NUMBER = 'BRCPFNumber'
BR_NATIONAL_IDRG = 'BRNationalIDRG'
CA_BANK_ACCOUNT_NUMBER = 'CABankAccountNumber'
CA_DRIVERS_LICENSE_NUMBER = 'CADriversLicenseNumber'
CA_HEALTH_SERVICE_NUMBER = 'CAHealthServiceNumber'
CA_PASSPORT_NUMBER = 'CAPassportNumber'
CA_PERSONAL_HEALTH_IDENTIFICATION = 'CAPersonalHealthIdentification'
CA_SOCIAL_INSURANCE_NUMBER = 'CASocialInsuranceNumber'
CH_SOCIAL_SECURITY_NUMBER = 'CHSocialSecurityNumber'
CL_IDENTITY_CARD_NUMBER = 'CLIdentityCardNumber'
CN_RESIDENT_IDENTITY_CARD_NUMBER = 'CNResidentIdentityCardNumber'
CREDIT_CARD_NUMBER = 'CreditCardNumber'
CY_IDENTITY_CARD = 'CYIdentityCard'
CY_TAX_IDENTIFICATION_NUMBER = 'CYTaxIdentificationNumber'
CZ_PERSONAL_IDENTITY_NUMBER = 'CZPersonalIdentityNumber'
CZ_PERSONAL_IDENTITY_V2 = 'CZPersonalIdentityV2'
DATE = 'Date'
DEFAULT = 'Default'
DE_DRIVERS_LICENSE_NUMBER = 'DEDriversLicenseNumber'
DE_IDENTITY_CARD_NUMBER = 'DEIdentityCardNumber'
DE_PASSPORT_NUMBER = 'DEPassportNumber'
DE_TAX_IDENTIFICATION_NUMBER = 'DETaxIdentificationNumber'
DE_VALUE_ADDED_NUMBER = 'DEValueAddedNumber'
DK_PERSONAL_IDENTIFICATION_NUMBER = 'DKPersonalIdentificationNumber'
DK_PERSONAL_IDENTIFICATION_V2 = 'DKPersonalIdentificationV2'
DRUG_ENFORCEMENT_AGENCY_NUMBER = 'DrugEnforcementAgencyNumber'
EE_PERSONAL_IDENTIFICATION_CODE = 'EEPersonalIdentificationCode'
EMAIL = 'Email'
ESDNI = 'ESDNI'
ES_SOCIAL_SECURITY_NUMBER = 'ESSocialSecurityNumber'
ES_TAX_IDENTIFICATION_NUMBER = 'ESTaxIdentificationNumber'
EUGPS_COORDINATES = 'EUGPSCoordinates'
EU_DEBIT_CARD_NUMBER = 'EUDebitCardNumber'
EU_DRIVERS_LICENSE_NUMBER = 'EUDriversLicenseNumber'
EU_NATIONAL_IDENTIFICATION_NUMBER = 'EUNationalIdentificationNumber'
EU_PASSPORT_NUMBER = 'EUPassportNumber'
EU_SOCIAL_SECURITY_NUMBER = 'EUSocialSecurityNumber'
EU_TAX_IDENTIFICATION_NUMBER = 'EUTaxIdentificationNumber'
FI_EUROPEAN_HEALTH_NUMBER = 'FIEuropeanHealthNumber'
FI_NATIONAL_ID = 'FINationalID'
FI_NATIONAL_IDV2 = 'FINationalIDV2'
FI_PASSPORT_NUMBER = 'FIPassportNumber'
FR_DRIVERS_LICENSE_NUMBER = 'FRDriversLicenseNumber'
FR_HEALTH_INSURANCE_NUMBER = 'FRHealthInsuranceNumber'
FR_NATIONAL_ID = 'FRNationalID'
FR_PASSPORT_NUMBER = 'FRPassportNumber'
FR_SOCIAL_SECURITY_NUMBER = 'FRSocialSecurityNumber'
FR_TAX_IDENTIFICATION_NUMBER = 'FRTaxIdentificationNumber'
FR_VALUE_ADDED_TAX_NUMBER = 'FRValueAddedTaxNumber'
GR_NATIONAL_IDV2 = 'GRNationalIDV2'
GR_NATIONAL_ID_CARD = 'GRNationalIDCard'
GR_TAX_IDENTIFICATION_NUMBER = 'GRTaxIdentificationNumber'
HK_IDENTITY_CARD_NUMBER = 'HKIdentityCardNumber'
HR_IDENTITY_CARD_NUMBER = 'HRIdentityCardNumber'
HR_NATIONAL_ID_NUMBER = 'HRNationalIDNumber'
HR_PERSONAL_IDENTIFICATION_NUMBER = 'HRPersonalIdentificationNumber'
HR_PERSONAL_IDENTIFICATION_OIB_NUMBER_V2 = 'HRPersonalIdentificationOIBNumberV2'
HU_PERSONAL_IDENTIFICATION_NUMBER = 'HUPersonalIdentificationNumber'
HU_TAX_IDENTIFICATION_NUMBER = 'HUTaxIdentificationNumber'
HU_VALUE_ADDED_NUMBER = 'HUValueAddedNumber'
ID_IDENTITY_CARD_NUMBER = 'IDIdentityCardNumber'
IE_PERSONAL_PUBLIC_SERVICE_NUMBER = 'IEPersonalPublicServiceNumber'
IE_PERSONAL_PUBLIC_SERVICE_NUMBER_V2 = 'IEPersonalPublicServiceNumberV2'
IL_BANK_ACCOUNT_NUMBER = 'ILBankAccountNumber'
IL_NATIONAL_ID = 'ILNationalID'
INTERNATIONAL_BANKING_ACCOUNT_NUMBER = 'InternationalBankingAccountNumber'
IN_PERMANENT_ACCOUNT = 'INPermanentAccount'
IN_UNIQUE_IDENTIFICATION_NUMBER = 'INUniqueIdentificationNumber'
IP_ADDRESS = 'IPAddress'
IT_DRIVERS_LICENSE_NUMBER = 'ITDriversLicenseNumber'
IT_FISCAL_CODE = 'ITFiscalCode'
IT_VALUE_ADDED_TAX_NUMBER = 'ITValueAddedTaxNumber'
JP_BANK_ACCOUNT_NUMBER = 'JPBankAccountNumber'
JP_DRIVERS_LICENSE_NUMBER = 'JPDriversLicenseNumber'
JP_MY_NUMBER_CORPORATE = 'JPMyNumberCorporate'
JP_MY_NUMBER_PERSONAL = 'JPMyNumberPersonal'
JP_PASSPORT_NUMBER = 'JPPassportNumber'
JP_RESIDENCE_CARD_NUMBER = 'JPResidenceCardNumber'
JP_RESIDENT_REGISTRATION_NUMBER = 'JPResidentRegistrationNumber'
JP_SOCIAL_INSURANCE_NUMBER = 'JPSocialInsuranceNumber'
KR_RESIDENT_REGISTRATION_NUMBER = 'KRResidentRegistrationNumber'
LT_PERSONAL_CODE = 'LTPersonalCode'
LU_NATIONAL_IDENTIFICATION_NUMBER_NATURAL = 'LUNationalIdentificationNumberNatural'
LU_NATIONAL_IDENTIFICATION_NUMBER_NON_NATURAL = 'LUNationalIdentificationNumberNonNatural'
LV_PERSONAL_CODE = 'LVPersonalCode'
MT_IDENTITY_CARD_NUMBER = 'MTIdentityCardNumber'
MT_TAX_ID_NUMBER = 'MTTaxIDNumber'
MY_IDENTITY_CARD_NUMBER = 'MYIdentityCardNumber'
NL_CITIZENS_SERVICE_NUMBER = 'NLCitizensServiceNumber'
NL_CITIZENS_SERVICE_NUMBER_V2 = 'NLCitizensServiceNumberV2'
NL_TAX_IDENTIFICATION_NUMBER = 'NLTaxIdentificationNumber'
NL_VALUE_ADDED_TAX_NUMBER = 'NLValueAddedTaxNumber'
NO_IDENTITY_NUMBER = 'NOIdentityNumber'
NZ_BANK_ACCOUNT_NUMBER = 'NZBankAccountNumber'
NZ_DRIVERS_LICENSE_NUMBER = 'NZDriversLicenseNumber'
NZ_INLAND_REVENUE_NUMBER = 'NZInlandRevenueNumber'
NZ_MINISTRY_OF_HEALTH_NUMBER = 'NZMinistryOfHealthNumber'
NZ_SOCIAL_WELFARE_NUMBER = 'NZSocialWelfareNumber'
ORGANIZATION = 'Organization'
PERSON = 'Person'
PHONE_NUMBER = 'PhoneNumber'
PH_UNIFIED_MULTI_PURPOSE_ID_NUMBER = 'PHUnifiedMultiPurposeIDNumber'
PLREGON_NUMBER = 'PLREGONNumber'
PL_IDENTITY_CARD = 'PLIdentityCard'
PL_NATIONAL_ID = 'PLNationalID'
PL_NATIONAL_IDV2 = 'PLNationalIDV2'
PL_PASSPORT_NUMBER = 'PLPassportNumber'
PL_TAX_IDENTIFICATION_NUMBER = 'PLTaxIdentificationNumber'
PT_CITIZEN_CARD_NUMBER = 'PTCitizenCardNumber'
PT_CITIZEN_CARD_NUMBER_V2 = 'PTCitizenCardNumberV2'
PT_TAX_IDENTIFICATION_NUMBER = 'PTTaxIdentificationNumber'
RO_PERSONAL_NUMERICAL_CODE = 'ROPersonalNumericalCode'
RU_PASSPORT_NUMBER_DOMESTIC = 'RUPassportNumberDomestic'
RU_PASSPORT_NUMBER_INTERNATIONAL = 'RUPassportNumberInternational'
SA_NATIONAL_ID = 'SANationalID'
SE_NATIONAL_ID = 'SENationalID'
SE_NATIONAL_IDV2 = 'SENationalIDV2'
SE_PASSPORT_NUMBER = 'SEPassportNumber'
SE_TAX_IDENTIFICATION_NUMBER = 'SETaxIdentificationNumber'
SG_NATIONAL_REGISTRATION_IDENTITY_CARD_NUMBER = 'SGNationalRegistrationIdentityCardNumber'
SI_TAX_IDENTIFICATION_NUMBER = 'SITaxIdentificationNumber'
SI_UNIQUE_MASTER_CITIZEN_NUMBER = 'SIUniqueMasterCitizenNumber'
SK_PERSONAL_NUMBER = 'SKPersonalNumber'
SQL_SERVER_CONNECTION_STRING = 'SQLServerConnectionString'
SWIFT_CODE = 'SWIFTCode'
TH_POPULATION_IDENTIFICATION_CODE = 'THPopulationIdentificationCode'
TR_NATIONAL_IDENTIFICATION_NUMBER = 'TRNationalIdentificationNumber'
TW_NATIONAL_ID = 'TWNationalID'
TW_PASSPORT_NUMBER = 'TWPassportNumber'
TW_RESIDENT_CERTIFICATE = 'TWResidentCertificate'
UA_PASSPORT_NUMBER_DOMESTIC = 'UAPassportNumberDomestic'
UA_PASSPORT_NUMBER_INTERNATIONAL = 'UAPassportNumberInternational'
UK_DRIVERS_LICENSE_NUMBER = 'UKDriversLicenseNumber'
UK_ELECTORAL_ROLL_NUMBER = 'UKElectoralRollNumber'
UK_NATIONAL_HEALTH_NUMBER = 'UKNationalHealthNumber'
UK_NATIONAL_INSURANCE_NUMBER = 'UKNationalInsuranceNumber'
UK_UNIQUE_TAXPAYER_NUMBER = 'UKUniqueTaxpayerNumber'
URL = 'URL'
USUK_PASSPORT_NUMBER = 'USUKPassportNumber'
US_BANK_ACCOUNT_NUMBER = 'USBankAccountNumber'
US_DRIVERS_LICENSE_NUMBER = 'USDriversLicenseNumber'
US_INDIVIDUAL_TAXPAYER_IDENTIFICATION = 'USIndividualTaxpayerIdentification'
US_SOCIAL_SECURITY_NUMBER = 'USSocialSecurityNumber'
ZA_IDENTIFICATION_NUMBER = 'ZAIdentificationNumber'
class azure.ai.textanalytics.PiiEntityDomain(value)[source]

The different domains of PII entities that users can filter by

PROTECTED_HEALTH_INFORMATION = 'phi'
class azure.ai.textanalytics.RecognizeCustomEntitiesAction(project_name: str, deployment_name: str, *, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

RecognizeCustomEntitiesAction encapsulates the parameters for starting a long-running custom entity recognition operation. For information on regional support of custom features and how to train a model to recognize custom entities, see https://aka.ms/azsdk/textanalytics/customentityrecognition

Parameters
  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – This field indicates the deployment name for the model.

Keyword Arguments
  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

New in version 2022-05-01: The RecognizeCustomEntitiesAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
deployment_name: str

This field indicates the deployment name for the model.

disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

project_name: str

This field indicates the project name for the model.

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.RecognizeCustomEntitiesResult(**kwargs: Any)[source]

RecognizeCustomEntitiesResult is a result object which contains the custom recognized entities from a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entities: List[azure.ai.textanalytics._models.CategorizedEntity]

Recognized custom entities in the document.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a RecognizeCustomEntitiesResult.

kind: typing_extensions.Literal[CustomEntityRecognition] = 'CustomEntityRecognition'

The text analysis kind - “CustomEntityRecognition”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document.

class azure.ai.textanalytics.RecognizeEntitiesAction(*, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

RecognizeEntitiesAction encapsulates the parameters for starting a long-running Entities Recognition operation.

If you just want to recognize entities in a list of documents, and not perform multiple long running actions on the input of documents, call method recognize_entities instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.RecognizeEntitiesResult(**kwargs: Any)[source]

RecognizeEntitiesResult is a result object which contains the recognized entities from a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entities: List[azure.ai.textanalytics._models.CategorizedEntity]

Recognized entities in the document.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a RecognizeEntitiesResult.

kind: typing_extensions.Literal[EntityRecognition] = 'EntityRecognition'

The text analysis kind - “EntityRecognition”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.RecognizeLinkedEntitiesAction(*, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

RecognizeLinkedEntitiesAction encapsulates the parameters for starting a long-running Linked Entities Recognition operation.

If you just want to recognize linked entities in a list of documents, and not perform multiple long running actions on the input of documents, call method recognize_linked_entities instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.RecognizeLinkedEntitiesResult(**kwargs: Any)[source]

RecognizeLinkedEntitiesResult is a result object which contains links to a well-known knowledge base, like for example, Wikipedia or Bing.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entities: List[azure.ai.textanalytics._models.LinkedEntity]

Recognized well-known entities in the document.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a RecognizeLinkedEntitiesResult.

kind: typing_extensions.Literal[EntityLinking] = 'EntityLinking'

The text analysis kind - “EntityLinking”.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.RecognizePiiEntitiesAction(*, categories_filter: Optional[List[Union[str, azure.ai.textanalytics._generated.v2023_04_01.models._text_analytics_client_enums.PiiEntityCategory]]] = None, domain_filter: Optional[str] = None, model_version: Optional[str] = None, string_index_type: Optional[str] = None, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

RecognizePiiEntitiesAction encapsulates the parameters for starting a long-running PII Entities Recognition operation. See more information in the service docs: https://aka.ms/azsdk/language/pii

If you just want to recognize pii entities in a list of documents, and not perform multiple long running actions on the input of documents, call method recognize_pii_entities instead of interfacing with this model.

Keyword Arguments
  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • domain_filter (Optional[str]) – An optional string to set the PII domain to include only a subset of the PII entity categories. Possible values include ‘phi’ or None.

  • categories_filter (Optional[list[str or 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 (Optional[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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (Optional[bool]) – Defaults to true, meaning that the Language service will not log your input text on the service side for troubleshooting. If set to False, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
categories_filter: Optional[List[Union[str, azure.ai.textanalytics._generated.v2023_04_01.models._text_analytics_client_enums.PiiEntityCategory]]] = None

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.

disable_service_logs: Optional[bool] = None

Defaults to true, meaning that the Language service will not log your input text on the service side for troubleshooting. If set to False, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

domain_filter: Optional[str] = None

An optional string to set the PII domain to include only a subset of the PII entity categories. Possible values include ‘phi’ or None.

model_version: Optional[str] = None

The model version to use for the analysis, e.g. “latest”. 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

string_index_type: Optional[str] = None

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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

class azure.ai.textanalytics.RecognizePiiEntitiesResult(**kwargs: Any)[source]

RecognizePiiEntitiesResult is a result object which contains the recognized Personally Identifiable Information (PII) entities from a particular document.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
entities: List[azure.ai.textanalytics._models.PiiEntity]

Recognized PII entities in the document.

id: str

Unique, non-empty document identifier that matches the document id that was passed in with the request. If not specified in the request, an id is assigned for the document.

is_error: typing_extensions.Literal[False] = False

Boolean check for error item when iterating over list of results. Always False for an instance of a RecognizePiiEntitiesResult.

kind: typing_extensions.Literal[PiiEntityRecognition] = 'PiiEntityRecognition'

The text analysis kind - “PiiEntityRecognition”.

redacted_text: str

Returns the text of the input document with all of the PII information redacted out.

statistics: Optional[azure.ai.textanalytics._models.TextDocumentStatistics] = None

If show_stats=True was specified in the request this field will contain information about the document payload.

warnings: List[azure.ai.textanalytics._models.TextAnalyticsWarning]

Warnings encountered while processing document. Results will still be returned if there are warnings, but they may not be fully accurate.

class azure.ai.textanalytics.SentenceSentiment(**kwargs: Any)[source]

SentenceSentiment contains the predicted sentiment and confidence scores for each individual sentence in the document.

New in version v3.1: The offset, length, and mined_opinions properties.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_scores: azure.ai.textanalytics._models.SentimentConfidenceScores

The sentiment confidence score between 0 and 1 for the sentence for all labels.

length: int

The sentence text length. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

mined_opinions: Optional[List[azure.ai.textanalytics._models.MinedOpinion]] = None

The list of opinions mined from this sentence. For example in the sentence “The food is good, but the service is bad”, we would mine the two opinions “food is good” and “service is bad”. Only returned if show_opinion_mining is set to True in the call to analyze_sentiment and api version is v3.1 and up.

offset: int

The sentence text offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

sentiment: str

The predicted Sentiment for the sentence. Possible values include ‘positive’, ‘neutral’, ‘negative’

text: str

The sentence text.

class azure.ai.textanalytics.SentimentConfidenceScores(**kwargs: Any)[source]

The confidence scores (Softmax scores) between 0 and 1. Higher values indicate higher confidence.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
negative: float

Negative score.

neutral: float

Neutral score.

positive: float

Positive score.

class azure.ai.textanalytics.SingleLabelClassifyAction(project_name: str, deployment_name: str, *, disable_service_logs: Optional[bool] = None, **kwargs: Any)[source]

SingleLabelClassifyAction encapsulates the parameters for starting a long-running custom single label classification operation. For information on regional support of custom features and how to train a model to classify your documents, see https://aka.ms/azsdk/textanalytics/customfunctionalities

Parameters
  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – Required. This field indicates the deployment name for the model.

Keyword Arguments

disable_service_logs (Optional[bool]) – If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

New in version 2022-05-01: The SingleLabelClassifyAction model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
deployment_name: str

This field indicates the deployment name for the model.

disable_service_logs: Optional[bool] = None

If set to true, you opt-out of having your text input logged on the service side for troubleshooting. By default, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

project_name: str

This field indicates the project name for the model.

class azure.ai.textanalytics.SummaryContext(**kwargs: Any)[source]

The context of the summary.

New in version 2023-04-01: The SummaryContext model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
length: int

The length of the context. Use of different ‘string_index_type’ values can affect the length returned. Required.

offset: int

Start position for the context. Use of different ‘string_index_type’ values can affect the offset returned. Required.

class azure.ai.textanalytics.SummarySentence(**kwargs: Any)[source]

Represents a single sentence from the extractive text summarization.

New in version 2023-04-01: The SummarySentence model.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
length: int

The length of the sentence. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoint by default.

offset: int

The sentence offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoint by default.

rank_score: float

A float value representing the relevance of the sentence within the summary. Higher values indicate higher importance.

text: str

The extracted sentence text.

class azure.ai.textanalytics.TargetSentiment(**kwargs: Any)[source]

TargetSentiment contains the predicted sentiment, confidence scores and other information about a key component of a product/service. For example in “The food at Hotel Foo is good”, “food” is an key component of “Hotel Foo”.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
confidence_scores: azure.ai.textanalytics._models.SentimentConfidenceScores

The sentiment confidence score between 0 and 1 for the target for ‘positive’ and ‘negative’ labels. It’s score for ‘neutral’ will always be 0

length: int

The target text length. This value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

offset: int

The target text offset from the start of the document. The value depends on the value of the string_index_type parameter set in the original request, which is UnicodeCodePoints by default.

sentiment: str

The predicted Sentiment for the target. Possible values include ‘positive’, ‘mixed’, and ‘negative’.

text: str

The text value of the target.

class azure.ai.textanalytics.TextAnalysisKind(value)[source]

Enumeration of supported Text Analysis kinds.

New in version 2022-05-01: The TextAnalysisKind enum.

ABSTRACTIVE_SUMMARIZATION = 'AbstractiveSummarization'
CUSTOM_DOCUMENT_CLASSIFICATION = 'CustomDocumentClassification'
CUSTOM_ENTITY_RECOGNITION = 'CustomEntityRecognition'
ENTITY_LINKING = 'EntityLinking'
ENTITY_RECOGNITION = 'EntityRecognition'
EXTRACTIVE_SUMMARIZATION = 'ExtractiveSummarization'
HEALTHCARE = 'Healthcare'
KEY_PHRASE_EXTRACTION = 'KeyPhraseExtraction'
LANGUAGE_DETECTION = 'LanguageDetection'
PII_ENTITY_RECOGNITION = 'PiiEntityRecognition'
SENTIMENT_ANALYSIS = 'SentimentAnalysis'
class azure.ai.textanalytics.TextAnalysisLROPoller(*args, **kwargs)[source]

Implements a protocol which returned poller objects are consistent with.

add_done_callback(func: Callable)None[source]

Add callback function to be run once the long running operation has completed - regardless of the status of the operation.

Parameters

func (callable) – Callback function that takes at least one argument, a completed LongRunningOperation.

cancel()None[source]

Cancel the operation currently being polled.

Returns

None

Return type

None

Raises

HttpResponseError – When the operation has already reached a terminal state.

continuation_token()str[source]

Return a continuation token that allows to restart the poller later.

Returns

An opaque continuation token

Return type

str

done()bool[source]

Check status of the long running operation.

Returns

‘True’ if the process has completed, else ‘False’.

Return type

bool

remove_done_callback(func: Callable)None[source]

Remove a callback from the long running operation.

Parameters

func (callable) – The function to be removed from the callbacks.

Raises

ValueError – if the long running operation has already completed.

result(timeout: Optional[int] = None)PollingReturnType_co[source]

Return the result of the long running operation, or the result available after the specified timeout.

Returns

The deserialized resource of the long running operation, if one is available.

Raises

HttpResponseError – Server problem with the query.

status()str[source]

Returns the current status string.

Returns

The current status string

Return type

str

wait(timeout: Optional[float] = None)None[source]

Wait on the long running operation for a specified length of time. You can check if this call as ended with timeout with the “done()” method.

Parameters

timeout (float) – Period of time to wait for the long running operation to complete (in seconds).

Raises

HttpResponseError – Server problem with the query.

property details

Long-running operation metadata.

Returns

A mapping of details about the long-running operation.

Return type

Mapping[str, Any]

class azure.ai.textanalytics.TextAnalyticsApiVersion(value)[source]

Cognitive Service for Language or Text Analytics API versions supported by this package

V2022_05_01 = '2022-05-01'

This version corresponds to the Cognitive Service for Language API.

V2023_04_01 = '2023-04-01'

This is the default version and corresponds to the Cognitive Service for Language API.

V3_0 = 'v3.0'

This version corresponds to Text Analytics API.

V3_1 = 'v3.1'

This version corresponds to Text Analytics API.

class azure.ai.textanalytics.TextAnalyticsClient(endpoint: str, credential: Union[azure.core.credentials.AzureKeyCredential, azure.core.credentials.TokenCredential], *, default_language: Optional[str] = None, default_country_hint: Optional[str] = None, api_version: Optional[Union[str, azure.ai.textanalytics._base_client.TextAnalyticsApiVersion]] = None, **kwargs: Any)[source]

The Language service API is a suite of natural language processing (NLP) skills built with the 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, and more.

Further documentation can be found in https://docs.microsoft.com/azure/cognitive-services/language-service/overview

Parameters
  • endpoint (str) – Supported Cognitive Services or Language resource endpoints (protocol and hostname, for example: ‘https://<resource-name>.cognitiveservices.azure.com’).

  • credential (AzureKeyCredential or TokenCredential) – Credentials needed for the client to connect to Azure. This can be the an instance of AzureKeyCredential if using a Cognitive Services/Language API key or a token credential from azure.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:

Creating the TextAnalyticsClient with endpoint and API key.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient
endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]

text_analytics_client = TextAnalyticsClient(endpoint, AzureKeyCredential(key))
Creating the TextAnalyticsClient with endpoint and token credential from Azure Active Directory.
import os
from azure.ai.textanalytics import TextAnalyticsClient
from azure.identity import DefaultAzureCredential

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
credential = DefaultAzureCredential()

text_analytics_client = TextAnalyticsClient(endpoint, credential=credential)
analyze_sentiment(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, disable_service_logs: Optional[bool] = None, language: Optional[str] = None, model_version: Optional[str] = None, show_opinion_mining: Optional[bool] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **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://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of TextDocumentInput, 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 Language API.

  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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 Utf16CodeUnit 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[AnalyzeSentimentResult or DocumentError]

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:

Analyze sentiment in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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!"""
]


result = text_analytics_client.analyze_sentiment(documents, show_opinion_mining=True)
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(f"Document text: {documents[idx]}")
    print(f"Overall sentiment: {doc.sentiment}")
begin_abstract_summary(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, model_version: Optional[str] = None, string_index_type: Optional[str] = None, sentence_count: Optional[int] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[Union[azure.ai.textanalytics._models.AbstractiveSummaryResult, azure.ai.textanalytics._models.DocumentError]]][source]

Start a long-running abstractive summarization operation.

For a conceptual discussion of abstractive summarization, see the service documentation: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

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 of TextDocumentInput, 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 Language API.

  • show_stats (bool) – If set to true, response will contain document level statistics.

  • sentence_count (Optional[int]) – It controls the approximate number of sentences in the output summaries.

  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[str]) – Specifies the method used to interpret string 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • 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.

  • display_name (str) – An optional display name to set for the requested analysis.

Returns

An instance of an TextAnalysisLROPoller. Call result() on the this object to return a heterogeneous pageable of AbstractiveSummaryResult and DocumentError.

Return type

TextAnalysisLROPoller[ItemPaged[ AbstractiveSummaryResult or DocumentError]]

Raises

HttpResponseError

New in version 2023-04-01: The begin_abstract_summary client method.

Example:

Perform abstractive summarization on a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]

text_analytics_client = TextAnalyticsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

document = [
    "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, "
    "human-centric approach to learning and understanding. As Chief Technology Officer of Azure AI Cognitive "
    "Services, I have been working with a team of amazing scientists and engineers to turn this quest into a "
    "reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of "
    "human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the "
    "intersection of all three, there's magic-what we call XYZ-code as illustrated in Figure 1-a joint "
    "representation to create more powerful AI that can speak, hear, see, and understand humans better. "
    "We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, "
    "spanning modalities and languages. The goal is to have pretrained models that can jointly learn "
    "representations to support a broad range of downstream AI tasks, much in the way humans do today. "
    "Over the past five years, we have achieved human performance on benchmarks in conversational speech "
    "recognition, machine translation, conversational question answering, machine reading comprehension, "
    "and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious "
    "aspiration to produce a leap in AI capabilities, achieving multisensory and multilingual learning that "
    "is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational "
    "component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
]

poller = text_analytics_client.begin_abstract_summary(document)
abstract_summary_results = poller.result()
for result in abstract_summary_results:
    if result.kind == "AbstractiveSummarization":
        print("Summaries abstracted:")
        [print(f"{summary.text}\n") for summary in result.summaries]
    elif result.is_error is True:
        print("...Is an error with code '{}' and message '{}'".format(
            result.error.code, result.error.message
        ))
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.RecognizeCustomEntitiesAction, azure.ai.textanalytics._models.SingleLabelClassifyAction, azure.ai.textanalytics._models.MultiLabelClassifyAction, azure.ai.textanalytics._models.AnalyzeHealthcareEntitiesAction, azure.ai.textanalytics._models.ExtractiveSummaryAction, azure.ai.textanalytics._models.AbstractiveSummaryAction]], *, continuation_token: Optional[str] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[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.RecognizeCustomEntitiesResult, azure.ai.textanalytics._models.ClassifyDocumentResult, azure.ai.textanalytics._models.AnalyzeHealthcareEntitiesResult, azure.ai.textanalytics._models.ExtractiveSummaryResult, azure.ai.textanalytics._models.AbstractiveSummaryResult, 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 analysis 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
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 Language 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 TextAnalysisLROPoller. 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 and AnalyzeSentimentAction, when iterating over the list of lists, you will first iterate over the action results for the “Hello” document, getting the RecognizeEntitiesResult of “Hello”, then the AnalyzeSentimentResult of “Hello”. Then, you will get the RecognizeEntitiesResult and AnalyzeSentimentResult of “world”.

Return type

TextAnalysisLROPoller[ItemPaged[ list[RecognizeEntitiesResult or RecognizeLinkedEntitiesResult or RecognizePiiEntitiesResult or ExtractKeyPhrasesResult or AnalyzeSentimentResult or RecognizeCustomEntitiesResult or ClassifyDocumentResult or AnalyzeHealthcareEntitiesResult or ExtractiveSummaryResult or AbstractiveSummaryResult or DocumentError]]]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The begin_analyze_actions client method.

New in version 2022-05-01: The RecognizeCustomEntitiesAction, SingleLabelClassifyAction, MultiLabelClassifyAction, and AnalyzeHealthcareEntitiesAction input options and the corresponding RecognizeCustomEntitiesResult, ClassifyDocumentResult, and AnalyzeHealthcareEntitiesResult result objects

New in version 2023-04-01: The ExtractiveSummaryAction and AbstractiveSummaryAction input options and the corresponding ExtractiveSummaryResult and AbstractiveSummaryResult result objects.

Example:

Start a long-running operation to perform a variety of text analysis actions over a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import (
    TextAnalyticsClient,
    RecognizeEntitiesAction,
    RecognizeLinkedEntitiesAction,
    RecognizePiiEntitiesAction,
    ExtractKeyPhrasesAction,
    AnalyzeSentimentAction,
)

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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!'
]

poller = text_analytics_client.begin_analyze_actions(
    documents,
    display_name="Sample Text Analysis",
    actions=[
        RecognizeEntitiesAction(),
        RecognizePiiEntitiesAction(),
        ExtractKeyPhrasesAction(),
        RecognizeLinkedEntitiesAction(),
        AnalyzeSentimentAction(),
    ],
)

document_results = poller.result()
for doc, action_results in zip(documents, document_results):
    print(f"\nDocument text: {doc}")
    for result in action_results:
        if result.kind == "EntityRecognition":
            print("...Results of Recognize Entities Action:")
            for entity in result.entities:
                print(f"......Entity: {entity.text}")
                print(f".........Category: {entity.category}")
                print(f".........Confidence Score: {entity.confidence_score}")
                print(f".........Offset: {entity.offset}")

        elif result.kind == "PiiEntityRecognition":
            print("...Results of Recognize PII Entities action:")
            for pii_entity in result.entities:
                print(f"......Entity: {pii_entity.text}")
                print(f".........Category: {pii_entity.category}")
                print(f".........Confidence Score: {pii_entity.confidence_score}")

        elif result.kind == "KeyPhraseExtraction":
            print("...Results of Extract Key Phrases action:")
            print(f"......Key Phrases: {result.key_phrases}")

        elif result.kind == "EntityLinking":
            print("...Results of Recognize Linked Entities action:")
            for linked_entity in result.entities:
                print(f"......Entity name: {linked_entity.name}")
                print(f".........Data source: {linked_entity.data_source}")
                print(f".........Data source language: {linked_entity.language}")
                print(
                    f".........Data source entity ID: {linked_entity.data_source_entity_id}"
                )
                print(f".........Data source URL: {linked_entity.url}")
                print(".........Document matches:")
                for match in linked_entity.matches:
                    print(f"............Match text: {match.text}")
                    print(f"............Confidence Score: {match.confidence_score}")
                    print(f"............Offset: {match.offset}")
                    print(f"............Length: {match.length}")

        elif result.kind == "SentimentAnalysis":
            print("...Results of Analyze Sentiment action:")
            print(f"......Overall sentiment: {result.sentiment}")
            print(
                f"......Scores: positive={result.confidence_scores.positive}; \
                neutral={result.confidence_scores.neutral}; \
                negative={result.confidence_scores.negative} \n"
            )

        elif result.is_error is True:
            print(
                f"...Is an error with code '{result.error.code}' and message '{result.error.message}'"
            )

    print("------------------------------------------")

begin_analyze_healthcare_entities(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, model_version: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **kwargs: Any)azure.ai.textanalytics._lro.AnalyzeHealthcareEntitiesLROPoller[azure.core.paging.ItemPaged[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 of TextDocumentInput, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.

Keyword Arguments
  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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.

  • 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 Language API.

  • display_name (str) – An optional display name to set for the requested analysis.

  • 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 Utf16CodeUnit 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 the Language service will not log your input text on the service side for troubleshooting. If set to False, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 AnalyzeHealthcareEntitiesLROPoller. Call result() on the this object to return a heterogeneous pageable of AnalyzeHealthcareEntitiesResult and DocumentError.

Return type

AnalyzeHealthcareEntitiesLROPoller[ItemPaged[ AnalyzeHealthcareEntitiesResult or DocumentError]]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The begin_analyze_healthcare_entities client method.

New in version 2022-05-01: The display_name keyword argument.

Example:

Recognize healthcare entities in a batch of documents.
import os
import typing
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient, HealthcareEntityRelation

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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.
    """
]

poller = text_analytics_client.begin_analyze_healthcare_entities(documents)
result = poller.result()

docs = [doc for doc in result if not doc.is_error]

print("Let's first visualize the outputted healthcare result:")
for doc in docs:
    for entity in doc.entities:
        print(f"Entity: {entity.text}")
        print(f"...Normalized Text: {entity.normalized_text}")
        print(f"...Category: {entity.category}")
        print(f"...Subcategory: {entity.subcategory}")
        print(f"...Offset: {entity.offset}")
        print(f"...Confidence score: {entity.confidence_score}")
        if entity.data_sources is not None:
            print("...Data Sources:")
            for data_source in entity.data_sources:
                print(f"......Entity ID: {data_source.entity_id}")
                print(f"......Name: {data_source.name}")
        if entity.assertion is not None:
            print("...Assertion:")
            print(f"......Conditionality: {entity.assertion.conditionality}")
            print(f"......Certainty: {entity.assertion.certainty}")
            print(f"......Association: {entity.assertion.association}")
    for relation in doc.entity_relations:
        print(f"Relation of type: {relation.relation_type} has the following roles")
        for role in relation.roles:
            print(f"...Role '{role.name}' with entity '{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
]
begin_extract_summary(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, model_version: Optional[str] = None, string_index_type: Optional[str] = None, max_sentence_count: Optional[int] = None, order_by: Optional[typing_extensions.Literal[Rank, Offset]] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[Union[azure.ai.textanalytics._models.ExtractiveSummaryResult, azure.ai.textanalytics._models.DocumentError]]][source]

Start a long-running extractive summarization operation.

For a conceptual discussion of extractive summarization, see the service documentation: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

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 of TextDocumentInput, 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 Language API.

  • show_stats (bool) – If set to true, response will contain document level statistics.

  • max_sentence_count (Optional[int]) – Maximum number of sentences to return. Defaults to 3.

  • order_by (Optional[str]) – Possible values include: “Offset”, “Rank”. Default value: “Offset”.

  • model_version (Optional[str]) – The model version to use for the analysis, e.g. “latest”. 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

  • string_index_type (Optional[str]) – Specifies the method used to interpret string 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • 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.

  • display_name (str) – An optional display name to set for the requested analysis.

Returns

An instance of an TextAnalysisLROPoller. Call result() on the this object to return a heterogeneous pageable of ExtractiveSummaryResult and DocumentError.

Return type

TextAnalysisLROPoller[ItemPaged[ ExtractiveSummaryResult or DocumentError]]

Raises

HttpResponseError

New in version 2023-04-01: The begin_extract_summary client method.

Example:

Perform extractive summarization on a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]

text_analytics_client = TextAnalyticsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

document = [
    "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, "
    "human-centric approach to learning and understanding. As Chief Technology Officer of Azure AI Cognitive "
    "Services, I have been working with a team of amazing scientists and engineers to turn this quest into a "
    "reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of "
    "human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the "
    "intersection of all three, there's magic-what we call XYZ-code as illustrated in Figure 1-a joint "
    "representation to create more powerful AI that can speak, hear, see, and understand humans better. "
    "We believe XYZ-code will enable us to fulfill our long-term vision: cross-domain transfer learning, "
    "spanning modalities and languages. The goal is to have pretrained models that can jointly learn "
    "representations to support a broad range of downstream AI tasks, much in the way humans do today. "
    "Over the past five years, we have achieved human performance on benchmarks in conversational speech "
    "recognition, machine translation, conversational question answering, machine reading comprehension, "
    "and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious "
    "aspiration to produce a leap in AI capabilities, achieving multisensory and multilingual learning that "
    "is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational "
    "component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
]

poller = text_analytics_client.begin_extract_summary(document)
extract_summary_results = poller.result()
for result in extract_summary_results:
    if result.kind == "ExtractiveSummarization":
        print("Summary extracted: \n{}".format(
            " ".join([sentence.text for sentence in result.sentences]))
        )
    elif result.is_error is True:
        print("...Is an error with code '{}' and message '{}'".format(
            result.error.code, result.error.message
        ))
begin_multi_label_classify(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], project_name: str, deployment_name: str, *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[Union[azure.ai.textanalytics._models.ClassifyDocumentResult, azure.ai.textanalytics._models.DocumentError]]][source]

Start a long-running custom multi label classification operation.

For information on regional support of custom features and how to train a model to classify your documents, see 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 of TextDocumentInput, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.

  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – This field indicates the deployment name for the model.

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 Language API.

  • show_stats (bool) – If set to true, response will contain document level statistics.

  • 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • 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.

  • display_name (str) – An optional display name to set for the requested analysis.

Returns

An instance of an TextAnalysisLROPoller. Call result() on the this object to return a heterogeneous pageable of ClassifyDocumentResult and DocumentError.

Return type

TextAnalysisLROPoller[ItemPaged[ ClassifyDocumentResult or DocumentError]]

Raises

HttpResponseError

New in version 2022-05-01: The begin_multi_label_classify client method.

Example:

Perform multi label classification on a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]
project_name = os.environ["MULTI_LABEL_CLASSIFY_PROJECT_NAME"]
deployment_name = os.environ["MULTI_LABEL_CLASSIFY_DEPLOYMENT_NAME"]
path_to_sample_document = os.path.abspath(
    os.path.join(
        os.path.abspath(__file__),
        "..",
        "./text_samples/custom_classify_sample.txt",
    )
)

text_analytics_client = TextAnalyticsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

with open(path_to_sample_document) as fd:
    document = [fd.read()]

poller = text_analytics_client.begin_multi_label_classify(
    document,
    project_name=project_name,
    deployment_name=deployment_name
)

document_results = poller.result()
for doc, classification_result in zip(document, document_results):
    if classification_result.kind == "CustomDocumentClassification":
        classifications = classification_result.classifications
        print(f"\nThe movie plot '{doc}' was classified as the following genres:\n")
        for classification in classifications:
            print("'{}' with confidence score {}.".format(
                classification.category, classification.confidence_score
            ))
    elif classification_result.is_error is True:
        print("Movie plot '{}' has an error with code '{}' and message '{}'".format(
            doc, classification_result.error.code, classification_result.error.message
        ))
begin_recognize_custom_entities(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], project_name: str, deployment_name: str, *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[Union[azure.ai.textanalytics._models.RecognizeCustomEntitiesResult, azure.ai.textanalytics._models.DocumentError]]][source]

Start a long-running custom named entity recognition operation.

For information on regional support of custom features and how to train a model to recognize custom entities, see https://aka.ms/azsdk/textanalytics/customentityrecognition

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 of TextDocumentInput, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.

  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – This field indicates the deployment name for the model.

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 Language API.

  • show_stats (bool) – If set to true, response will contain document level statistics.

  • 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • 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 Utf16CodeUnit 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.

  • display_name (str) – An optional display name to set for the requested analysis.

Returns

An instance of an TextAnalysisLROPoller. Call result() on the this object to return a heterogeneous pageable of RecognizeCustomEntitiesResult and DocumentError.

Return type

TextAnalysisLROPoller[ItemPaged[ RecognizeCustomEntitiesResult or DocumentError]]

Raises

HttpResponseError

New in version 2022-05-01: The begin_recognize_custom_entities client method.

Example:

Recognize custom entities in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]
project_name = os.environ["CUSTOM_ENTITIES_PROJECT_NAME"]
deployment_name = os.environ["CUSTOM_ENTITIES_DEPLOYMENT_NAME"]
path_to_sample_document = os.path.abspath(
    os.path.join(
        os.path.abspath(__file__),
        "..",
        "./text_samples/custom_entities_sample.txt",
    )
)

text_analytics_client = TextAnalyticsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

with open(path_to_sample_document) as fd:
    document = [fd.read()]

poller = text_analytics_client.begin_recognize_custom_entities(
    document,
    project_name=project_name,
    deployment_name=deployment_name
)

document_results = poller.result()
for custom_entities_result in document_results:
    if custom_entities_result.kind == "CustomEntityRecognition":
        for entity in custom_entities_result.entities:
            print(
                "Entity '{}' has category '{}' with confidence score of '{}'".format(
                    entity.text, entity.category, entity.confidence_score
                )
            )
    elif custom_entities_result.is_error is True:
        print("...Is an error with code '{}' and message '{}'".format(
            custom_entities_result.error.code, custom_entities_result.error.message
            )
        )
begin_single_label_classify(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], project_name: str, deployment_name: str, *, continuation_token: Optional[str] = None, disable_service_logs: Optional[bool] = None, display_name: Optional[str] = None, language: Optional[str] = None, polling_interval: Optional[int] = None, show_stats: Optional[bool] = None, **kwargs: Any)azure.ai.textanalytics._lro.TextAnalysisLROPoller[azure.core.paging.ItemPaged[Union[azure.ai.textanalytics._models.ClassifyDocumentResult, azure.ai.textanalytics._models.DocumentError]]][source]

Start a long-running custom single label classification operation.

For information on regional support of custom features and how to train a model to classify your documents, see 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 of TextDocumentInput, like {“id”: “1”, “language”: “en”, “text”: “hello world”}.

  • project_name (str) – Required. This field indicates the project name for the model.

  • deployment_name (str) – This field indicates the deployment name for the model.

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 Language API.

  • show_stats (bool) – If set to true, response will contain document level statistics.

  • 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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.

  • 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.

  • display_name (str) – An optional display name to set for the requested analysis.

Returns

An instance of an TextAnalysisLROPoller. Call result() on the this object to return a heterogeneous pageable of ClassifyDocumentResult and DocumentError.

Return type

TextAnalysisLROPoller[ItemPaged[ ClassifyDocumentResult or DocumentError]]

Raises

HttpResponseError

New in version 2022-05-01: The begin_single_label_classify client method.

Example:

Perform single label classification on a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_KEY"]
project_name = os.environ["SINGLE_LABEL_CLASSIFY_PROJECT_NAME"]
deployment_name = os.environ["SINGLE_LABEL_CLASSIFY_DEPLOYMENT_NAME"]
path_to_sample_document = os.path.abspath(
    os.path.join(
        os.path.abspath(__file__),
        "..",
        "./text_samples/custom_classify_sample.txt",
    )
)

text_analytics_client = TextAnalyticsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(key),
)

with open(path_to_sample_document) as fd:
    document = [fd.read()]

poller = text_analytics_client.begin_single_label_classify(
    document,
    project_name=project_name,
    deployment_name=deployment_name
)

document_results = poller.result()
for doc, classification_result in zip(document, document_results):
    if classification_result.kind == "CustomDocumentClassification":
        classification = classification_result.classifications[0]
        print("The document text '{}' was classified as '{}' with confidence score {}.".format(
            doc, classification.category, classification.confidence_score)
        )
    elif classification_result.is_error is True:
        print("Document text '{}' has an error with code '{}' and message '{}'".format(
            doc, classification_result.error.code, classification_result.error.message
        ))
close()None

Close sockets opened by the client. Calling this method is unnecessary when using the client as a context manager.

detect_language(documents: Union[List[str], List[azure.ai.textanalytics._models.DetectLanguageInput], List[Dict[str, str]]], *, country_hint: Optional[str] = None, disable_service_logs: Optional[bool] = None, model_version: Optional[str] = None, show_stats: Optional[bool] = None, **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://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of DetectLanguageInput, 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) – The model version to use for the analysis, e.g. “latest”. 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[DetectLanguageResult or DocumentError]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The disable_service_logs keyword argument.

Example:

Detecting language in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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!
    """,
    """
    最近由于工作压力太大,我们决定去富酒店度假。那儿的温泉实在太舒服了,我跟我丈夫都完全恢复了工作前的青春精神!加油!
    """
]

result = 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
    ))
extract_key_phrases(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, disable_service_logs: Optional[bool] = None, language: Optional[str] = None, model_version: Optional[str] = None, show_stats: Optional[bool] = None, **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://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of TextDocumentInput, 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 Language API.

  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[ExtractKeyPhrasesResult or DocumentError]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The disable_service_logs keyword argument.

Example:

Extract the key phrases in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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 chock-full of forests, 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...
    """
]

result = 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)
        ))
recognize_entities(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, disable_service_logs: Optional[bool] = None, language: Optional[str] = None, model_version: Optional[str] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **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://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of TextDocumentInput, 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 Language API.

  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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 Utf16CodeUnit 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[RecognizeEntitiesResult or DocumentError]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The disable_service_logs and string_index_type keyword arguments.

Example:

Recognize entities in a batch of documents.
import os
import typing
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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!!!!"""
]

result = text_analytics_client.recognize_entities(reviews)
result = [review for review in result if not review.is_error]
organization_to_reviews: typing.Dict[str, typing.List[str]] = {}

for idx, review in enumerate(result):
    for entity in review.entities:
        print(f"Entity '{entity.text}' has category '{entity.category}'")
        if entity.category == 'Organization':
            organization_to_reviews.setdefault(entity.text, [])
            organization_to_reviews[entity.text].append(reviews[idx])

for organization, reviews in organization_to_reviews.items():
    print(
        "\n\nOrganization '{}' has left us the following review(s): {}".format(
            organization, "\n\n".join(reviews)
        )
    )
recognize_linked_entities(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, disable_service_logs: Optional[bool] = None, language: Optional[str] = None, model_version: Optional[str] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **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://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of TextDocumentInput, 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 Language API.

  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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 Utf16CodeUnit 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, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[RecognizeLinkedEntitiesResult or DocumentError]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The disable_service_logs and string_index_type keyword arguments.

Example:

Recognize linked entities in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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, Washington in January 1979, but is now
    headquartered in Redmond.
    """
]

result = 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
recognize_pii_entities(documents: Union[List[str], List[azure.ai.textanalytics._models.TextDocumentInput], List[Dict[str, str]]], *, categories_filter: Optional[List[Union[str, azure.ai.textanalytics._generated.v2023_04_01.models._text_analytics_client_enums.PiiEntityCategory]]] = None, disable_service_logs: Optional[bool] = None, domain_filter: Optional[Union[str, azure.ai.textanalytics._models.PiiEntityDomain]] = None, language: Optional[str] = None, model_version: Optional[str] = None, show_stats: Optional[bool] = None, string_index_type: Optional[str] = None, **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/azsdk/language/pii

See https://aka.ms/azsdk/textanalytics/data-limits for service data limits.

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 of TextDocumentInput, 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 Language API.

  • model_version (str) – The model version to use for the analysis, e.g. “latest”. 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/azsdk/language/pii for more information.

  • categories_filter (list[str or 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 Utf16CodeUnit or TextElement_v8. For additional information see https://aka.ms/text-analytics-offsets

  • disable_service_logs (bool) – Defaults to true, meaning that the Language service will not log your input text on the service side for troubleshooting. If set to False, the Language service logs your input text for 48 hours, solely to allow for troubleshooting issues in providing you with the service’s 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 and DocumentError in the order the original documents were passed in.

Return type

list[RecognizePiiEntitiesResult or DocumentError]

Raises

HttpResponseError or TypeError or ValueError

New in version v3.1: The recognize_pii_entities client method.

Example:

Recognize personally identifiable information entities in a batch of documents.
import os
from azure.core.credentials import AzureKeyCredential
from azure.ai.textanalytics import TextAnalyticsClient

endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
key = os.environ["AZURE_LANGUAGE_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(f"Document text: {documents[idx]}")
    print(f"Redacted document text: {doc.redacted_text}")
    for entity in doc.entities:
        print("...Entity '{}' with category '{}' got redacted".format(
            entity.text, entity.category
        ))

class azure.ai.textanalytics.TextAnalyticsError(**kwargs: Any)[source]

TextAnalyticsError contains the error code, message, and other details that explain why the batch or individual document failed to be processed by the service.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
code: str

Error code. Possible values include ‘invalidRequest’, ‘invalidArgument’, ‘internalServerError’, ‘serviceUnavailable’, ‘invalidParameterValue’, ‘invalidRequestBodyFormat’, ‘emptyRequest’, ‘missingInputRecords’, ‘invalidDocument’, ‘modelVersionIncorrect’, ‘invalidDocumentBatch’, ‘unsupportedLanguageCode’, ‘invalidCountryHint’

message: str

Error message.

target: Optional[str] = None

Error target.

class azure.ai.textanalytics.TextAnalyticsWarning(**kwargs: Any)[source]

TextAnalyticsWarning contains the warning code and message that explains why the response has a warning.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
code: str

Warning code. Possible values include ‘LongWordsInDocument’, ‘DocumentTruncated’.

message: str

Warning message.

class azure.ai.textanalytics.TextDocumentBatchStatistics(**kwargs: Any)[source]

TextDocumentBatchStatistics contains information about the request payload. Note: This object is not returned in the response and needs to be retrieved by a response hook.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
document_count: int

Number of documents submitted in the request

erroneous_document_count: int

Number of invalid documents. This includes empty, over-size limit or non-supported languages documents.

transaction_count: int

Number of transactions for the request.

valid_document_count: int

Number of valid documents. This excludes empty, over-size limit or non-supported languages documents.

class azure.ai.textanalytics.TextDocumentInput(*, id: str, text: str, language: Optional[str] = None, **kwargs: Any)[source]

The input document to be analyzed by the service.

Keyword Arguments
  • id (str) – Required. Unique, non-empty document identifier.

  • text (str) – Required. The input text to process.

  • language (str) – This is the 2 letter ISO 639-1 representation of a language. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

Return a dict that can be JSONify using json.dump.

Advanced usage might optionally use a callback as parameter:

Key is the attribute name used in Python. Attr_desc is a dict of metadata. Currently contains ‘type’ with the msrest type and ‘key’ with the RestAPI encoded key. Value is the current value in this object.

The string returned will be used to serialize the key. If the return type is a list, this is considered hierarchical result dict.

See the three examples in this file:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

If you want XML serialization, you can pass the kwargs is_xml=True.

Parameters

key_transformer (function) – A key transformer function.

Returns

A dict JSON compatible object

Return type

dict

classmethod deserialize(data, content_type=None)

Parse a str using the RestAPI syntax and return a model.

Parameters
  • data (str) – A str using RestAPI structure. JSON by default.

  • content_type (str) – JSON by default, set application/xml if XML.

Returns

An instance of this model

Raises

DeserializationError if something went wrong

classmethod enable_additional_properties_sending()
classmethod from_dict(data, key_extractors=None, content_type=None)

Parse a dict using given key extractor return a model.

By default consider key extractors (rest_key_case_insensitive_extractor, attribute_key_case_insensitive_extractor and last_rest_key_case_insensitive_extractor)

Parameters
  • data (dict) – A dict using RestAPI structure

  • content_type (str) – JSON by default, set application/xml if XML.

Returns

An instance of this model

Raises

DeserializationError if something went wrong

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
classmethod is_xml_model()
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
serialize(keep_readonly=False, **kwargs)

Return the JSON that would be sent to azure from this model.

This is an alias to as_dict(full_restapi_key_transformer, keep_readonly=False).

If you want XML serialization, you can pass the kwargs is_xml=True.

Parameters

keep_readonly (bool) – If you want to serialize the readonly attributes

Returns

A dict JSON compatible object

Return type

dict

update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
id: str

Required. Unique, non-empty document identifier.

language: Optional[str] = None

This is the 2 letter ISO 639-1 representation of a language. For example, use “en” for English; “es” for Spanish etc. If not set, uses “en” for English as default.

text: str

Required. The input text to process.

class azure.ai.textanalytics.TextDocumentStatistics(**kwargs: Any)[source]

TextDocumentStatistics contains information about the document payload.

get(key: str, default: Optional[Any] = None)Any
has_key(k: str)bool
items()Iterable[Tuple[str, Any]]
keys()Iterable[str]
update(*args: Any, **kwargs: Any)None
values()Iterable[Any]
character_count: int

Number of text elements recognized in the document.

transaction_count: int

Number of transactions for the document.