Análisis asincrónico para información de Amazon Comprehend - Amazon Comprehend

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.

Análisis asincrónico para información de Amazon Comprehend

En las siguientes secciones se utiliza la API de Amazon Comprehend para ejecutar operaciones asíncronas con el fin de analizar la información de Amazon Comprehend.

Requisitos previos

Los documentos deben ser archivos de texto con formato UTF-8. Puede enviar sus documentos en dos formatos. El formato que utilice depende del tipo de documentos que desee analizar, tal como se describe en la tabla siguiente.

Descripción Formato
Cada archivo contiene un documento de entrada. Esto es lo mejor para colecciones de documentos de gran tamaño. Un documento por archivo

La entrada comprende uno o más archivos. Cada línea de un archivo se considera un documento. Esta opción es la mejor para documentos cortos, como publicaciones en redes sociales.

Cada línea debe terminar con un salto de línea (LF,\n), un retorno de carro (CR,\ r) o ambos (CRLF,\ r\n). No se puede usar el separador de líneas UTF-8 (u+2028) para terminar una línea.

Un documento por línea

Al iniciar un trabajo de análisis, debe especificar la ubicación S3 para los datos de entrada. El URI debe estar situado en la misma región AWS que el punto de conexión al que está llamando. El URI puede apuntar a un único archivo o puede ser el prefijo de un conjunto de archivos de datos. Para obtener más información, consulte el tipo de datos InputDataConfig.

Debe conceder a Amazon Comprehend acceso al bucket de Amazon S3 que contiene la colección de documentos y los archivos de salida. Para obtener más información, consulte Se requieren permisos basados en roles para las operaciones asíncronas.

Iniciar un trabajo de análisis

Para enviar un trabajo de análisis, utilice la consola de Amazon Comprehend o la operación de Start* correspondiente:

Monitoreo de trabajos de análisis

La operación Start* devuelve un identificador que puede utilizar para supervisar el progreso del trabajo.

Para supervisar el progreso usando la API, utilice una de estas dos operaciones, en función de si desea supervisar el progreso de un trabajo individual o de varios de ellos.

Para supervisar el progreso de un trabajo de análisis individual, utilice las operaciones de Describe*. Debe proporcionar el identificador del trabajo que le ha reportado la operación de Start*. La respuesta de la operación de Describe* contiene el campo JobStatus con el estado del trabajo.

Para supervisar el progreso de varios trabajos de análisis, utilice las operaciones de List*. Las operaciones de List* reportan una lista de los trabajos que ha enviado a Amazon Comprehend. La respuesta incluye un campo JobStatus para cada trabajo en el que se indica el estado de este.

Si el campo de estado está configurado en COMPLETED o FAILED, el procesamiento del trabajo se ha completado.

Para obtener el estado de un trabajo individual, utilice la operación de Describe* para el análisis que esté realizando.

Para obtener el estado de varios trabajos, utilice la operación de List* para el análisis que esté realizando.

Para restringir los resultados a trabajos que satisfagan determinados criterios, utilice el parámetro Filter de la operación List*. Puede filtrar los resultados por el nombre del trabajo, el estado del trabajo o la fecha y hora de envío del trabajo. Para obtener más información, consulte el parámetro Filter de cada una de las operaciones de List* en la referencia de la API de Amazon Comprehend.

Obtención de resultados del análisis

Una vez finalizada un trabajo de análisis, utilice una operación de Describe* para obtener la ubicación de los resultados. Si el estado del trabajo es COMPLETED, la respuesta incluirá un campo OutputDataConfig que contiene un campo con la ubicación de Amazon S3 del archivo de salida. El archivo, output.tar.gz, es un archivo comprimido que contiene los resultados del análisis.

Si el estado de un trabajo es FAILED, la respuesta contendrá un campo Message en el que se describe el motivo por el cual el trabajo no se ha completado correctamente.

Para obtener el estado de los trabajos individuales, utilice la operación de Describe* pertinente:

