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 endpoint
API 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
, Region
puede 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 client
creado 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.
Azure SDK for Python
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de