Поделиться через


Клиентская библиотека перевода текста 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 keyRegion из ресурса 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 с любыми дополнительными вопросами или комментариями.