Клиентская библиотека перевода текста Azure для Python — версия 1.0.0b1
Перевод текста — это облачная функция REST API службы Переводчик, которая использует технологию нейронного машинного перевода, чтобы обеспечить быстрый и точный перевод текста из источника в целевой объект в режиме реального времени на всех поддерживаемых языках.
Используйте клиентская библиотека перевода текста для Python, чтобы:
Возвращает список языков, поддерживаемых операциями перевода, транслитерации и словаря.
Отрисовка текста на одном исходном языке в нескольких текстах на целевом языке с одним запросом.
Преобразование текста исходного языка в буквы другого скрипта.
Возвращает эквивалентные слова для исходного термина на целевом языке.
Возвращает примеры грамматической структуры и контекста для пары исходных и целевых терминов.
Исходный код | Пакет (PyPI) | Справочная документация по | API Документация по продукту | Образцы
Начало работы
Предварительные требования
- Для использования этого пакета требуется Python 3.7 или более поздней версии.
- Существующая служба Переводчика или ресурс Cognitive Services.
Установка пакета
Установите клиентную библиотеку перевода текста Azure для Python с помощью pip:
pip install azure-ai-translation-text
Создание ресурса службы Переводчика
Вы можете создать ресурс Переводчика, выполнив команду Создать ресурс Переводчика.
Аутентификация клиента
Взаимодействие со службой с помощью клиентской библиотеки начинается с создания экземпляра класса TextTranslationClient . Вам потребуется ключ API или TokenCredential
для создания экземпляра клиентского объекта. Дополнительные сведения о проверке подлинности с помощью cognitive services см. в статье Проверка подлинности запросов в службе Переводчика.
Получение ключа API
Вы можете получить endpoint
и API key
Region
из ресурса Cognitive Services или сведений о ресурсе службы Переводчик на портале Azure.
Кроме того, используйте приведенный ниже фрагмент Azure CLI , чтобы получить ключ API из ресурса службы Переводчик.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Создание с TextTranslationClient
помощью ключа API и учетных данных региона
Получив значение для ключа API и региона, создайте TranslatorCredential
. Это позволит обновить ключ API без создания нового клиента.
Используя значение конечной точки TranslatorCredential
и Region
, можно создать TextTranslationClient:
text_translator = TextTranslationClient(credential = TranslatorCredential("<apiKey>", "<apiRegion>"));
Основные понятия
TextTranslationClient
— TextTranslationClient
это основной интерфейс для разработчиков, использующих клиентную библиотеку перевода текста. Он предоставляет синхронные и асинхронные операции для доступа к определенному использованию переводчика текстов, например получение поддерживаемых языков или перевод текста.
Входные данные
Текстовый элемент (string
) — это одна единица входных данных, обрабатываемая моделями перевода в службе Переводчик. Операции с TextTranslationClient
могут принимать один текстовый элемент или коллекцию текстовых элементов.
Ограничения длины текстовых элементов, максимальный размер запросов и поддерживаемую кодировку текста см. здесь.
Примеры
В следующем разделе представлено несколько фрагментов кода с помощью созданногоclient
выше кода и рассматриваются main функций, присутствующих в этой клиентской библиотеке. Хотя в большинстве приведенных ниже фрагментов кода используются синхронные вызовы служб, помните, что пакет преобразования текста для библиотеки Python поддерживает синхронные и асинхронные API.
Получение поддерживаемых языков
Получает набор языков, поддерживаемых в настоящее время другими операциями Переводчика.
try:
response = text_translator.get_languages()
print(f"Number of supported languages for translate operation: {len(response.translation) if response.translation is not None else 0}")
print(f"Number of supported languages for transliterate operation: {len(response.transliteration) if response.transliteration is not None else 0}")
print(f"Number of supported languages for dictionary operations: {len(response.dictionary) if response.dictionary is not None else 0}")
if response.translation is not None:
print("Translation Languages:")
for key, value in response.translation.items():
print(f"{key} -- name: {value.name} ({value.native_name})")
if response.transliteration is not None:
print("Transliteration Languages:")
for key, value in response.transliteration.items():
print(f"{key} -- name: {value.name}, supported script count: {len(value.scripts)}")
if response.dictionary is not None:
print("Dictionary Languages:")
for key, value in response.dictionary.items():
print(f"{key} -- name: {value.name}, supported target languages count: {len(value.translations)}")
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной languages
точки см. здесь.
Концептуальное обсуждение языков см. в документации по службам.
Перевод
Перевод основного текста на одном исходном языке на несколько целевых языков с помощью единого запроса.
try:
source_language = "en"
target_languages = ["cs"]
input_text_elements = [ InputTextItem(text = "This is a test") ]
response = text_translator.translate(content = input_text_elements, to = target_languages, from_parameter = source_language)
translation = response[0] if response else None
if translation:
for translated_text in translation.translations:
print(f"Text was translated to: '{translated_text.to}' and the result is: '{translated_text.text}'.")
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной translate
точки см. здесь.
Концептуальное обсуждение перевода см. в документации по службам.
Транслитерация
Преобразование символов или букв исходного языка в соответствующие им символы и буквы на целевом языке.
try:
language = "zh-Hans"
from_script = "Hans"
to_script = "Latn"
input_text_elements = [ InputTextItem(text = "这是个测试。") ]
response = text_translator.transliterate(content = input_text_elements, language = language, from_script = from_script, to_script = to_script)
transliteration = response[0] if response else None
if transliteration:
print(f"Input text was transliterated to '{transliteration.script}' script. Transliterated text: '{transliteration.text}'.")
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной transliterate
точки см. здесь.
Концептуальное обсуждение транслитерации см. в документации по службам.
Разбивка по предложениям
Определяет расположение границ предложения в фрагменте текста.
try:
source_language = "zh-Hans"
source_script = "Latn"
input_text_elements = [ InputTextItem(text = "zhè shì gè cè shì。") ]
response = text_translator.find_sentence_boundaries(content = input_text_elements, language = source_language, script = source_script)
sentence_boundaries = response[0] if response else None
if sentence_boundaries:
detected_language = sentence_boundaries.detected_language
if detected_language:
print(f"Detected languages of the input text: {detected_language.language} with score: {detected_language.score}.")
print(f"The detected sentence boundaries:")
for boundary in sentence_boundaries.sent_len:
print(boundary)
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной break sentence
точки см. здесь.
Концептуальное обсуждение предложения о перерыве см. в документации по службе.
Поиск по словарю
Возвращает слова, эквивалентные исходному термину, на целевом языке.
try:
source_language = "en"
target_language = "es"
input_text_elements = [ InputTextItem(text = "fly") ]
response = text_translator.lookup_dictionary_entries(content = input_text_elements, from_parameter = source_language, to = target_language)
dictionary_entry = response[0] if response else None
if dictionary_entry:
print(f"For the given input {len(dictionary_entry.translations)} entries were found in the dictionary.")
print(f"First entry: '{dictionary_entry.translations[0].display_target}', confidence: {dictionary_entry.translations[0].confidence}.")
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной dictionary lookup
точки см. здесь.
Концептуальное обсуждение поиска по словарю см. в документации по службам.
Примеры словарей
Возвращает примеры грамматической структуры и контекста для пары исходных и целевых терминов.
from azure.ai.translation.text.models import DictionaryExampleTextItem
try:
source_language = "en"
target_language = "es"
input_text_elements = [ DictionaryExampleTextItem(text = "fly", translation = "volar") ]
response = text_translator.lookup_dictionary_examples(content = input_text_elements, from_parameter = source_language, to = target_language)
dictionary_entry = response[0] if response else None
if dictionary_entry:
print(f"For the given input {len(dictionary_entry.examples)} entries were found in the dictionary.")
print(f"First example: '{dictionary_entry.examples[0].target_prefix}{dictionary_entry.examples[0].target_term}{dictionary_entry.examples[0].target_suffix}'.")
except HttpResponseError as exception:
print(f"Error Code: {exception.error.code}")
print(f"Message: {exception.error.message}")
Дополнительные примеры использования конечной dictionary examples
точки см. здесь.
Концептуальное обсуждение примеров словарей см. в документации по службам.
Устранение неполадок
При взаимодействии со службой Переводчика с помощью клиентской библиотеки TextTranslator ошибки, возвращаемые службой Переводчик, соответствуют тем же кодам состояния HTTP, которые возвращаются для запросов REST API.
Например, при отправке запроса на перевод без целевого языка 400
перевода возвращается ошибка, указывающая на "Неверный запрос".
Различные коды ошибок, возвращаемые службой, можно найти в документации по службам.
Отзывы
Если вы столкнулись с ошибками или у вас есть предложения, сообщите о проблеме в разделе Проблемы проекта.
Дальнейшие действия
Дополнительные примеры можно найти в каталоге примеров .
Участие
На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см . на странице cla.microsoft.com.
При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.
В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по