API를 사용한 실시간 분석 - Amazon Comprehend

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

API를 사용한 실시간 분석

다음 예제는 AWS CLI 및 .NET, Java, Python용 AWS SDK를 사용하여 실시간 분석을 위해 Amazon Comprehend API를 사용하는 방법을 보여줍니다. 이러한 예제를 통해 Amazon Comprehend 작업에 대해 알아보고 자체 애플리케이션의 구성 요소로 사용할 수 있습니다.

이 단원의 .NET 예제는 AWS SDK for .NET을 사용합니다. AWS Toolkit for Visual Studio을 사용하면 .NET을 사용하는 AWS 애플리케이션을 개발할 수 있습니다. 여기에는 애플리케이션 배포 및 서비스 관리를 위한 AWS Explorer와 유용한 템플릿이 포함됩니다. AWS에 대한 .NET 개발자의 관점은 .NET 개발자를 위한 AWS 가이드를 참조하십시오.

지배적 언어 감지

텍스트에 사용되는 주요 언어를 확인하려면 DetectDominantLanguage연산을 사용하십시오. 최대 25개 문서에서 주요 언어를 일괄적으로 검색하려면 작업을 사용하십시오. BatchDetectDominantLanguage 자세한 설명은 실시간 배치 API 섹션을 참조하세요.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectDominantLanguage 작업을 사용하는 방법을 보여 줍니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-dominant-language \ --region region \ --text "It is raining today in Seattle."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "Languages": [ { "LanguageCode": "en", "Score": 0.9793661236763 } ] }

AWS SDK for Java, Python용 SDK, 또는 AWS SDK for .NET 사용

지배적 언어를 결정하는 방법에 대한 SDK 예제는 다음과 DetectDominantLanguage 함께 사용하십시오. AWS SDK또는 CLI를 참조하십시오.

명명된 개체 감지

문서에서 이름이 지정된 엔티티를 확인하려면 DetectEntities작업을 사용하십시오. 최대 25개 문서의 엔티티를 일괄적으로 검색하려면 이 BatchDetectEntities작업을 사용하십시오. 자세한 설명은 실시간 배치 API 섹션을 참조하세요.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectEntities 작업을 사용하는 방법을 보여 줍니다. 입력 텍스트의 언어를 지정해야 합니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-entities \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "Entities": [ { "Text": "today", "Score": 0.97, "Type": "DATE", "BeginOffset": 14, "EndOffset": 19 }, { "Text": "Seattle", "Score": 0.95, "Type": "LOCATION", "BeginOffset": 23, "EndOffset": 30 } ], "LanguageCode": "en" }

AWS SDK for Java, Python용 SDK, 또는 AWS SDK for .NET 사용

지배적 언어를 결정하는 방법에 대한 SDK 예제는 다음과 DetectEntities 함께 사용하십시오. AWS SDK또는 CLI를 참조하십시오.

핵심 문구 감지

텍스트에 사용되는 주요 명사구를 확인하려면 연산을 사용하십시오. DetectKeyPhrases 최대 25개 문서의 주요 명사구를 일괄적으로 검색하려면 이 작업을 사용하십시오. BatchDetectKeyPhrases 자세한 설명은 실시간 배치 API 섹션을 참조하세요.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectKeyPhrases 작업을 사용하는 방법을 보여 줍니다. 입력 텍스트의 언어를 지정해야 합니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-key-phrases \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "LanguageCode": "en", "KeyPhrases": [ { "Text": "today", "Score": 0.89, "BeginOffset": 14, "EndOffset": 19 }, { "Text": "Seattle", "Score": 0.91, "BeginOffset": 23, "EndOffset": 30 } ] }

AWS SDK for Java, Python용 SDK, 또는 AWS SDK for .NET 사용

핵심 문구를 감지하는 SDK 예제는 다음과 DetectKeyPhrases 함께 사용하십시오. AWS SDK또는 CLI를 참조하십시오.

