Compartir a través de


Biblioteca cliente de Azure Text Translation para Python: versión 1.0.0b1

Text Translation es una característica de API REST basada en la nube del servicio Translator que usa tecnología de traducción automática neuronal para habilitar la traducción rápida y precisa de texto de origen a destino en tiempo real en todos los idiomas admitidos.

Use la biblioteca cliente de traducción de texto para Python para:

  • Devuelve una lista de idiomas admitidos por las operaciones Translate, Transliterate y Dictionary.

  • Representar texto de idioma de origen único en varios textos de idioma de destino con una sola solicitud.

  • Convierta el texto de un idioma de origen en letras de un script diferente.

  • Devuelve palabras equivalentes para el término de origen en el idioma de destino.

  • Devuelve ejemplos de contexto y estructura gramatical para el término de origen y el par de términos de destino.

Código | fuente Paquete (PyPI) | Documentación | de referencia de APIDocumentación | del producto Muestras

Introducción

Requisitos previos

  • Se requiere Python 3.7 o posterior para usar este paquete.
  • Un servicio Translator existente o un recurso de Cognitive Services.

Instalar el paquete

Instale la biblioteca cliente de Azure Text Translation para Python con pip:

pip install azure-ai-translation-text

Creación de un recurso de servicio translator

Puede crear un recurso de Translator después de Crear un recurso de Translator.

Autenticar el cliente

La interacción con el servicio mediante la biblioteca cliente comienza con la creación de una instancia de la clase TextTranslationClient . Necesitará una clave de API o TokenCredential crear una instancia de un objeto de cliente. Para obtener más información sobre la autenticación con Cognitive Services, consulte Autenticación de solicitudes en Translator Service.

Obtención de una clave de API

Puede obtener , y Region en la endpointAPI key información del recurso de Cognitive Services o del recurso del servicio Translator en Azure Portal.

Como alternativa, use el fragmento de código de la CLI de Azure siguiente para obtener la clave de API del recurso del servicio Translator.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Creación de un TextTranslationClient mediante una clave de API y una credencial de región

Una vez que tenga el valor de la clave de API y región, cree un TranslatorCredential. Esto le permitirá actualizar la clave de API sin crear un nuevo cliente.

Con el valor del punto de conexión y TranslatorCredential , Regionpuede crear TextTranslationClient:

text_translator = TextTranslationClient(credential = TranslatorCredential("<apiKey>", "<apiRegion>"));

Conceptos clave

TextTranslationClient

A TextTranslationClient es la interfaz principal para los desarrolladores que usan la biblioteca cliente de traducción de texto. Proporciona operaciones sincrónicas y asincrónicas para acceder a un uso específico del traductor de texto, como la detección de idiomas compatibles o la traducción de texto.

Entrada

Un elemento de texto (string), es una sola unidad de entrada que los modelos de traducción procesarán en el servicio Translator. Las operaciones en TextTranslationClient pueden tomar un solo elemento de texto o una colección de elementos de texto. Para conocer los límites de longitud del elemento de texto, el tamaño máximo de las solicitudes y la codificación de texto admitidas, consulte aquí.

Ejemplos

En la sección siguiente se proporcionan varios fragmentos de código mediante el clientcreado anteriormente y se tratan las características principales presentes en esta biblioteca cliente. Aunque la mayoría de los fragmentos de código siguientes usan llamadas de servicio sincrónicas, tenga en cuenta que el paquete de biblioteca de Traducción de texto para Python admite API sincrónicas y asincrónicas.

Obtener idiomas admitidos

Obtiene el conjunto de idiomas admitidos actualmente por otras operaciones de Traductor.

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

Para obtener ejemplos sobre cómo usar el languages punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de los idiomas.

Translate

Traduce texto de un solo idioma de origen en textos en varios idiomas de destino con una sola solicitud.

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

Para obtener ejemplos sobre cómo usar el translate punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de la traducción.

Transliterar

Convierte caracteres o letras de un idioma de origen en los caracteres o letras correspondientes de un idioma de destino.

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

Para obtener ejemplos sobre cómo usar el transliterate punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de la transliteración.

División de la oración

Identifica el posicionamiento de los límites de las oraciones en un fragmento de texto.

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

Para obtener ejemplos sobre cómo usar el break sentence punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de la oración de interrupción.

Búsqueda en diccionario

Devuelve palabras equivalentes del término de origen en el idioma de destino.

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

Para obtener ejemplos sobre cómo usar el dictionary lookup punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de la búsqueda de diccionarios.

Ejemplos de diccionario

Devuelve ejemplos de contexto y estructura gramatical para el término de origen y el par de términos de destino.

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

Para obtener ejemplos sobre cómo usar el dictionary examples punto de conexión, consulte más ejemplos aquí.

Consulte la documentación del servicio para obtener una explicación conceptual de los ejemplos de diccionario.

Solución de problemas

Cuando interactúa con translator Service mediante la biblioteca cliente TextTranslator, los errores devueltos por el servicio Translator corresponden a los mismos códigos de estado HTTP devueltos para las solicitudes de LA API REST.

Por ejemplo, si envía una solicitud de traducción sin un idioma de traducción de destino, se devuelve un 400 error que indica "Solicitud incorrecta".

Puede encontrar los diferentes códigos de error devueltos por el servicio en la documentación del servicio.

Envío de comentarios

Si encuentra algún error o tiene sugerencias, envíe un problema en la sección Problemas del proyecto.

Pasos siguientes

Puede encontrar más ejemplos en el directorio samples .

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.