Los resultados se reportan en un único archivo con una estructura JSON para cada documento. Cada archivo de respuesta también incluye mensajes de error para cualquier trabajo con el campo de estado configurado en FAILED.

En cada una de las siguientes secciones se muestran ejemplos de los resultados para los dos formatos de entrada.

Obtenga los resultados de la detección del idioma predominante

A continuación se muestra un ejemplo de un archivo de salida de un trabajo de análisis que ha detectado el idioma predominante. El formato de entrada es de un documento por línea. Para obtener más información, consulte la operación DetectDominantLanguage.

{"File": "0_doc", "Languages": [{"LanguageCode": "en", "Score": 0.9514502286911011}, {"LanguageCode": "de", "Score": 0.02374090999364853}, {"LanguageCode": "nl", "Score": 0.003208699868991971}, "Line": 0} {"File": "1_doc", "Languages": [{"LanguageCode": "en", "Score": 0.9822712540626526}, {"LanguageCode": "de", "Score": 0.002621392020955682}, {"LanguageCode": "es", "Score": 0.002386554144322872}], "Line": 1}

A continuación se muestra un ejemplo del resultado de un análisis en el que el formato de entrada es un documento por archivo:

{"File": "small_doc", "Languages": [{"LanguageCode": "en", "Score": 0.9728053212165833}, {"LanguageCode": "de", "Score": 0.007670710328966379}, {"LanguageCode": "es", "Score": 0.0028472368139773607}]} {"File": "huge_doc", "Languages": [{"LanguageCode": "en", "Score": 0.984955906867981}, {"LanguageCode": "de", "Score": 0.0026436643674969673}, {"LanguageCode": "fr", "Score": 0.0014206881169229746}]}

Obtención de los resultados de la detección de entidades

A continuación se muestra un ejemplo de un archivo de salida de un trabajo de análisis que ha detectado entidades en los documentos. El formato de entrada es de un documento por línea. Para obtener más información, consulte la operación DetectEntities. El resultado contiene dos mensajes de error, uno para un documento demasiado largo y otro para un documento que no está en formato UTF-8.

{"File": "50_docs", "Line": 0, "Entities": [{"BeginOffset": 0, "EndOffset": 22, "Score": 0.9763959646224976, "Text": "Cluj-NapocaCluj-Napoca", "Type": "LOCATION"}"]} {"File": "50_docs", "Line": 1, "Entities": [{"BeginOffset": 11, "EndOffset": 15, "Score": 0.9615424871444702, "Text": "Maat", "Type": "PERSON"}}]} {"File": "50_docs", "Line": 2, "ErrorCode": "DOCUMENT_SIZE_EXCEEDED", "ErrorMessage": "Document size exceeds maximum size limit 102400 bytes."} {"File": "50_docs", "Line": 3, "ErrorCode": "UNSUPPORTED_ENCODING", "ErrorMessage": "Document is not in UTF-8 format and all subsequent lines are ignored."}

A continuación, se muestra un ejemplo del resultado de un análisis en el que el formato de la entrada es un documento por archivo. El resultado contiene dos mensajes de error, uno para un documento demasiado largo y otro para un documento que no está en formato UTF-8.

{"File": "non_utf8.txt", "ErrorCode": "UNSUPPORTED_ENCODING", "ErrorMessage": "Document is not in UTF-8 format and all subsequent line are ignored."} {"File": "small_doc", "Entities": [{"BeginOffset": 0, "EndOffset": 4, "Score": 0.645766019821167, "Text": "Maat", "Type": "PERSON"}]} {"File": "huge_doc", "ErrorCode": "DOCUMENT_SIZE_EXCEEDED", "ErrorMessage": "Document size exceeds size limit 102400 bytes."}

Obtención de los resultados de la detección de frases clave

A continuación se muestra un ejemplo de un archivo de salida de un trabajo de análisis que ha detectado frases clave en un documento. El formato de entrada es de un documento por línea. Para obtener más información, consulte la operación DetectKeyPhrases.

{"File": "50_docs", "KeyPhrases": [{"BeginOffset": 0, "EndOffset": 22, "Score": 0.8948641419410706, "Text": "Cluj-NapocaCluj-Napoca"}, {"BeginOffset": 45, "EndOffset": 49, "Score": 0.9989854693412781, "Text": "Cluj"}], "Line": 0}

A continuación se muestra un ejemplo del resultado de un análisis en el que el formato de entrada es un documento por archivo.

{"File": "1_doc", "KeyPhrases": [{"BeginOffset": 0, "EndOffset": 22, "Score": 0.8948641419410706, "Text": "Cluj-NapocaCluj-Napoca"}, {"BeginOffset": 45, "EndOffset": 49, "Score": 0.9989854693412781, "Text": "Cluj"}]}

Obtención de resultados de detección de información de identificación personal (PII)

A continuación se muestra un ejemplo de un archivo de salida de un trabajo de análisis que ha detectado entidades de PII en los documentos. El formato de entrada es de un documento por línea.

{"Entities":[{"Type":"NAME","BeginOffset":40,"EndOffset":69,"Score":0.999995},{"Type":"ADDRESS","BeginOffset":247,"EndOffset":253,"Score":0.998828},{"Type":"BANK_ACCOUNT_NUMBER","BeginOffset":406,"EndOffset":411,"Score":0.693283}],"File":"doc.txt","Line":0} {"Entities":[{"Type":"SSN","BeginOffset":1114,"EndOffset":1124,"Score":0.999999},{"Type":"EMAIL","BeginOffset":3742,"EndOffset":3775,"Score":0.999993},{"Type":"PIN","BeginOffset":4098,"EndOffset":4102,"Score":0.999995}],"File":"doc.txt","Line":1}

A continuación, se muestra un ejemplo del resultado de un análisis en el que el formato de la entrada es un documento por archivo.

{"Entities":[{"Type":"NAME","BeginOffset":40,"EndOffset":69,"Score":0.999995},{"Type":"ADDRESS","BeginOffset":247,"EndOffset":253,"Score":0.998828},{"Type":"BANK_ROUTING","BeginOffset":279,"EndOffset":289,"Score":0.999999}],"File":"doc.txt"}

Obtención de resultados de detección de opiniones

A continuación se muestra un ejemplo de un archivo de salida de un análisis que ha detectado la opinión expresada en un documento. Incluye un mensaje de error porque un documento es demasiado largo. El formato de entrada es de un documento por línea. Para obtener más información, consulte la operación DetectSentiment.

{"File": "50_docs", "Line": 0, "Sentiment": "NEUTRAL", "SentimentScore": {"Mixed": 0.002734508365392685, "Negative": 0.008935936726629734, "Neutral": 0.9841893315315247, "Positive": 0.004140198230743408}} {"File": "50_docs", "Line": 1, "ErrorCode": "DOCUMENT_SIZE_EXCEEDED", "ErrorMessage": "Document size is exceeded maximum size limit 5120 bytes."} {"File": "50_docs", "Line": 2, "Sentiment": "NEUTRAL", "SentimentScore": {"Mixed": 0.0023119584657251835, "Negative": 0.0029857370536774397, "Neutral": 0.9866572022438049, "Positive": 0.008045154623687267}}

A continuación se muestra un ejemplo del resultado de un análisis en el que el formato de entrada es un documento por archivo.

{"File": "small_doc", "Sentiment": "NEUTRAL", "SentimentScore": {"Mixed": 0.0023450672160834074, "Negative": 0.0009663937962614, "Neutral": 0.9795311689376831, "Positive": 0.017157377675175667}} {"File": "huge_doc", "ErrorCode": "DOCUMENT_SIZE_EXCEEDED", "ErrorMessage": "Document size is exceeds the limit of 5120 bytes."}