Analisi asincrona per Amazon Comprehend Insights - Amazon Comprehend

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Analisi asincrona per Amazon Comprehend Insights

Le seguenti sezioni utilizzano l'API Amazon Comprehend per eseguire operazioni asincrone per analizzare le informazioni di Amazon Comprehend.

Prerequisiti

I documenti devono essere in file di testo in formato UTF-8. Puoi inviare i tuoi documenti in due formati. Il formato utilizzato dipende dal tipo di documenti che si desidera analizzare, come descritto nella tabella seguente.

Descrizione Formato
Ogni file contiene un documento di input. Questa opzione è ideale per raccolte di documenti di grandi dimensioni. Un documento per file

L'input è costituito da uno o più file. Ogni riga di un file è considerata un documento. Questa opzione è ideale per documenti brevi, come i post sui social media.

Ogni riga deve terminare con un'alimentazione di linea (LF,\n), un valore di ritorno (CR,\ r) o entrambi (CRLF,\ r\n). Non è possibile utilizzare il separatore di riga UTF-8 (u+2028) per terminare una riga.

Un documento per riga

Quando si avvia un lavoro di analisi, si specifica la posizione S3 per i dati di input. L'URI deve trovarsi nella stessa AWS regione dell'endpoint API che state chiamando. L'URI può puntare a un singolo file o può essere il prefisso per una raccolta di file di dati. Per ulteriori informazioni, consulta il tipo di InputDataConfigdati.

Devi concedere ad Amazon Comprehend l'accesso al bucket Amazon S3 che contiene la raccolta di documenti e i file di output. Per ulteriori informazioni, consulta Autorizzazioni basate sui ruoli necessarie per le operazioni asincrone.

Avvio di un lavoro di analisi

Per inviare un lavoro di analisi, utilizza la console Amazon Comprehend o l'operazione appropriataStart*:

Monitoraggio dei lavori di analisi

L'Start*operazione restituisce un ID che è possibile utilizzare per monitorare l'avanzamento del lavoro.

Per monitorare l'avanzamento utilizzando l'API, si utilizza una delle due operazioni, a seconda che si desideri monitorare l'avanzamento di un singolo lavoro o di più lavori.

Per monitorare l'avanzamento di un singolo processo di analisi, utilizzate le Describe* operazioni. Fornisci l'ID del lavoro restituito dall'Start*operazione. La risposta dell'Describe*operazione contiene il JobStatus campo con lo stato del lavoro.

Per monitorare lo stato di avanzamento di più processi di analisi, utilizzate le List* operazioni. List*le operazioni restituiscono un elenco di offerte di lavoro inviate ad Amazon Comprehend. La risposta include un JobStatus campo per ogni lavoro che indica lo stato del lavoro.

Se il campo dello stato è impostato su COMPLETED oFAILED, l'elaborazione del lavoro è stata completata.

Per conoscere lo stato dei singoli lavori, utilizzate l'Describe*operazione per l'analisi che state eseguendo.

Per ottenere lo stato di più lavori, utilizzate l'List*operazione per l'analisi che state eseguendo.

Per limitare i risultati ai lavori che soddisfano determinati criteri, utilizzate il parametro List* delle operazioniFilter. È possibile filtrare in base al nome del lavoro, allo stato del lavoro e alla data e all'ora in cui il lavoro è stato inviato. Per ulteriori informazioni, consulta il Filter parametro per ciascuna List* operazione nel riferimento all'API Amazon Comprehend.

Ottenere i risultati dell'analisi

Al termine di un processo di analisi, utilizzate un'Describe*operazione per ottenere la posizione dei risultati. Se lo stato del lavoro èCOMPLETED, la risposta include un OutputDataConfig campo che contiene un campo con la posizione Amazon S3 del file di output. Il fileoutput.tar.gz, è un archivio compresso che contiene i risultati dell'analisi.

Se lo stato di un processo èFAILED, la risposta contiene un Message campo che descrive il motivo per cui il processo di analisi non è stato completato correttamente.

Per ottenere lo stato dei singoli lavori, utilizzate l'Describe*operazione appropriata:

I risultati vengono restituiti in un unico file, con una struttura JSON per ogni documento. Ogni file di risposta include anche messaggi di errore per qualsiasi lavoro con il campo di stato impostato FAILED su.

Ciascuna delle seguenti sezioni mostra esempi di output per i due formati di input.

Ottenere risultati di rilevamento della lingua dominante

Di seguito è riportato un esempio di file di output di un'analisi che ha rilevato la lingua dominante. Il formato dell'input è un documento per riga. Per maggiori informazioni, vedi l'operazione 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}

Di seguito è riportato un esempio di output di un'analisi in cui il formato dell'input è un documento per file:

{"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}]}

Ottenere i risultati del rilevamento delle entità

Di seguito è riportato un esempio di file di output di un'analisi che ha rilevato entità nei documenti. Il formato dell'input è un documento per riga. Per maggiori informazioni, vedi l'operazione DetectEntities. L'output contiene due messaggi di errore, uno per un documento troppo lungo e uno per un documento che non è in 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."}

Di seguito è riportato un esempio di output di un'analisi in cui il formato dell'input è un documento per file. L'output contiene due messaggi di errore, uno per un documento troppo lungo e uno per un documento che non è in 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."}

Ottenere i risultati del rilevamento delle frasi chiave

Di seguito è riportato un esempio di file di output di un'analisi che ha rilevato frasi chiave in un documento. Il formato di input è un documento per riga. Per maggiori informazioni, vedi l'operazione 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}

Di seguito è riportato un esempio dell'output di un'analisi in cui il formato dell'input è un documento per file.

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

Ottenimento dei risultati del rilevamento di informazioni di identificazione personale (PII)

Di seguito è riportato un esempio di file di output di un processo di analisi che ha rilevato entità PII nei documenti. Il formato dell'input è un documento per riga.

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

Di seguito è riportato un esempio di output di un'analisi in cui il formato dell'input è un documento per file.

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

Ottenere risultati di rilevamento del sentiment

Di seguito è riportato un esempio di file di output di un'analisi che ha rilevato il sentimento espresso in un documento. Include un messaggio di errore perché un documento è troppo lungo. Il formato dell'input è un documento per riga. Per maggiori informazioni, vedi l'operazione 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}}

Di seguito è riportato un esempio dell'output di un'analisi in cui il formato dell'input è un documento per file.

{"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."}