감성 확인

Amazon Comprehend는 감성 분석을 위한 다음과 같은 API 작업을 제공합니다.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectSentiment 작업을 사용하는 방법을 보여 줍니다. 이 예제는 입력 텍스트의 언어를 지정합니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-sentiment \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "SentimentScore": { "Mixed": 0.014585512690246105, "Positive": 0.31592071056365967, "Neutral": 0.5985543131828308, "Negative": 0.07093945890665054 }, "Sentiment": "NEUTRAL", "LanguageCode": "en" }

AWS SDK for Java, Python용 SDK, 또는 AWS SDK for .NET 사용

입력 텍스트의 감성을 결정하는 SDK 예제는 다음과 DetectSentiment 함께 사용하십시오. AWS SDK또는 CLI를 참조하십시오.

대상 감성에 대한 실시간 분석

Amazon Comprehend는 대상 감성 실시간 분석을 위한 다음과 같은 API 작업을 제공합니다.

분석 중인 텍스트에 대상 감성 개체 유형이 없는 경우 API는 빈 개체 배열을 반환합니다.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectTargetedSentiment 작업을 사용하는 방법을 보여 줍니다. 이 예제는 입력 텍스트의 언어를 지정합니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-targeted-sentiment \ --region region \ --language-code "en" \ --text "The burger was cooked perfectly but it was cold. The service was OK."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "Entities": [ { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 4, "EndOffset": 10, "Score": 1, "GroupScore": 1, "Text": "burger", "Type": "OTHER", "MentionSentiment": { "Sentiment": "POSITIVE", "SentimentScore": { "Mixed": 0.001515, "Negative": 0.000822, "Neutral": 0.000243, "Positive": 0.99742 } } }, { "BeginOffset": 36, "EndOffset": 38, "Score": 0.999843, "GroupScore": 0.999661, "Text": "it", "Type": "OTHER", "MentionSentiment": { "Sentiment": "NEGATIVE", "SentimentScore": { "Mixed": 0, "Negative": 0.999996, "Neutral": 0.000004, "Positive": 0 } } } ] }, { "DescriptiveMentionIndex": [ 0 ], "Mentions": [ { "BeginOffset": 53, "EndOffset": 60, "Score": 1, "GroupScore": 1, "Text": "service", "Type": "ATTRIBUTE", "MentionSentiment": { "Sentiment": "NEUTRAL", "SentimentScore": { "Mixed": 0.000033, "Negative": 0.000089, "Neutral": 0.993325, "Positive": 0.006553 } } } ] } ] }

구문 감지

텍스트를 분석하여 개별 단어를 추출하고 각 단어의 품사를 결정하려면 DetectSyntax작업을 사용하십시오. 최대 25개 문서의 구문을 일괄적으로 분석하려면 이 작업을 사용하십시오. BatchDetectSyntax 자세한 설명은 실시간 배치 API 섹션을 참조하세요.

AWS Command Line Interface 사용

다음 예제는 AWS CLI로 DetectSyntax 작업을 사용하는 방법을 보여 줍니다. 이 예제는 입력 텍스트의 언어를 지정합니다.

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

aws comprehend detect-syntax \ --region region \ --language-code "en" \ --text "It is raining today in Seattle."

Amazon Comprehend가 다음과 같이 응답합니다.

