本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 API 進行即時分析
下列範例示範如何使用 Amazon Comprehend API 進行即時分析,使用和AWS開發套件 (適用於 .NET、Java 和 Python)。AWS CLI使用這些範例來了解 Amazon Comprehend 同步操作,以及做為您自己應用程式的建置區塊。
本節中的 .NET 範例使用 AWS SDK for .NET。您可以使用AWS Toolkit for Visual Studio來開發使用 .NET 的AWS應用程式。它包括實用的範本和AWS資源管理器,用於部署應用程式和管理服務。如需的 .NET 開發人員觀點AWS,請參閱 .NET 開發人員AWS指南。
檢測主導語言
若要判斷文字中使用的主要語言,請使用此DetectDominantLanguage作業。若要在批次中偵測最多 25 個文件中的主要語言,請使用該BatchDetectDominantLanguage操作。如需詳細資訊,請參閱 即時批次處理 API。
使用 AWS Command Line Interface
下列範例示範如何使用DetectDominantLanguage
作業與AWS CLI。
此範例格式適用於 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 的軟體開發套件,或 AWS SDK for .NET
如需如何判斷主要語言的 SDK 範例,請參閱搭DetectDominantLanguage配使用 AWS SDK或 CLI。
偵測具名實體
若要決定文件中的具名實體,請使用此DetectEntities作業。若要在批次中偵測最多 25 個文件中的實體,請使用此BatchDetectEntities作業。如需詳細資訊,請參閱 即時批次處理 API。
使用 AWS Command Line Interface
下列範例示範如何使用DetectEntities
操作AWS CLI。您必須指定輸入文字的語言。
此範例格式適用於 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 的軟體開發套件,或 AWS SDK for .NET
如需如何判斷主要語言的 SDK 範例,請參閱搭DetectEntities配使用 AWS SDK或 CLI。
偵測關鍵片語
若要決定文字中使用的關鍵名詞片語,請使用此DetectKeyPhrases操作。若要在批次中偵測最多 25 個文件中的關鍵名詞片語,請使用該BatchDetectKeyPhrases操作。如需詳細資訊,請參閱 即時批次處理 API。
使用 AWS Command Line Interface
下列範例示範如何使用DetectKeyPhrases
作業與AWS CLI。您必須指定輸入文字的語言。
此範例格式適用於 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 的軟體開發套件,或 AWS SDK for .NET
如需偵測關鍵片語的 SDK 範例,請參閱搭DetectKeyPhrases配使用 AWS SDK或 CLI。
決定情緒
Amazon Comprehend 提供下列 API 操作來分析情緒:
DetectSentiment— 決定文件的整體情緒。
-
BatchDetectSentiment— 判斷一批最多 25 個文件中的整體情緒。如需更多資訊,請參閱 即時批次處理 API
StartSentimentDetectionJob— 啟動文件集合的非同步情緒偵測工作。
ListSentimentDetectionJobs— 傳回您已提交的情緒偵測工作清單。
DescribeSentimentDetectionJob— 取得與指定情緒偵測工作相關聯的內容 (包括狀態)。
StopSentimentDetectionJob— 停止指定的進行中情緒工作。
使用 AWS Command Line Interface
下列範例示範如何使用DetectSentiment
作業與AWS CLI。這個例子指定了輸入文本的語言。
此範例格式適用於 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 的軟體開發套件,或 AWS SDK for .NET
如需決定輸入文字情緒的 SDK 範例,請參閱搭DetectSentiment配使用 AWS SDK或 CLI。
針對目標情緒的即時分析
Amazon Comprehend 提供下列 API 操作,以進行目標情緒即時分析:
DetectTargetedSentiment— 分析文件中提到的實體的情緒。
-
BatchDetectTargetedSentiment— 批次分析多達 25 份文件的目標情緒。如需更多資訊,請參閱 即時批次處理 API
如果您正在分析的文字不包含任何目標情緒圖元類型,API 會傳回空白的實體陣列。
使用 AWS Command Line Interface
下列範例示範如何使用DetectTargetedSentiment
作業與AWS CLI。這個例子指定了輸入文本的語言。
此範例格式適用於 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。
下列範例示範如何使用DetectSyntax
作業與AWS CLI。這個例子指定了輸入文本的語言。
此範例格式適用於 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 的軟體開發套件,或 AWS SDK for .NET
如需偵測輸入文字語法的 SDK 範例,請參閱搭DetectSyntax配使用 AWS SDK或 CLI。
即時批次處理 API
若要傳送最多 25 份文件的批次,您可以使用 Amazon Comprehend 即時批次操作。呼叫批次作業與呼叫要求中每個文件的單一文件 API 相同。使用批次 API 可以為您的應用程式帶來更好的效能。如需詳細資訊,請參閱 多文檔同步處理。
使用 Batch 處理 AWS CLI
這些範例說明如何使用AWS Command Line Interface. 除了BatchDetectDominantLanguage
使用下面的 JSON 文件稱為process.json
輸入的所有操作。對於該操作,LanguageCode
實體不包括在內。
JSON 檔案 ("$$$$$$$$"
) 中的第三個文件會在批次處理期間造成錯誤。它包括在內,以便操作將包括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 接續字元斜線 (\)。
使用 batch(AWS CLI)檢測主要語言
此BatchDetectDominantLanguage作業會決定批次中每個文件的主要語言。如需 Amazon Comprehend 可偵測到的語言清單,請參閱。主要语言下列AWS CLI命令會呼叫BatchDetectDominantLanguage
作業。
aws comprehend batch-detect-dominant-language \ --endpoint
endpoint
\ --regionregion
\ --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
\ --regionregion
\ --cli-input-json file://path to input file
/process.json
使用批處理(AWS CLI)檢測關鍵短語
該BatchDetectKeyPhrases操作返回一批文檔中的關鍵名詞短語。下列AWS CLI命令會呼叫BatchDetectKeyNounPhrases
作業。
aws comprehend batch-detect-key-phrases --endpoint
endpoint
--regionregion
--cli-input-json file://path to input file
/process.json
使用批次偵測情緒 (AWS CLI)
使用操作偵測批次文件的整體情BatchDetectSentiment緒。下列AWS CLI命令會呼叫BatchDetectSentiment
作業。
aws comprehend batch-detect-sentiment \ --endpoint
endpoint
\ --regionregion
\ --cli-input-json file://path to input file
/process.json
使用 Batch 處理 AWS SDK for .NET
下列範例程式展示如何搭配使用此BatchDetectEntities作業AWS SDK for .NET。來自服務器的響應包含每個成功處理的文檔的BatchDetectEntitiesItemResult對象。如果處理文件時發生錯誤,回應中的錯誤清單中會有記錄。該示例獲取每個帶有錯誤的文檔並重新發送它們。
本節中的 .NET 範例使用 AWS SDK for .NET. 您可以使用AWS Toolkit for Visual Studio來開發使用 .NET 的AWS應用程式。它包括實用的範本和AWS資源管理器,用於部署應用程式和管理服務。如需的 .NET 開發人員觀點AWS,請參閱 .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"); } } }