Uso de Amazon Translate para traducir documentos de gran tamaño - Amazon Translate

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Amazon Translate para traducir documentos de gran tamaño

Puede dividir los documentos de gran tamaño en partes más pequeñas que no sobrepasen el límite de tamaño de los documentos. Para obtener más información sobre el límite de tamaño de los documentos, consulte Límites de los servicios. El siguiente programa de Java divide documentos de texto grandes en frases individuales y, a continuación, traduce cada frase del idioma de origen al idioma de destino. El programa contiene dos secciones:

  • La clase SentenceSegmenter, que se encarga de dividir la cadena de origen en frases individuales. La muestra usa la clase BreakIterator de Java.

  • La función main, que llama a la operación Translate para cada frase de la cadena de origen. Lamaintambién se encarga de la autenticación con Amazon Translate.

Para configurar el ejemplo

  1. Instalar y configurar la AWS SDK for Java. Para obtener instrucciones acerca de cómo instalar el SDK for Java, consulteConfigurar laAWS SDK for Java.

  2. Cree un usuario de IAM con los permisos mínimos necesarios para ejecutar este ejemplo. Para obtener información acerca de cómo crear un usuario de IAM, consulte Creación de un usuario de IAM en su cuenta de AWS en la Guía del usuario de AWS Identity and Access Management. Para conocer las políticas de permisos necesarias, consulte Políticas de Amazon Translate basadas en identidades.

  3. Configure las credenciales necesarias para ejecutar la muestra. Para obtener instrucciones, consulte Configuración de credenciales y regiones de AWS en la Guía para desarrolladores de AWS SDK for Java.

  4. Cree un nuevo proyecto en el IDE de Java y copie el código fuente.

  5. Cambie a la región en la que desea ejecutar la operación de Amazon Translate. Para obtener una lista de las regiones admitidas en Amazon Translate, consulteRegiones y puntos de enlace de AWSen laAWSReferencia general de.

  6. Cambie los idiomas de origen y de destino a los idiomas entre los que va a traducir.

  7. Ejecute la muestra para ver el texto traducido en salida estándar.

import com.amazonaws.auth.AWSCredentialsProviderChain; import com.amazonaws.auth.EnvironmentVariableCredentialsProvider; import com.amazonaws.auth.SystemPropertiesCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.translate.AmazonTranslate; import com.amazonaws.services.translate.AmazonTranslateClient; import com.amazonaws.services.translate.model.TranslateTextRequest; import com.amazonaws.services.translate.model.TranslateTextResult; import java.text.BreakIterator; import java.util.ArrayList; import java.util.List; import java.util.Locale; public class MultiSentenceTranslator { public static void main(String[] args) { // Define the text to be translated here String region = "region"; String text = "Text to be translated"; String sourceLang = "source language"; String targetLang = "target language"; // Break text into sentences SentenceSegmenter sentenceSegmenter = new SentenceSegmenter(); List<String> sentences = new ArrayList<>(); try { sentences = sentenceSegmenter.segment(text, sourceLang); } catch (Exception e) { System.out.println(e); System.exit(1); } // Create credentials using a provider chain that will evaluate in order; // a) Any Java system properties // b) Any environment variables // c) Any profile file AWSCredentialsProviderChain DefaultAWSCredentialsProviderChain = new AWSCredentialsProviderChain( new SystemPropertiesCredentialsProvider(), new EnvironmentVariableCredentialsProvider(), new ProfileCredentialsProvider() ); // Create an Amazon Translate client AmazonTranslate translate = AmazonTranslateClient.builder() .withCredentials(DefaultAWSCredentialsProviderChain) .withRegion(region) .build(); // Translate sentences and print the results to stdout for (String sentence : sentences) { TranslateTextRequest request = new TranslateTextRequest() .withText(sentence) .withSourceLanguageCode(sourceLang) .withTargetLanguageCode(targetLang); TranslateTextResult result = translate.translateText(request); System.out.println("Original text: " + sentence); System.out.println("Translated text: " + result.getTranslatedText()); } } } class SentenceSegmenter { public List<String> segment(final String text, final String lang) throws Exception { List<String> res = new ArrayList<>(); BreakIterator sentenceIterator = BreakIterator.getSentenceInstance(new Locale(lang)); sentenceIterator.setText(text); int prevBoundary = sentenceIterator.first(); int curBoundary = sentenceIterator.next(); while (curBoundary != BreakIterator.DONE) { String sentence = text.substring(prevBoundary, curBoundary); res.add(sentence); prevBoundary = curBoundary; curBoundary = sentenceIterator.next(); } return res; } }