Amazon Comprehend 인사이트에 사용되는 비동기 분석 - Amazon Comprehend

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Comprehend 인사이트에 사용되는 비동기 분석

다음 섹션에서는 Amazon Comprehend API를 사용하여 Amazon Comprehend 인사이트를 분석하기 위한 비동기 작업을 실행합니다.

사전 조건

문서는 UTF-8 형식 또는 파일이어야 합니다. 문서를 두 가지 형식으로 제출할 수 있습니다. 사용하는 형식은 다음 표의 설명대로 분석하려는 문서의 유형에 따라 달라집니다.

설명 형식
각 파일에는 입력 문서가 한 개씩 들어 있습니다. 이 방법은 대용량 문서 컬렉션에 가장 적합합니다. 파일당 문서 하나

입력은 하나 이상의 파일입니다. 파일의 각 라인은 문서로 간주됩니다. 소셜 미디어 게시물과 같은 짧은 문서에 가장 적합합니다.

각 줄은 줄 바꿈(LF, \n), 캐리지 리턴(CR, \r) 또는 둘 다(CRLF, \r\n)로 끝나야 합니다. UTF-8 줄 구분자(u+2028)를 사용하여 줄을 끝낼 수는 없습니다.

한 줄에 문서 한 개

분석 작업을 시작할 때 입력 데이터의 S3 위치를 지정해야 합니다. URI는 직접 호출하는 API 엔드포인트와 동일한 AWS 리전에 있어야 합니다. URI는 단일 파일을 가리킬 수도 있고 데이터 파일 컬렉션의 접두사일 수도 있습니다. 자세한 정보는 InputDataConfig 데이터 유형을 잠조하세요.

Amazon Comprehend에 문서 컬렉션 및 출력 파일을 포함하는 Amazon S3 버킷에 대한 액세스 권한을 부여해야 합니다. 자세한 내용은 비동기 작업에 필요한 역할 기반 권한을 참조하십시오.

분석 시작

분석 작업을 제출하려면 Amazon Comprehend 콘솔 또는 적절한 Start* 작업을 사용하십시오.

  • StartDominantLanguageDetectionJob— 컬렉션의 각 문서에서 주로 사용되는 언어를 탐지하는 작업을 시작합니다. 문서의 지배적 언어에 대한 자세한 정보는 지배적 언어을 참조하십시오.

  • StartEntitiesDetectionJob— 컬렉션의 각 문서에서 엔티티를 탐지하는 작업을 시작합니다. 개체 태그 지정에 대한 자세한 내용은 개체을 참조하십시오.

  • StartKeyPhrasesDetectionJob— 컬렉션의 각 문서에서 핵심 문구를 탐지하는 작업을 시작합니다. 키 이름에 대한 자세한 내용은 핵심 문구을 참조하십시오.

  • StartPiiEntitiesDetectionJob— 컬렉션의 각 문서에서 개인 식별 정보 (PII) 를 탐지하는 작업을 시작합니다. ACL에 대한 자세한 내용은 개체 탐지 PII을 참조하십시오.

  • StartSentimentDetectionJob— 컬렉션 내 각 문서에서 감정을 감지하는 작업을 시작합니다. 감성에 대한 자세한 내용은 감성을 참조하십시오.

모니터링 분석 작업

Start* 작업은 작업 진행 상황을 모니터링하는 데 사용할 수 있는 ID를 반환합니다.

API를 사용하여 진행 상황을 모니터링하려면 개별 작업의 진행 상황을 모니터링할지, 아니면 여러 작업의 진행 상황을 모니터링할지에 따라 두 작업 중 하나를 사용합니다.

개별 분석 작업의 진행 상황을 모니터링하려면 Describe* 작업을 사용하십시오. Start* 작업에서 반환된 작업 ID를 제공해야 합니다. Describe* 작업의 응답에는 작업 상태가 표시된 JobStatus 필드가 포함됩니다.

