API を使用したリアルタイムの分析 - Amazon Comprehend

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API を使用したリアルタイムの分析

以下の例では、 AWS CLI と、AWS SDKにNET、Java、おおびPythonを使用して、リアルタイム分析に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、SDK for Python、または AWS SDK for .NET の使用

主要言語を判別する方法を示す SDK の例については、「または DetectDominantLanguageAWS 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、SDK for Python、または 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、SDK for Python、または AWS SDK for .NET の使用

キーフレーズを検出する SDK の例については、「または DetectKeyPhrasesAWS 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、SDK for Python、または AWS SDK for .NET の使用

入力テキストの感情を決定する SDK の例については、「または DetectSentimentAWS 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、SDK for Python、または AWS SDK for .NET の使用

入力テキストの構文を検出する SDK の例については、「または DetectSyntaxで を使用する AWS SDK CLI」 を参照してください。

リアルタイムバッチ API

Amazon Comprehend のリアルタイムバッチオペレーションを使用すると、最大 25 件のドキュメントのバッチを送信できます。バッチオペレーションを呼び出すことは、リクエスト内のドキュメントごとに単一ドキュメント API を呼び出すことと同じです。バッチ API を使用すると、アプリケーションのパフォーマンスが向上します。詳細については、「複数ドキュメントの同期処理」を参照してください。

AWS CLI によるバッチ処理

以下の例では、AWS Command Line Interface でバッチ API オペレーションを使用する方法を示します。BatchDetectDominantLanguage 以外のすべての操作では、 process.json という名前の次のJSONファイルがインプットとして使用されます。その操作に LanguageCode エンティティは含まれません。

JSON ファイル ("$$$$$$$$") の 3 番目のドキュメントは、バッチ処理中にエラーの原因となります。これは、オペレーションがレスポンス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"); } } }