{ "SyntaxTokens": [ { "Text": "It", "EndOffset": 2, "BeginOffset": 0, "PartOfSpeech": { "Tag": "PRON", "Score": 0.8389829397201538 }, "TokenId": 1 }, { "Text": "is", "EndOffset": 5, "BeginOffset": 3, "PartOfSpeech": { "Tag": "AUX", "Score": 0.9189288020133972 }, "TokenId": 2 }, { "Text": "raining", "EndOffset": 13, "BeginOffset": 6, "PartOfSpeech": { "Tag": "VERB", "Score": 0.9977611303329468 }, "TokenId": 3 }, { "Text": "today", "EndOffset": 19, "BeginOffset": 14, "PartOfSpeech": { "Tag": "NOUN", "Score": 0.9993606209754944 }, "TokenId": 4 }, { "Text": "in", "EndOffset": 22, "BeginOffset": 20, "PartOfSpeech": { "Tag": "ADP", "Score": 0.9999061822891235 }, "TokenId": 5 }, { "Text": "Seattle", "EndOffset": 30, "BeginOffset": 23, "PartOfSpeech": { "Tag": "PROPN", "Score": 0.9940338730812073 }, "TokenId": 6 }, { "Text": ".", "EndOffset": 31, "BeginOffset": 30, "PartOfSpeech": { "Tag": "PUNCT", "Score": 0.9999997615814209 }, "TokenId": 7 } ] }

AWS SDK for Java, Python용 SDK, 또는 AWS SDK for .NET 사용

입력 텍스트의 구문을 감지하는 SDK 예제는 다음과 DetectSyntax 함께 사용하십시오. AWS SDK또는 CLI를 참조하십시오.

실시간 배치 API

최대 25개 문서의 배치를 전송하려면 Amazon Comprehend 실시간 배치 작업을 사용할 수 있습니다. 배치 호출 작업은 요청의 각 문서에 대해 단일 문서 API를 호출하는 것과 동일합니다. 배치 API를 사용하면 애플리케이션 성능이 향상될 수 있습니다. 자세한 내용은 다중 문서 동기 처리을 참조하십시오.

AWS CLI를 사용한 배치 처리

이 예제에서는 AWS Command Line Interface로 배치 API 작업을 사용하는 방법을 보여줍니다. BatchDetectDominantLanguage를 제외한 모든 작업은 입력으로 process.json이라는 다음과 같은 JSON 파일을 사용합니다. 해당 작업에는 LanguageCode 개체가 포함되지 않습니다.

JSON 파일("$$$$$$$$")의 세 번째 문서가 배치 처리 중에 오류를 일으킬 것입니다. 연산 시 응답에 a가 포함되도록 이 BatchItemError구문이 포함됩니다.

{ "LanguageCode": "en", "TextList": [ "I have been living in Seattle for almost 4 years", "It is raining today in Seattle", "$$$$$$$$" ] }

다음은 Unix, Linux, macOS용 형식으로 지정된 예제입니다. Windows의 경우 각 줄의 끝에 있는 백슬래시(\) Unix 연속 문자를 캐럿(^)으로 바꿉니다.

배치(AWS CLI)를 사용한 지배적 언어 감지

BatchDetectDominantLanguage작업을 통해 일괄적으로 각 문서의 주요 언어가 결정됩니다. Amazon Comprehend에서 감지할 수 있는 언어 목록은 지배적 언어을 참조하십시오. 다음 AWS CLI 명령은 BatchDetectDominantLanguage 작업을 호출합니다.

aws comprehend batch-detect-dominant-language \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

다음은 BatchDetectDominantLanguage 작업의 응답입니다.

{ "ResultList": [ { "Index": 0, "Languages":[ { "LanguageCode":"en", "Score": 0.99 } ] }, { "Index": 1 "Languages":[ { "LanguageCode":"en", "Score": 0.82 } ] } ], "ErrorList": [ { "Index": 2, "ErrorCode": "InternalServerException", "ErrorMessage": "Unexpected Server Error. Please try again." } ] }

배치(AWS CLI)를 사용한 개체 감지

BatchDetectEntities작업을 사용하여 문서 묶음에 있는 엔티티를 찾을 수 있습니다. 개체 태그 지정에 대한 자세한 내용은 개체을 참조하십시오. 다음 AWS CLI 명령은 BatchDetectEntities 작업을 호출합니다.

aws comprehend batch-detect-entities \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

배치(AWS CLI)를 사용한 핵심 문구 감지