여러 분석 작업의 진행 상황을 모니터링하려면 List* 작업을 사용하십시오. List* 작업은 Amazon Comprehend에 제출한 작업 목록을 반환합니다. 응답에는 각 작업에 대한 작업 상태를 알려주는 JobStatus 필드가 포함됩니다.

상태 필드가 COMPLETED 또는 FAILED로 설정된 경우 작업 처리가 완료된 것입니다.

개별 작업의 상태를 확인하려면 수행 중인 분석에 Describe* 작업을 사용하십시오.

여러 작업의 상태를 확인하려면 수행 중인 분석에 List* 작업을 사용하십시오.

결과를 특정 기준과 일치하는 작업으로 제한하려면 List* 작업의 Filter 파라미터를 사용합니다. 작업 이름, 작업 상태 또는 작업이 제출된 날짜와 시간을 기준으로 결과를 필터링할 수 있습니다. 자세한 내용은 Amazon Comprehend API 참조에서 각 List* 작업의 Filter 파라미터를 참조하십시오.

분석 결과 가져오기

분석 작업을 완료한 후 Describe* 작업을 사용하여 결과의 위치를 가져옵니다. 작업 상태가 COMPLETED인 경우 응답에는 출력 파일의 Amazon S3 위치가 있는 필드가 포함된 OutputDataConfig 필드가 포함됩니다. 파일 output.tar.gz는 분석 결과를 포함하는 압축된 아카이브입니다.

배치 번역 작업의 상태가 FAILED인 경우 작업 응답에는 작업이 완료되지 않은 이유를 설명하는 필드가 Message 포함되어 있습니다.

개별 작업의 상태를 확인하려면 적절한 Describe* 작업을 사용하십시오.

결과는 문서당 하나의 JSON 구조를 갖는 단일 파일로 반환됩니다. 각 응답 파일에는 상태 필드가 FAILED(으)로 설정된 모든 작업에 대한 오류 메시지도 포함됩니다.

다음 각 섹션은 두 입력 형식의 출력 예시를 보여줍니다.

지배적 언어 감지 결과 가져오기

다음은 지배적 언어를 감지한 분석의 출력 파일 예제입니다. 입력 형식은 한 줄에 한 문서입니다. 자세한 정보는 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}

다음은 입력 형식이 파일당 문서 하나인 분석 결과의 예시입니다.

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

개체 감지 결과 가져오기

다음은 문서에서 개체를 감지한 분석 결과 파일의 예시입니다. 입력 형식은 한 줄에 한 문서입니다. 자세한 정보는 DetectEntities 작업을 참조하세요. 출력에는 두 개의 오류 메시지가 포함됩니다. 하나는 너무 긴 문서이고, 다른 하나는 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."}

다음은 입력 형식이 파일당 문서 하나인 분석으로부터의 출력 결과의 예입니다. 출력에는 두 개의 오류 메시지가 포함됩니다. 하나는 너무 긴 문서이고, 다른 하나는 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."}

핵심 문구 감지 결과 가져오기

다음은 문서에서 핵심 문구를 감지한 분석 결과 파일의 예시입니다. 입력 형식은 한 줄에 한 문서입니다. 자세한 정보는 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}

다음은 입력 형식이 파일당 문서 하나인 분석 결과의 예시입니다.

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

개인 식별 정보(PII) 감지 결과 가져오기

다음은 문서에서 PII 개체를 감지한 분석 작업의 출력 파일 예제입니다. 입력 형식은 한 줄에 한 문서입니다.

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

다음은 입력 형식이 파일당 문서 하나인 분석으로부터의 출력 결과의 예입니다.

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

감성 감지 결과 가져오기

다음은 문서에 표현된 감성을 감지한 분석의 결과 파일 예제입니다. 문서 하나가 너무 길기 때문에 오류 메시지가 포함됩니다. 입력 형식은 한 줄에 한 문서입니다. 자세한 정보는 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}}

다음은 입력 형식이 파일당 문서 하나인 분석 결과의 예시입니다.

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