TextAnalyticsClient Класс

API языковой службы — это набор навыков обработки естественного языка (NLP), созданных с помощью лучших в своем классе алгоритмов машинного обучения Майкрософт. API можно использовать для анализа неструктурированного текста для таких задач, как анализ тональности, извлечение ключевых фраз, распознавание сущностей, определение языка и многое другое.

Дополнительную документацию можно найти в разделе https://docs.microsoft.com/azure/cognitive-services/language-service/overview

Наследование
azure.ai.textanalytics.aio._base_client_async.AsyncTextAnalyticsClientBase
TextAnalyticsClient

Конструктор

TextAnalyticsClient(endpoint: str, credential: AzureKeyCredential | AsyncTokenCredential, *, default_language: str | None = None, default_country_hint: str | None = None, api_version: str | TextAnalyticsApiVersion | None = None, **kwargs: Any)

Параметры

endpoint
str
Обязательно

Поддерживаемые конечные точки ресурсов Cognitive Services или language (протокол и имя узла, например https://.cognitiveservices.azure.com).

credential
AzureKeyCredential или AsyncTokenCredential
Обязательно

Учетные данные, необходимые клиенту для подключения к Azure. Это может быть экземпляр AzureKeyCredential, если используется ключ Cognitive Services/ЯЗЫКОВОЙ API или учетные данные маркера из identity.

default_country_hint
str

Задает country_hint по умолчанию для всех операций. По умолчанию — "US". Если вы не хотите использовать указание страны, передайте строку "none".

default_language
str

Задает язык по умолчанию, используемый для всех операций. По умолчанию — "en".

api_version
str или TextAnalyticsApiVersion

Версия API службы, используемая для запросов. По умолчанию используется последняя версия службы. Установка более старой версии может привести к снижению совместимости функций.

Примеры

Создание TextAnalyticsClient с конечной точкой и ключом API.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio import TextAnalyticsClient
   endpoint = os.environ["AZURE_LANGUAGE_ENDPOINT"]
   key = os.environ["AZURE_LANGUAGE_KEY"]

   text_analytics_client = TextAnalyticsClient(endpoint, AzureKeyCredential(key))

Создание TextAnalyticsClient с учетными данными конечной точки и маркера из Azure Active Directory.


   import os
   from azure.ai.textanalytics.aio import TextAnalyticsClient
   from azure.identity.aio import DefaultAzureCredential

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

   text_analytics_client = TextAnalyticsClient(endpoint, credential=credential)

Методы

analyze_sentiment

Анализ тональности для пакета документов. Включите интеллектуальный анализ мнений с помощью show_opinion_mining.

Возвращает прогноз тональности, а также оценки тональности для каждого класса тональности (положительный, отрицательный и нейтральный) для документа и каждого предложения в нем.

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1: аргументы show_opinion_mining, disable_service_logs и string_index_type ключевое слово.

begin_abstract_summary

Запустите длительную операцию абстрактного формирования сводных данных.

Концептуальное описание абстрактного формирования сводных данных см. в документации по службе: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Новое в версии 2023-04-01: метод begin_abstract_summary клиента.

begin_analyze_actions

Запуск длительной операции для выполнения различных действий по анализу текста с пакетом документов.

Мы рекомендуем использовать эту функцию, если вы хотите проанализировать документы большего размера и /или объединить несколько действий анализа текста в один вызов. В противном случае рекомендуется использовать конечные точки, относящиеся к действию, например analyze_sentiment.

Примечание

См. документацию по службам для региональной поддержки функций пользовательских действий:

https://aka.ms/azsdk/textanalytics/customfunctionalities

Новые возможности в версии 3.1: begin_analyze_actions метод клиента.

Новые возможности в версии 2022-05-01: входные параметры RecognizeCustomEntitiesAction, SingleLabelClassifyAction, MultiLabelClassifyAction и AnalyzeHealthcareEntitiesAction и соответствующие объекты результатов RecognizeCustomEntitiesResult, ClassifyDocumentResult и AnalyzeHealthcareEntitiesResult

Новые возможности в версии 2023-04-01: входные параметры ExtractiveSummaryAction и AbstractiveSummaryAction и соответствующие результивные объекты ExtractiveSummaryResult и AbstractiveSummaryResult .

begin_analyze_healthcare_entities

Анализ сущностей здравоохранения и выявление связей между ними в пакете документов.

Сущности связаны со ссылками, которые можно найти в существующих базах знаний, таких как UMLS, CHV, MSH и т. д.

Мы также извлекаем связи, найденные между сущностями, например в разделе "Субъект принял 100 мг ибупрофена", мы извлекаем связь между дозой "100 мг" и препаратом "ибупрофен".

Новые возможности в версии 3.1: метод begin_analyze_healthcare_entities клиента.

Новое в версии 2022-05-01: аргумент display_name ключевое слово.

begin_extract_summary

Запустите длительную операцию формирования сводных данных по извлечению.

Концептуальное описание сводных данных по извлечению см. в документации по службе: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Новое в версии 2023-04-01: метод begin_extract_summary клиента.

begin_multi_label_classify

Запустите длительную пользовательскую операцию классификации с несколькими метками.

Сведения о региональной поддержке пользовательских функций и обучении модели для классификации документов см. в разделе https://aka.ms/azsdk/textanalytics/customfunctionalities

Новое в версии 2022-05-01: метод begin_multi_label_classify клиента.

begin_recognize_custom_entities

Запустите долго выполняющуюся пользовательскую операцию распознавания именованных сущностей.

Сведения о региональной поддержке пользовательских функций и обучить модель распознавать пользовательские сущности см. в разделе https://aka.ms/azsdk/textanalytics/customentityrecognition

Новые возможности в версии 2022-05-01: метод клиента begin_recognize_custom_entities .

begin_single_label_classify

Запустите длительную пользовательскую операцию классификации с одной меткой.

Сведения о региональной поддержке пользовательских функций и обучении модели для классификации документов см. в разделе https://aka.ms/azsdk/textanalytics/customfunctionalities

Новое в версии 2022-05-01: метод begin_single_label_classify клиента.

close

Закройте сокеты, открытые клиентом. Вызов этого метода не требуется при использовании клиента в качестве диспетчера контекста.

detect_language

Определение языка для пакета документов.

Возвращает обнаруженный язык и числовую оценку в диапазоне от нуля до единицы. Оценки, близкие к единице, указывают на 100 % уверенность в том, что указанный язык является истинным. Список включенных языков см. в этой статье https://aka.ms/talangs .

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новое в версии 3.1: аргумент disable_service_logs ключевое слово.

extract_key_phrases

Извлечение ключевых фраз из пакета документов.

Возвращает список строк, обозначающих ключевые фразы во входном тексте. Например, для входного текста "Еда была вкусной и были замечательные сотрудники", API возвращает main тезисов: "еда" и "замечательный персонал".

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новое в версии 3.1: аргумент disable_service_logs ключевое слово.

recognize_entities

Распознавание сущностей для пакета документов.

Определяет и классифицирует сущности в тексте как люди, места, организации, дата и время, количество, проценты, валюты и многое другое. Список поддерживаемых типов сущностей проверка:https://aka.ms/taner

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1. Аргументы disable_service_logs и string_index_type ключевое слово.

recognize_linked_entities

Распознавание связанных сущностей из хорошо известного база знаний для пакета документов.

Определяет и удостоверяет личность каждой сущности, найденной в тексте (например, определяет, относится ли слово Марс к планете или к римскому богу войны). Распознанные сущности связаны с URL-адресами известного база знаний, например Википедии.

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1. Аргументы disable_service_logs и string_index_type ключевое слово.

recognize_pii_entities

Распознавание сущностей, содержащих персональные данные для пакета документов.

Возвращает список сущностей личной информации ("SSN", "Банковский счет" и т. д.) в документе. Список поддерживаемых типов сущностей проверка https://aka.ms/azsdk/language/pii

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1: метод recognize_pii_entities клиента.

analyze_sentiment

Анализ тональности для пакета документов. Включите интеллектуальный анализ мнений с помощью show_opinion_mining.

Возвращает прогноз тональности, а также оценки тональности для каждого класса тональности (положительный, отрицательный и нейтральный) для документа и каждого предложения в нем.

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1: аргументы show_opinion_mining, disable_service_logs и string_index_type ключевое слово.

async analyze_sentiment(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, disable_service_logs: bool | None = None, language: str | None = None, model_version: str | None = None, show_opinion_mining: bool | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> List[AnalyzeSentimentResult | DocumentError]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

show_opinion_mining
bool

Следует ли добывать мнения о предложении и проводить более детализированный анализ аспектов продукта или услуги (также известный как анализ тональности на основе аспектов). Если задано значение true, возвращаемые SentenceSentiment объекты будут иметь свойство mined_opinions , содержащие результат этого анализа. Доступно только для API версии 3.1 и более поздних версий.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. По умолчанию используется кодировка Python в Юникоде. Чтобы переопределить python по умолчанию, можно также передать Utf16CodeUnit или TextElement_v8. Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный AnalyzeSentimentResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Анализ тональности в пакете документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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!"""
   ]

   async with text_analytics_client:
       result = await text_analytics_client.analyze_sentiment(documents)

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

   print("Let's visualize the sentiment of each of these documents")
   for idx, doc in enumerate(docs):
       print(f"Document text: {documents[idx]}")
       print(f"Overall sentiment: {doc.sentiment}")

begin_abstract_summary

Запустите длительную операцию абстрактного формирования сводных данных.

Концептуальное описание абстрактного формирования сводных данных см. в документации по службе: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Новое в версии 2023-04-01: метод begin_abstract_summary клиента.

async begin_abstract_summary(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, model_version: str | None = None, string_index_type: str | None = None, sentence_count: int | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[AbstractiveSummaryResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

sentence_count
Optional[int]

Он управляет приблизительным количеством предложений в выходных сводках.

model_version
Optional[str]

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

string_index_type
Optional[str]

Задает метод, используемый для интерпретации смещений строк.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() для этого объекта, чтобы вернуть разнородный страничный файл для AbstractiveSummaryResult и DocumentError.

Возвращаемый тип

<xref:azure.ai.textanalytics.AsyncTextAnalysisLROPoller>[AsyncItemPaged[ AbstractiveSummaryResult,

Исключения

Примеры

Выполнение абстрактного формирования сводных данных по пакету документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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."
   ]
   async with text_analytics_client:
       poller = await text_analytics_client.begin_abstract_summary(document)
       abstract_summary_results = await poller.result()
       async 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

Запуск длительной операции для выполнения различных действий по анализу текста с пакетом документов.

Мы рекомендуем использовать эту функцию, если вы хотите проанализировать документы большего размера и /или объединить несколько действий анализа текста в один вызов. В противном случае рекомендуется использовать конечные точки, относящиеся к действию, например analyze_sentiment.

Примечание

См. документацию по службам для региональной поддержки функций пользовательских действий:

https://aka.ms/azsdk/textanalytics/customfunctionalities

Новые возможности в версии 3.1: begin_analyze_actions метод клиента.

Новые возможности в версии 2022-05-01: входные параметры RecognizeCustomEntitiesAction, SingleLabelClassifyAction, MultiLabelClassifyAction и AnalyzeHealthcareEntitiesAction и соответствующие объекты результатов RecognizeCustomEntitiesResult, ClassifyDocumentResult и AnalyzeHealthcareEntitiesResult

Новые возможности в версии 2023-04-01: входные параметры ExtractiveSummaryAction и AbstractiveSummaryAction и соответствующие результивные объекты ExtractiveSummaryResult и AbstractiveSummaryResult .

async begin_analyze_actions(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], actions: List[RecognizeEntitiesAction | RecognizeLinkedEntitiesAction | RecognizePiiEntitiesAction | ExtractKeyPhrasesAction | AnalyzeSentimentAction | RecognizeCustomEntitiesAction | SingleLabelClassifyAction | MultiLabelClassifyAction | AnalyzeHealthcareEntitiesAction | ExtractiveSummaryAction | AbstractiveSummaryAction], *, continuation_token: str | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[List[RecognizeEntitiesResult | RecognizeLinkedEntitiesResult | RecognizePiiEntitiesResult | ExtractKeyPhrasesResult | AnalyzeSentimentResult | RecognizeCustomEntitiesResult | ClassifyDocumentResult | AnalyzeHealthcareEntitiesResult | ExtractiveSummaryResult | AbstractiveSummaryResult | DocumentError]]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

actions
list[RecognizeEntitiesAction или RecognizePiiEntitiesAction или ExtractKeyPhrasesAction или RecognizeLinkedEntitiesAction или AnalyzeSentimentAction или RecognizeCustomEntitiesAction или SingleLabelClassifyAction или MultiLabelClassifyAction или AnalyzeHealthcareEntitiesAction или AbstractiveSummaryAction или ExtractiveSummaryAction]
Обязательно

Разнородный список действий, выполняемых с входными документами. Каждый объект действия инкапсулирует параметры, используемые для конкретного типа действия. Результаты действия будут в том же порядке, что и входные действия.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() в объекте опроса, чтобы вернуть разнородный список списков, доступный для страниц. Этот список списков сначала упорядочен по введенным документам, а затем по введенным действиям. Например, если у вас есть входные документы ["Hello", "world"], а также действия RecognizeEntitiesAction и AnalyzeSentimentAction, при переборе списка списков вы сначала выполните итерацию по результатам действия для документа "Hello", получив RecognizeEntitiesResult значение "Hello", а затем AnalyzeSentimentResult значение "Hello". Затем вы получите RecognizeEntitiesResult и AnalyzeSentimentResult из "world".

Возвращаемый тип

Исключения

Примеры

Запуск длительной операции для выполнения различных действий по анализу текста с пакетом документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio import TextAnalyticsClient
   from azure.ai.textanalytics import (
       RecognizeEntitiesAction,
       RecognizeLinkedEntitiesAction,
       RecognizePiiEntitiesAction,
       ExtractKeyPhrasesAction,
       AnalyzeSentimentAction,
   )

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

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

       pages = await poller.result()

       # To enumerate / zip for async, unless you install a third party library,
       # you have to read in all of the elements into memory first.
       # If you're not looking to enumerate / zip, we recommend you just asynchronously
       # loop over it immediately, without going through this step of reading them into memory
       document_results = []
       async for page in pages:
           document_results.append(page)

   for doc, action_results in zip(documents, document_results):
       print(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

Анализ сущностей здравоохранения и выявление связей между ними в пакете документов.

Сущности связаны со ссылками, которые можно найти в существующих базах знаний, таких как UMLS, CHV, MSH и т. д.

Мы также извлекаем связи, найденные между сущностями, например в разделе "Субъект принял 100 мг ибупрофена", мы извлекаем связь между дозой "100 мг" и препаратом "ибупрофен".

Новые возможности в версии 3.1: метод begin_analyze_healthcare_entities клиента.

Новое в версии 2022-05-01: аргумент display_name ключевое слово.

async begin_analyze_healthcare_entities(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, model_version: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> AsyncAnalyzeHealthcareEntitiesLROPoller[AsyncItemPaged[AnalyzeHealthcareEntitiesResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. Может иметь значение "UnicodePoint" (по умолчанию), "Utf16CodeUnit" или "TextElement_v8". Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

disable_service_logs
bool

По умолчанию имеет значение true, то есть языковая служба не будет регистрировать входной текст на стороне службы для устранения неполадок. Если задано значение False, языковая служба регистрирует входной текст в течение 48 часов исключительно для устранения неполадок при предоставлении Анализ текста функций обработки естественного языка. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Экземпляр AsyncAnalyzeHealthcareEntitiesLROPoller. Вызовите result() в объекте опроса, чтобы вернуть разнородный страничный файл AnalyzeHealthcareEntitiesResult и DocumentError.

Возвращаемый тип

Исключения

Примеры

Анализ сущностей здравоохранения в пакете документов.


   import os
   import typing
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics import HealthcareEntityRelation
   from azure.ai.textanalytics.aio import TextAnalyticsClient

   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.
       """
   ]

   async with text_analytics_client:
       poller = await text_analytics_client.begin_analyze_healthcare_entities(documents)
       result = await poller.result()
       docs = [doc async for doc in result if not doc.is_error]

   print("Let's first visualize the outputted healthcare result:")
   for 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

Запустите длительную операцию формирования сводных данных по извлечению.

Концептуальное описание сводных данных по извлечению см. в документации по службе: https://learn.microsoft.com/azure/cognitive-services/language-service/summarization/overview

Новое в версии 2023-04-01: метод begin_extract_summary клиента.

async begin_extract_summary(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, model_version: str | None = None, string_index_type: str | None = None, max_sentence_count: int | None = None, order_by: Literal['Rank', 'Offset'] | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[ExtractiveSummaryResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

max_sentence_count
Optional[int]

Максимальное количество возвращаемых предложений. Значение по умолчанию — 3.

order_by
Optional[str]

Возможные значения: "Offset", "Rank". Значение по умолчанию: "Offset".

model_version
Optional[str]

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

string_index_type
Optional[str]

Задает метод, используемый для интерпретации смещений строк.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() для этого объекта, чтобы вернуть разнородный страничный файл для ExtractiveSummaryResult и DocumentError.

Возвращаемый тип

<xref:azure.ai.textanalytics.AsyncTextAnalysisLROPoller>[AsyncItemPaged[ ExtractiveSummaryResult,

Исключения

Примеры

Выполните извлечение сводных данных по пакету документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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."
   ]

   async with text_analytics_client:
       poller = await text_analytics_client.begin_extract_summary(document)
       extract_summary_results = await poller.result()
       async 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

Запустите длительную пользовательскую операцию классификации с несколькими метками.

Сведения о региональной поддержке пользовательских функций и обучении модели для классификации документов см. в разделе https://aka.ms/azsdk/textanalytics/customfunctionalities

Новое в версии 2022-05-01: метод begin_multi_label_classify клиента.

async begin_multi_label_classify(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], project_name: str, deployment_name: str, *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[ClassifyDocumentResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

project_name
str
Обязательно

Обязательный. В этом поле указывается имя проекта для модели.

deployment_name
str
Обязательно

Это поле указывает имя развертывания для модели.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() для этого объекта, чтобы вернуть разнородный страничный файл для ClassifyDocumentResult и DocumentError.

Возвращаемый тип

Исключения

Примеры

Выполнять классификацию с несколькими метками для пакета документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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",
       )
   )

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

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

   async with text_analytics_client:
       poller = await text_analytics_client.begin_multi_label_classify(
           document,
           project_name=project_name,
           deployment_name=deployment_name
       )

       pages = await poller.result()
       document_results = []
       async for page in pages:
           document_results.append(page)

   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

Запустите долго выполняющуюся пользовательскую операцию распознавания именованных сущностей.

Сведения о региональной поддержке пользовательских функций и обучить модель распознавать пользовательские сущности см. в разделе https://aka.ms/azsdk/textanalytics/customentityrecognition

Новые возможности в версии 2022-05-01: метод клиента begin_recognize_custom_entities .

async begin_recognize_custom_entities(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], project_name: str, deployment_name: str, *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[RecognizeCustomEntitiesResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

project_name
str
Обязательно

Обязательный. В этом поле указывается имя проекта для модели.

deployment_name
str
Обязательно

Это поле указывает имя развертывания для модели.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. По умолчанию используется кодировка Python в Юникоде. Чтобы переопределить python по умолчанию, можно также передать Utf16CodeUnit или TextElement_v8. Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() для этого объекта, чтобы вернуть разнородный страничный файл для RecognizeCustomEntitiesResult и DocumentError.

Возвращаемый тип

Исключения

Примеры

Распознавание пользовательских сущностей в пакете документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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()]

   async with text_analytics_client:
       poller = await text_analytics_client.begin_recognize_custom_entities(
           document,
           project_name=project_name,
           deployment_name=deployment_name
       )

       document_results = await poller.result()

       async 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

Запустите длительную пользовательскую операцию классификации с одной меткой.

Сведения о региональной поддержке пользовательских функций и обучении модели для классификации документов см. в разделе https://aka.ms/azsdk/textanalytics/customfunctionalities

Новое в версии 2022-05-01: метод begin_single_label_classify клиента.

async begin_single_label_classify(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], project_name: str, deployment_name: str, *, continuation_token: str | None = None, disable_service_logs: bool | None = None, display_name: str | None = None, language: str | None = None, polling_interval: int | None = None, show_stats: bool | None = None, **kwargs: Any) -> AsyncTextAnalysisLROPoller[AsyncItemPaged[ClassifyDocumentResult | DocumentError]]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

project_name
str
Обязательно

Обязательный. В этом поле указывается имя проекта для модели.

deployment_name
str
Обязательно

Это поле указывает имя развертывания для модели.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

polling_interval
int

Время ожидания между двумя опросами для операций LRO, если нет Retry-After заголовка. Значение по умолчанию — 5 секунд.

continuation_token
str

Вызовите continuation_token() в объекте опроса, чтобы сохранить состояние длительной операции (LRO) в непрозрачный маркер. Передайте значение в качестве аргумента continuation_token ключевое слово, чтобы перезапустить LRO из сохраненного состояния.

display_name
str

Необязательное отображаемое имя, задается для запрошенного анализа.

Возвращаемое значение

Экземпляр AsyncTextAnalysisLROPoller. Вызовите метод result() для этого объекта, чтобы вернуть разнородный страничный файл для ClassifyDocumentResult и DocumentError.

Возвращаемый тип

Исключения

Примеры

Выполните классификацию одной метки для пакета документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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()]

   async with text_analytics_client:
       poller = await text_analytics_client.begin_single_label_classify(
           document,
           project_name=project_name,
           deployment_name=deployment_name
       )

       pages = await poller.result()

       document_results = []
       async for page in pages:
           document_results.append(page)

   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

Закройте сокеты, открытые клиентом. Вызов этого метода не требуется при использовании клиента в качестве диспетчера контекста.

async close() -> None

Исключения

detect_language

Определение языка для пакета документов.

Возвращает обнаруженный язык и числовую оценку в диапазоне от нуля до единицы. Оценки, близкие к единице, указывают на 100 % уверенность в том, что указанный язык является истинным. Список включенных языков см. в этой статье https://aka.ms/talangs .

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новое в версии 3.1: аргумент disable_service_logs ключевое слово.

async detect_language(documents: List[str] | List[DetectLanguageInput] | List[Dict[str, str]], *, country_hint: str | None = None, disable_service_logs: bool | None = None, model_version: str | None = None, show_stats: bool | None = None, **kwargs: Any) -> List[DetectLanguageResult | DocumentError]

Параметры

documents
list[str] или list[DetectLanguageInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и country_hint для каждого элемента, необходимо использовать в качестве входных данных список[DetectLanguageInput] или список представлений диктовки DetectLanguageInput, например {"id": "1", "country_hint": "us", "text": "hello world"}.

country_hint
str

Указание страны происхождения для всего пакета. Принимает двухбуквенный код страны, указанный в стандарте ISO 3166-1 alpha-2. Указания страны для каждого документа будут иметь приоритет над указаниями для всего пакета. По умолчанию — "US". Если вы не хотите использовать указание страны, передайте строку "none".

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный DetectLanguageResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Определение языка в пакете документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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!
       """,
       """
       最近由于工作压力太大,我们决定去富酒店度假。那儿的温泉实在太舒服了,我跟我丈夫都完全恢复了工作前的青春精神!加油!
       """
   ]
   async with text_analytics_client:
       result = await text_analytics_client.detect_language(documents)

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

   print("Let's see what language each review is in!")

   for idx, doc in enumerate(reviewed_docs):
       print("Review #{} is in '{}', which has ISO639-1 name '{}'\n".format(
           idx, doc.primary_language.name, doc.primary_language.iso6391_name
       ))

extract_key_phrases

Извлечение ключевых фраз из пакета документов.

Возвращает список строк, обозначающих ключевые фразы во входном тексте. Например, для входного текста "Еда была вкусной и были замечательные сотрудники", API возвращает main тезисов: "еда" и "замечательный персонал".

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новое в версии 3.1: аргумент disable_service_logs ключевое слово.

async extract_key_phrases(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, disable_service_logs: bool | None = None, language: str | None = None, model_version: str | None = None, show_stats: bool | None = None, **kwargs: Any) -> List[ExtractKeyPhrasesResult | DocumentError]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный ExtractKeyPhrasesResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Извлеките ключевые фразы из пакета документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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...
       """
   ]

   async with text_analytics_client:
       result = await text_analytics_client.extract_key_phrases(articles)

   articles_that_mention_microsoft = []
   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

Распознавание сущностей для пакета документов.

Определяет и классифицирует сущности в тексте как люди, места, организации, дата и время, количество, проценты, валюты и многое другое. Список поддерживаемых типов сущностей проверка:https://aka.ms/taner

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1. Аргументы disable_service_logs и string_index_type ключевое слово.

async recognize_entities(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, disable_service_logs: bool | None = None, language: str | None = None, model_version: str | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> List[RecognizeEntitiesResult | DocumentError]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. По умолчанию используется кодировка Python в Юникоде. Чтобы переопределить python по умолчанию, можно также передать Utf16CodeUnit или TextElement_v8. Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный RecognizeEntitiesResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Распознавание сущностей в пакете документов.


   import os
   import typing
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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!!!!"""
   ]

   async with text_analytics_client:
       result = await 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

Распознавание связанных сущностей из хорошо известного база знаний для пакета документов.

Определяет и удостоверяет личность каждой сущности, найденной в тексте (например, определяет, относится ли слово Марс к планете или к римскому богу войны). Распознанные сущности связаны с URL-адресами известного база знаний, например Википедии.

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1. Аргументы disable_service_logs и string_index_type ключевое слово.

async recognize_linked_entities(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, disable_service_logs: bool | None = None, language: str | None = None, model_version: str | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> List[RecognizeLinkedEntitiesResult | DocumentError]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. По умолчанию используется кодировка Python в Юникоде. Чтобы переопределить python по умолчанию, можно также передать Utf16CodeUnit или TextElement_v8. Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

disable_service_logs
bool

Если задано значение true, вы отказываетесь от записи текстового ввода на стороне службы для устранения неполадок. По умолчанию языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок при предоставлении вам функций обработки естественного языка службы. Установка для этого параметра значения true отключает ведение журнала входных данных и может ограничить возможности устранения возникающих проблем. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный RecognizeLinkedEntitiesResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Распознавание связанных сущностей в пакете документов.


   import os
   from azure.core.credentials import AzureKeyCredential
   from azure.ai.textanalytics.aio 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.
       """
   ]

   async with text_analytics_client:
       result = await text_analytics_client.recognize_linked_entities(documents)

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

   print(
       "Let's map each entity to it's Wikipedia article. I also want to see how many times each "
       "entity is mentioned in a document\n\n"
   )
   entity_to_url = {}
   for doc in docs:
       for entity in doc.entities:
           print("Entity '{}' has been mentioned '{}' time(s)".format(
               entity.name, len(entity.matches)
           ))
           if entity.data_source == "Wikipedia":
               entity_to_url[entity.name] = entity.url

recognize_pii_entities

Распознавание сущностей, содержащих персональные данные для пакета документов.

Возвращает список сущностей личной информации ("SSN", "Банковский счет" и т. д.) в документе. Список поддерживаемых типов сущностей проверка https://aka.ms/azsdk/language/pii

См. https://aka.ms/azsdk/textanalytics/data-limits сведения об ограничениях данных службы.

Новые возможности в версии 3.1: метод recognize_pii_entities клиента.

async recognize_pii_entities(documents: List[str] | List[TextDocumentInput] | List[Dict[str, str]], *, categories_filter: List[str | PiiEntityCategory] | None = None, disable_service_logs: bool | None = None, domain_filter: str | PiiEntityDomain | None = None, language: str | None = None, model_version: str | None = None, show_stats: bool | None = None, string_index_type: str | None = None, **kwargs: Any) -> List[RecognizePiiEntitiesResult | DocumentError]

Параметры

documents
list[str] или list[TextDocumentInput] или list[dict[str, str]]
Обязательно

Набор документов, обрабатываемых в рамках этого пакета. Если вы хотите указать идентификатор и язык для каждого элемента, необходимо использовать в качестве входных данных список[TextDocumentInput] или список представлений диктовки TextDocumentInput, например {"id": "1", "language": "en", "text": "hello world"}.

language
str

2-буквное представление языка iso 639-1 для всего пакета. Например, используйте "en" для английского языка; "es" для испанского и т. д. Если значение не задано, по умолчанию используется "en" для английского языка. Язык для каждого документа будет иметь приоритет над языком для всего пакета. Сведения о поддерживаемых языках в API языка см. в этой статье https://aka.ms/talangs .

model_version
str

Версия модели, используемая для анализа, например latest. Если версия модели не указана, API по умолчанию будет использовать последнюю, не предварительную версию. Дополнительные сведения см. здесь: https://aka.ms/text-analytics-model-versioning

show_stats
bool

Если задано значение true, ответ будет содержать статистику на уровне документа в поле статистики ответа уровня документа.

domain_filter
str или PiiEntityDomain

Фильтрует сущности ответа по тем, которые включены только в указанный домен. Т. е. если задано значение "phi", будут возвращены только сущности в домене Protected Healthcare Information. Подробнее см. в разделе https://aka.ms/azsdk/language/pii.

categories_filter
list[str или PiiEntityCategory]

Вместо фильтрации по всем категориям сущностей персональных данных можно передать список конкретных категорий сущностей piI, которые вы хотите отфильтровать. Например, если вы хотите отфильтровать только номера социального страхования США в документе, вы можете передать [PiiEntityCategory.US_SOCIAL_SECURITY_NUMBER] для этого kwarg.

string_index_type
str

Задает метод, используемый для интерпретации смещений строк. По умолчанию используется кодировка Python в Юникоде. Чтобы переопределить python по умолчанию, можно также передать Utf16CodeUnit или TextElement_v8. Дополнительные сведения см. в разделе https://aka.ms/text-analytics-offsets

disable_service_logs
bool

По умолчанию имеет значение true, то есть языковая служба не будет регистрировать входной текст на стороне службы для устранения неполадок. Если задано значение False, языковая служба регистрирует входной текст в течение 48 часов, чтобы разрешить устранение неполадок, связанных с предоставлением функций обработки естественного языка службы. Дополнительные сведения см. в примечаниях к соответствию и конфиденциальности Cognitive Services по адресу https://aka.ms/cs-compliance , а также в статье Принципы ответственного использования ИИ Майкрософт по адресу https://www.microsoft.com/ai/responsible-ai.

Возвращаемое значение

Объединенный RecognizePiiEntitiesResult список и DocumentError в порядке, в который были переданы исходные документы.

Возвращаемый тип

Исключения

Примеры

Распознавание сущностей личных сведений в пакете документов.


   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
           ))