BatchDetectKeyPhrases연산은 문서 묶음의 주요 명사구를 반환합니다. 다음 AWS CLI 명령은 BatchDetectKeyNounPhrases 작업을 호출합니다.

aws comprehend batch-detect-key-phrases --endpoint endpoint --region region --cli-input-json file://path to input file/process.json

배치(AWS CLI)를 사용한 감성 감지

연산을 사용하여 문서 묶음의 전반적인 감정을 감지할 수 있습니다 BatchDetectSentiment. 다음 AWS CLI 명령은 BatchDetectSentiment 작업을 호출합니다.

aws comprehend batch-detect-sentiment \ --endpoint endpoint \ --region region \ --cli-input-json file://path to input file/process.json

AWS SDK for .NET를 사용한 배치 처리

다음 샘플 프로그램은 와 함께 BatchDetectEntities작업을 사용하는 방법을 보여줍니다AWS SDK for .NET. 서버의 응답에는 성공적으로 처리된 각 문서에 대한 BatchDetectEntitiesItemResult개체가 포함됩니다. 문서를 처리할 때 오류가 발생한 경우 응답의 오류 목록에 기록이 있습니다. 이 예제에서는 오류가 있는 각 문서를 가져와서 재전송합니다.

이 단원의 .NET 예제는 AWS SDK for .NET을 사용합니다. AWS Toolkit for Visual Studio을 사용하면 .NET을 사용하는 AWS 애플리케이션을 개발할 수 있습니다. 여기에는 애플리케이션 배포 및 서비스 관리를 위한 AWS Explorer와 유용한 템플릿이 포함됩니다. AWS에 대한 .NET 개발자의 관점은 .NET 개발자를 위한 AWS 가이드를 참조하십시오.

using System; using System.Collections.Generic; using Amazon.Comprehend; using Amazon.Comprehend.Model; namespace Comprehend { class Program { // Helper method for printing properties static private void PrintEntity(Entity entity) { Console.WriteLine(" Text: {0}, Type: {1}, Score: {2}, BeginOffset: {3} EndOffset: {4}", entity.Text, entity.Type, entity.Score, entity.BeginOffset, entity.EndOffset); } static void Main(string[] args) { AmazonComprehendClient comprehendClient = new AmazonComprehendClient(Amazon.RegionEndpoint.USWest2); List<String> textList = new List<String>() { { "I love Seattle" }, { "Today is Sunday" }, { "Tomorrow is Monday" }, { "I love Seattle" } }; // Call detectEntities API Console.WriteLine("Calling BatchDetectEntities"); BatchDetectEntitiesRequest batchDetectEntitiesRequest = new BatchDetectEntitiesRequest() { TextList = textList, LanguageCode = "en" }; BatchDetectEntitiesResponse batchDetectEntitiesResponse = comprehendClient.BatchDetectEntities(batchDetectEntitiesRequest); foreach (BatchDetectEntitiesItemResult item in batchDetectEntitiesResponse.ResultList) { Console.WriteLine("Entities in {0}:", textList[item.Index]); foreach (Entity entity in item.Entities) PrintEntity(entity); } // check if we need to retry failed requests if (batchDetectEntitiesResponse.ErrorList.Count != 0) { Console.WriteLine("Retrying Failed Requests"); List<String> textToRetry = new List<String>(); foreach(BatchItemError errorItem in batchDetectEntitiesResponse.ErrorList) textToRetry.Add(textList[errorItem.Index]); batchDetectEntitiesRequest = new BatchDetectEntitiesRequest() { TextList = textToRetry, LanguageCode = "en" }; batchDetectEntitiesResponse = comprehendClient.BatchDetectEntities(batchDetectEntitiesRequest); foreach(BatchDetectEntitiesItemResult item in batchDetectEntitiesResponse.ResultList) { Console.WriteLine("Entities in {0}:", textList[item.Index]); foreach (Entity entity in item.Entities) PrintEntity(entity); } } Console.WriteLine("End of DetectEntities"); } } }