

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon Comprehend API
<a name="using-the-api"></a>

Amazon Comprehend API 支持执行实时（同步）分析的操作以及启动和管理异步分析任务的操作。

您可以直接使用 Amazon Comprehend API 操作符，也可以使用 CLI 或其中一个。 SDKs本章中的示例使用 CLI、Python SDK 和 Java SDK。

要运行 AWS CLI 和 Python 示例，必须安装 AWS CLI。有关更多信息，请参阅 [设置 AWS Command Line Interface (AWS CLI)](setting-up.md#setup-awscli)。

要运行 Java 示例，您需要安装 适用于 Java 的 AWS SDK。有关安装适用于 Java 的 SDK 的说明，请参阅[设置适用于 Java 的 AWS 开发工具包](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html)。

**Topics**
+ [将 Amazon Comprehend 与 SDK 配合 AWS 使用](sdk-general-information-section.md)
+ [使用 API 进行实时分析](using-api-sync.md)
+ [使用 API 执行异步分析任务](api-async.md)

# 将 Amazon Comprehend 与 SDK 配合 AWS 使用
<a name="sdk-general-information-section"></a>

AWS 软件开发套件 (SDKs) 可用于许多流行的编程语言。每个软件开发工具包都提供 API、代码示例和文档，使开发人员能够更轻松地以其首选语言构建应用程序。


| SDK 文档 | 代码示例 | 
| --- | --- | 
| [适用于 C\$1\$1 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-cpp) | [适用于 C\$1\$1 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp) | 
| [AWS CLI](https://docs.aws.amazon.com/cli) | [AWS CLI 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/cli_2_code_examples.html) | 
| [适用于 Go 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-go) | [适用于 Go 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/gov2) | 
| [适用于 Java 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-java) | [适用于 Java 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2) | 
| [适用于 JavaScript 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-javascript) | [适用于 JavaScript 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3) | 
| [适用于 Kotlin 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-kotlin) | [适用于 Kotlin 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin) | 
| [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-net) | [适用于 .NET 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3) | 
| [适用于 PHP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-php) | [适用于 PHP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php) | 
| [AWS Tools for PowerShell](https://docs.aws.amazon.com/powershell) | [AWS Tools for PowerShell 代码示例](https://docs.aws.amazon.com/code-library/latest/ug/powershell_5_code_examples.html) | 
| [适用于 Python (Boto3) 的 AWS SDK](https://docs.aws.amazon.com/pythonsdk) | [适用于 Python (Boto3) 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python) | 
| [适用于 Ruby 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-ruby) | [适用于 Ruby 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/ruby) | 
| [适用于 Rust 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-rust) | [适用于 Rust 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rustv1) | 
| [适用于 SAP ABAP 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-sapabap) | [适用于 SAP ABAP 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap) | 
| [适用于 Swift 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-swift) | [适用于 Swift 的 AWS SDK 代码示例](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/swift) | 

**示例可用性**  
找不到所需的内容？ 通过使用此页面底部的**提供反馈**链接请求代码示例。

# 使用 API 进行实时分析
<a name="using-api-sync"></a>

以下示例演示如何使用适用于.NET、Java 和 Python 的、 AWS SDKs 和 Amazon Com AWS CLI prehend API 进行实时分析。通过示例了解 Amazon Comprehend 同步操作，并将其作为您自己的应用程序的构建块。

本节中的 .NET 示例使用 [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/welcome.html)。您可以使用[AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/welcome.html)来开发使用.NET 的 AWS 应用程序。它包括用于部署应用程序和管理服务的有用模板和 AWS 资源管理器。有关.NET 开发人员的观点 AWS，[请参阅.NET 开发人员AWS 指南](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/welcome.html)。

**Topics**
+ [检测占主要语言](#get-started-api-dominant-language)
+ [检测命名实体](#get-started-api-entities)
+ [检测关键短语](#get-started-api-key-phrases)
+ [确定情绪](#get-started-api-sentiment)
+ [目标情绪的实时分析](#get-started-api-targeted-sentiment)
+ [检测语法](#get-started-api-syntax)
+ [实时批处理 APIs](#get-started-batch)

## 检测占主要语言
<a name="get-started-api-dominant-language"></a>

要确定文本中使用的主导语言，请使用[DetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectDominantLanguage.html)操作。要批量检测多达 25 个文档中的主要语言，请使用该[BatchDetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectDominantLanguage.html)操作。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。

**Topics**
+ [使用 AWS Command Line Interface](#get-started-api-dominant-language-cli)
+ [使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK](#get-started-api-dominant-language-java)

### 使用 AWS Command Line Interface
<a name="get-started-api-dominant-language-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectDominantLanguage` 操作。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

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

Amazon Comprehend 的响应如下：

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

### 使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK
<a name="get-started-api-dominant-language-java"></a>

有关如何确定主要语言的 SDK 示例，请参阅 [`DetectDominantLanguage`与 AWS SDK 或 CLI 配合使用](example_comprehend_DetectDominantLanguage_section.md)。

## 检测命名实体
<a name="get-started-api-entities"></a>

要确定文档中的命名实体，请使用[DetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectEntities.html)操作。要批量检测最多 25 个文档中的实体，请使用[BatchDetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectEntities.html)操作。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。

**Topics**
+ [使用 AWS Command Line Interface](#get-started-api-entities-cli)
+ [使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK](#get-started-api-entities-java)

### 使用 AWS Command Line Interface
<a name="get-started-api-entities-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectEntities` 操作。您必须指定输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) 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"
}
```

### 使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK
<a name="get-started-api-entities-java"></a>

有关如何确定主要语言的 SDK 示例，请参阅 [`DetectEntities`与 AWS SDK 或 CLI 配合使用](example_comprehend_DetectEntities_section.md)。

## 检测关键短语
<a name="get-started-api-key-phrases"></a>

要确定文本中使用的关键名词短语，请使用[DetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectKeyPhrases.html)操作。要批量检测多达 25 个文档中的关键名词短语，请使用该[BatchDetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectKeyPhrases.html)操作。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。

**Topics**
+ [使用 AWS Command Line Interface](#get-started-api-key-phrases-cli)
+ [使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK](#get-started-api-key-phrases-java)

### 使用 AWS Command Line Interface
<a name="get-started-api-key-phrases-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectKeyPhrases` 操作。您必须指定输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) 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
        }
    ]
}
```

### 使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK
<a name="get-started-api-key-phrases-java"></a>

有关检测关键短语的 SDK 示例，请参阅 [`DetectKeyPhrases`与 AWS SDK 或 CLI 配合使用](example_comprehend_DetectKeyPhrases_section.md)。

## 确定情绪
<a name="get-started-api-sentiment"></a>

Amazon Comprehend 提供以下 API 操作，以便分析情绪：
+ [DetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectSentiment.html)— 确定文档的整体情感情绪。
+  [BatchDetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectSentiment.html)— 在一批中确定最多 25 个文档的总体情绪。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。
+  [StartSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartSentimentDetectionJob.html)— 为一组文档启动异步情绪检测作业。
+  [ListSentimentDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListSentimentDetectionJobs.html)— 返回您已提交的情绪检测任务列表。
+  [DescribeSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeSentimentDetectionJob.html)— 获取与指定情绪检测作业关联的属性（包括状态）。
+  [StopSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StopSentimentDetectionJob.html)— 停止指定的正在进行的情绪作业。

**Topics**
+ [使用 AWS Command Line Interface](#get-started-api-sentiment-cli)
+ [使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK](#get-started-api-sentiment-java)

### 使用 AWS Command Line Interface
<a name="get-started-api-sentiment-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectSentiment` 操作。此示例指定了输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) 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"
}
```

### 使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK
<a name="get-started-api-sentiment-java"></a>

有关确定输入文本情绪的 SDK 示例，请参阅 [`DetectSentiment`与 AWS SDK 或 CLI 配合使用](example_comprehend_DetectSentiment_section.md)。

## 目标情绪的实时分析
<a name="get-started-api-targeted-sentiment"></a>

Amazon Comprehend 提供以下 API 操作，用于目标情绪的实时分析：
+ [DetectTargetedSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectTargetedSentiment.html)— 分析文档中提及的实体的情绪。
+  [BatchDetectTargetedSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectTargetedSentiment.html)— 批量分析最多 25 个文档的目标情绪。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。

如果您正在分析的文本不包含任何目标情绪 [实体类型](how-targeted-sentiment.md#how-targeted-sentiment-entities)，则 API 将返回一个空的实体数组。

### 使用 AWS Command Line Interface
<a name="get-started-api-targeted-sentiment-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectTargetedSentiment` 操作。此示例指定了输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) 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
            }
          }
        }
      ]
    }
  ]
}
```

## 检测语法
<a name="get-started-api-syntax"></a>

要解析文本以提取单个单词并确定每个单词的语音部分，请使用[DetectSyntax](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectSyntax.html)操作。要批量解析最多 25 个文档的语法，请使用[BatchDetectSyntax](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectSyntax.html)操作。有关更多信息，请参阅 [实时批处理 APIs](#get-started-batch)。

**Topics**
+ [使用 AWS Command Line Interface.](#get-started-api-syntax-cli)
+ [使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK](#get-started-api-syntax-java)

### 使用 AWS Command Line Interface.
<a name="get-started-api-syntax-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `DetectSyntax` 操作。此示例指定了输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) 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
        }
    ]
}
```

### 使用适用于 Python 的软件开发工具包，或 适用于 Java 的 AWS SDK 适用于 .NET 的 SDK
<a name="get-started-api-syntax-java"></a>

有关检测输入文本语法的 SDK 示例，请参阅 [`DetectSyntax`与 AWS SDK 或 CLI 配合使用](example_comprehend_DetectSyntax_section.md)。

## 实时批处理 APIs
<a name="get-started-batch"></a>

要发送最多 25 个文档的批，您可以使用 Amazon Comprehend 实时批处理操作。调用批处理操作与 APIs 为请求中的每个文档调用单个文档相同。使用批处理 APIs 可以提高应用程序的性能。有关更多信息，请参阅 [多文档同步处理](concepts-processing-modes.md#how-batch)。

**Topics**
+ [使用 Batch 处理 AWS CLI](#batch-cli)
+ [使用 Batch 处理 适用于 .NET 的 AWS SDK](#batch-csharp)

### 使用 Batch 处理 AWS CLI
<a name="batch-cli"></a>

这些示例显示如何通过 AWS Command Line Interface使用批处理 API 操作。除 `BatchDetectDominantLanguage` 之外的所有操作都使用以下名为 `process.json` JSON 文件作为输入。对于该操作，`LanguageCode` 实体不包括在内。

JSON 文件中的第三个文档 (`"$$$$$$$$"`) 会导致批处理时出错。它包含在内是为了使操作在响应[BatchItemError](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchItemError.html)中包含一个。

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

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

**Topics**
+ [使用批处理 (AWS CLI) 检测主要语言](#batch-dominant-language)
+ [使用批处理 (AWS CLI) 检测实体](#batch-entities)
+ [使用批处理 (AWS CLI) 检测关键短语](#batch-key-phrase)
+ [使用批处理 (AWS CLI) 检测情绪](#batch-sentiment)

#### 使用批处理 (AWS CLI) 检测主要语言
<a name="batch-dominant-language"></a>

该[BatchDetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectDominantLanguage.html)操作决定了批次中每个文档的主要语言。有关 Amazon Comprehend 可以检测的语言列表，请参阅 [主要语言](how-languages.md)。以下 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) 检测实体
<a name="batch-entities"></a>

使用该[BatchDetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectEntities.html)操作查找一批文档中存在的实体。有关实体的更多信息，请参阅 [实体](how-entities.md)。以下 AWS CLI 命令调用了 `BatchDetectEntities` 操作。

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

#### 使用批处理 (AWS CLI) 检测关键短语
<a name="batch-key-phrase"></a>

该[BatchDetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectKeyPhrases.html)操作返回一批文档中的关键名词短语。以下 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) 检测情绪
<a name="batch-sentiment"></a>

使用该[BatchDetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectSentiment.html)操作检测一批文档的整体情绪。以下 AWS CLI 命令调用该`BatchDetectSentiment`操作。

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

### 使用 Batch 处理 适用于 .NET 的 AWS SDK
<a name="batch-csharp"></a>

以下示例程序显示了如何将该[BatchDetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectEntities.html)操作与一起使用 适用于 .NET 的 SDK。来自服务器的响应包含成功处理的每个文档的[BatchDetectEntitiesItemResult](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_BatchDetectEntitiesItemResult.html)对象。如果处理文档时出错，则响应中的错误列表中显示记录。该示例获取了每个有错误的文档，然后重新发送它们。

本节中的 .NET 示例使用 [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/welcome.html)。您可以使用[AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/welcome.html)来开发使用.NET 的 AWS 应用程序。它包括用于部署应用程序和管理服务的有用模板和 AWS 资源管理器。有关.NET 开发人员的观点 AWS，[请参阅.NET 开发人员AWS 指南](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/welcome.html)。

```
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");
        }
    }
}
```

# 使用 API 执行异步分析任务
<a name="api-async"></a>

以下示例使用 Amazon Comp APIs rehend 异步创建和管理分析任务，使用。 AWS CLI

**Topics**
+ [Amazon Comprehend 见解的异步分析](api-async-insights.md)
+ [针对目标情绪的异步分析](using-api-targeted-sentiment.md)
+ [用于事件检测的异步分析](get-started-api-events.md)
+ [主题建模的异步分析](get-started-topics.md)

# Amazon Comprehend 见解的异步分析
<a name="api-async-insights"></a>

以下各节使用Amazon Comprehend API 运行异步任务以分析 Amazon Comprehend 的见解。

**Topics**
+ [先决条件](#detect-topics-role-auth)
+ [开始分析任务](#how-start-job)
+ [监控分析任务](#how-monitor-progress)
+ [获取分析结果](#how-get-results)

## 先决条件
<a name="detect-topics-role-auth"></a>

文档必须是 UTF-8 格式的文本文件。您可以提交两种格式文件。您使用的格式取决于您要分析的文档类型，如下表中所述。


| 说明 | Format | 
| --- | --- | 
| 每个文件包含一个输入文档。这最适合大型文档的集合。 | 每个文件一个文档 | 
|  输入是一个或多个文件。文件中的每一行都被视为一个文档。这最适合简短的文档，例如社交媒体帖子。 每行必须以换行符 (LF, \$1n)、回车符 (CR, \$1r) 或两者兼有 (CRLF, \$1r\$1n) 结尾。您不能使用 UTF-8 行分隔符 (u\$12028) 来结束一行。  | 每行一个文档 | 

启动分析任务时，您需要指定输入数据的 S3 位置。URI 必须与您正在调用的 API 终端节点位于同一 AWS 区域。URI 可以指向单个文件，也可以是数据文件集合的前缀。有关更多信息，请参阅 [InputDataConfig](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_InputDataConfig.html) 数据类型。

您必须授权 Amazon Comprehend 访问包含文档集和输出文件的 Amazon S3 存储桶。有关更多信息，请参阅 [异步操作所需的基于角色的权限](security_iam_id-based-policy-examples.md#auth-role-permissions)。

## 开始分析任务
<a name="how-start-job"></a>

要提交分析任务，请使用 Amazon Comprehend 控制台或相应的 `Start*` 操作：
+  [StartDominantLanguageDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartDominantLanguageDetectionJob.html)— 开始工作以检测馆藏中每个文档中的主要语言。有关文档中主要语言的更多信息，请参阅 [主要语言](how-languages.md)。
+  [StartEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEntitiesDetectionJob.html)— 启动一项工作以检测集合中每个文档中的实体。有关实体的更多信息，请参阅 [实体](how-entities.md)。
+  [StartKeyPhrasesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartKeyPhrasesDetectionJob.html)— 开始工作以检测馆藏中每个文档中的关键短语。有关键短语的更多信息，请参阅 [关键短语](how-key-phrases.md)。
+  [StartPiiEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartPiiEntitiesDetectionJob.html)— 开始检测馆藏中每个文档中的个人身份信息 (PII)。有关 PII 的更多信息，请参阅 [检测 PII 实体](how-key-phrases.md)。
+  [StartSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartSentimentDetectionJob.html)— 开始工作以检测集合中每个文档中的情绪。有关情绪更多信息，请参阅 [情绪](how-sentiment.md)。

## 监控分析任务
<a name="how-monitor-progress"></a>

 `Start*` 操作会返回一个 ID，您可以用它来监控任务的进度。

要使用 API 监控进度，您可以使用两种操作之一，具体取决于您是要监控单个任务还是多个任务的进度。

要监控单个分析任务的进度，请使用 `Describe*` 操作。您提供 `Start*` 操作返回的任务 ID。`Describe*` 操作的响应包含任务状态的 `JobStatus` 字段。

要监控多个分析任务的进度，请使用 `List*` 操作。 `List*` 操作会返回您提交给 Amazon Comprehend 的任务列表。响应中包含每个任务的 `JobStatus` 字段，用于告诉您该任务的状态。

如果状态字段设置为 `COMPLETED` 或 `FAILED`， 则任务处理已完成。

要获取单个任务的状态，请使用 `Describe*` 操作进行您正在执行的分析。
+  [DescribeDominantLanguageDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDominantLanguageDetectionJob.html)
+  [DescribeEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeEntitiesDetectionJob.html)
+  [DescribeKeyPhrasesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeKeyPhrasesDetectionJob.html)
+  [DescribePiiEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribePiiEntitiesDetectionJob.html)
+  [DescribeSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeSentimentDetectionJob.html)

要获取多个任务的状态，请使用 `List*` 操作进行您正在执行的分析。
+  [ListDominantLanguageDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListDominantLanguageDetectionJobs.html)
+  [ListEntitiesDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListEntitiesDetectionJobs.html)
+  [ListKeyPhrasesDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListKeyPhrasesDetectionJobs.html)
+  [ListPiiEntitiesDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListPiiEntitiesDetectionJobs.html)
+  [ListSentimentDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListSentimentDetectionJobs.html)

要将结果限制为符合特定条件的任务，请使用 `List*` 操作的 `Filter` 参数。您可以按任务名称、任务状态或提交任务的日期和时间筛选结果。有关更多信息，请参阅 Amazon Comprehend API 参考中每个 `List*` 操作的 `Filter` 参数。

## 获取分析结果
<a name="how-get-results"></a>

分析任务完成后，使用 `Describe*` 操作获取结果的位置。如果任务状态为 `COMPLETED`，则响应将包含一个 `OutputDataConfig` 字段，该字段包含输出文件的 Amazon S3 位置。输出文件 `output.tar.gz` 是包含分析结果的压缩存档。

如果任务状态为 `FAILED`，则响应包括一个 `Message` 字段，用于描述任务未成功完成的原因。

要获取单个任务的状态，请使用相应的 `Describe*` 操作：
+  [DescribeDominantLanguageDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeDominantLanguageDetectionJob.html)
+  [DescribeEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeEntitiesDetectionJob.html)
+  [DescribeKeyPhrasesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeKeyPhrasesDetectionJob.html)
+  [DescribeSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeSentimentDetectionJob.html)

结果以单个文件形式返回，每个文档都有一个 JSON 结构。每个响应文件还包括状态字段设置为 `FAILED` 的任何任务的错误信息。

以下各节显示了两种输入格式的输出示例。

### 获取主要语言的检测结果
<a name="async-dominant-language"></a>

以下是检测主要语言的分析的输出文件示例。输入格式是每行一个文档。有关更多信息，请参阅 [DetectDominantLanguage](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectDominantLanguage.html) 操作。

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

### 获取实体检测的结果
<a name="async-entities"></a>

以下是检测文档中实体的分析输出文件示例。输入格式是每行一个文档。有关更多信息，请参阅 [DetectEntities](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectEntities.html) 操作。输出包含两条错误消息，一条针对过长的文档，另一条针对非 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."}
```

### 获取关键短语的检测结果
<a name="async-key-phrases"></a>

以下是检测文档中关键短语的分析输出文件示例。输入格式是每行一个文档。有关更多信息，请参阅 [DetectKeyPhrases](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectKeyPhrases.html) 操作。

```
{"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) 的检测结果
<a name="async-pii"></a>

以下是检测文档中 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"}
```

### 获取情绪检测的结果
<a name="async-sentiment"></a>

以下是检测文档中情绪的分析输出文件示例。它包含一条错误消息，因为一个文档太长。输入格式是每行一个文档。有关更多信息，请参阅 [DetectSentiment](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DetectSentiment.html) 操作。

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

# 针对目标情绪的异步分析
<a name="using-api-targeted-sentiment"></a>

有关目标情绪实时分析的更多信息，请参阅 [目标情绪的实时分析](using-api-sync.md#get-started-api-targeted-sentiment)。

Amazon Comprehend 提供以下 API 操作来启动和管理异步目标情绪分析：
+  [StartTargetedSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartTargetedSentimentDetectionJob.html)— 为一组文档启动异步定向情绪检测作业。
+  [ListTargetedSentimentDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListTargetedSentimentDetectionJobs.html)— 返回您已提交的目标情绪检测任务列表。
+  [DescribeTargetedSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeTargetedSentimentDetectionJob.html)— 获取与指定的目标情绪检测作业关联的属性（包括状态）。
+  [StopTargetedSentimentDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StopTargetedSentimentDetectionJob.html)— 停止指定的正在进行的目标情绪作业。

**Topics**
+ [开始之前](#api-targeted-sentiment-before)
+ [使用分析目标情绪 AWS CLI](#api-targeted-sentiment-cli)

## 开始之前
<a name="api-targeted-sentiment-before"></a>

在开始之前，请确保您具有：
+ **输入和输出存储桶**：确定要用于输入和输出的 Amazon S3 存储桶。存储桶必须与所调用的 API 位于同一区域。
+ **IAM 服务角色**：您必须拥有一个有权访问您的输入和输出存储桶的 IAM 服务角色。有关更多信息，请参阅 [异步操作所需的基于角色的权限](security_iam_id-based-policy-examples.md#auth-role-permissions)。

## 使用分析目标情绪 AWS CLI
<a name="api-targeted-sentiment-cli"></a>

以下示例演示了如何在 AWS CLI中使用 `StartTargetedSentimentDetectionJob` 操作。此示例指定了输入文本的语言。

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend start-targeted-sentiment-detection-job \
       --job-name "job name" \
       --language-code "en" \
       --cli-input-json file://path to JSON input file
```

对于 `cli-input-json` 参数，请提供包含请求数据的 JSON 文件的路径，如以下示例中所示。

```
{
    "InputDataConfig": {
        "S3Uri": "s3://input bucket/input path",
        "InputFormat": "ONE_DOC_PER_FILE"
    },
    "OutputDataConfig": {
        "S3Uri": "s3://output bucket/output path"
    },
    "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role"
}
```

如果启动任务的请求成功，您将会收到以下响应：

```
{
    "JobStatus": "SUBMITTED",
    "JobArn": "job ARN"
    "JobId": "job ID"
}
```

# 用于事件检测的异步分析
<a name="get-started-api-events"></a>

**Topics**
+ [开始之前](#events-before)
+ [使用检测事件 AWS CLI](#events-cli)
+ [使用列出事件 AWS CLI](#list-events)
+ [使用描述事件 AWS CLI](#describe-events)
+ [获取事件检测结果](#async-events)

要检测文档集中的事件，请使用启动异步作业。[StartEventsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEventsDetectionJob.html)

## 开始之前
<a name="events-before"></a>

在开始之前，请确保您具有：
+ **输入和输出存储桶**：确定要用于输入和输出的 Amazon S3 存储桶。存储桶必须与所调用的 API 位于同一区域。
+ **IAM 服务角色**：您必须拥有一个有权访问您的输入和输出存储桶的 IAM 服务角色。有关更多信息，请参阅 [异步操作所需的基于角色的权限](security_iam_id-based-policy-examples.md#auth-role-permissions)。

## 使用检测事件 AWS CLI
<a name="events-cli"></a>

以下示例演示了将[StartEventsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEventsDetectionJob.html)操作与 AWS CLI

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend start-events-detection-job \
  --region region \
  --job-name job name \
  --cli-input-json file://path to JSON input file
```

对于 `cli-input-json` 参数，请提供包含请求数据的 JSON 文件的路径，如以下示例中所示。

```
{
  "InputDataConfig": {
      "S3Uri": "s3://input bucket/input path",
      "InputFormat": "ONE_DOC_PER_LINE"
  },
  "OutputDataConfig": {
      "S3Uri": "s3://output bucket/output path"
  },
  "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role"
  "LanguageCode": "en",
  "TargetEventTypes": [
      "BANKRUPTCY",
      "EMPLOYMENT",
      "CORPORATE_ACQUISITION",
      "INVESTMENT_GENERAL",
      "CORPORATE_MERGER",
      "IPO",
      "RIGHTS_ISSUE",
      "SECONDARY_OFFERING",
      "SHELF_OFFERING",
      "TENDER_OFFERING",
      "STOCK_SPLIT"
  ]
}
```

如果启动事件检测任务的请求成功，您将收到以下响应：

```
{
  "JobStatus": "SUBMITTED",
  "JobId": "job ID"
}
```

## 使用列出事件 AWS CLI
<a name="list-events"></a>

使用该[ListEventsDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListEventsDetectionJobs.html)操作可以查看您已提交的事件检测作业的列表。该列表包括有关您使用的输入和输出位置以及每个检测任务状态的信息。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend list-events-detection-jobs --region region 
```

您将得到类似于以下内容的 JSON 响应：

```
{
 "EventsDetectionJobPropertiesList": [
    {
       "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role",
       "EndTime": timestamp,
       "InputDataConfig": {
          "InputFormat": "ONE_DOC_PER_LINE",
          "S3Uri": "s3://input bucket/input path"
       },
       "JobId": "job ID",
       "JobName": "job name",
       "JobStatus": "COMPLETED",
       "LanguageCode": "en",
       "Message": "message",
       "OutputDataConfig": {
          "S3Uri": "s3://output bucket/ouput path"
       },
       "SubmitTime": timestamp,
       "TargetEventTypes": [
         "BANKRUPTCY",
         "EMPLOYMENT",
         "CORPORATE_ACQUISITION",
         "INVESTMENT_GENERAL",
         "CORPORATE_MERGER",
         "IPO",
         "RIGHTS_ISSUE",
         "SECONDARY_OFFERING",
         "SHELF_OFFERING",
         "TENDER_OFFERING",
         "STOCK_SPLIT"
  ]
    }
 ],
 "NextToken": "next token"
}
```

## 使用描述事件 AWS CLI
<a name="describe-events"></a>

您可以使用该[DescribeEventsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeEventsDetectionJob.html)操作来获取现有任务的状态。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend describe-events-detection-job \
  --region region \
  --job-id job ID
```

您将收到以下 JSON 响应：

```
{
 "EventsDetectionJobProperties": {
    "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role",
    "EndTime": timestamp,
    "InputDataConfig": {
       "InputFormat": "ONE_DOC_PER_LINE",
       "S3Uri": "S3Uri": "s3://input bucket/input path"
    },
    "JobId": "job ID",
    "JobName": "job name",
    "JobStatus": "job status",
    "LanguageCode": "en",
    "Message": "message",
    "OutputDataConfig": {
       "S3Uri": "s3://output bucket/output path"
    },
    "SubmitTime": timestamp,
    "TargetEventTypes": [
      "BANKRUPTCY",
      "EMPLOYMENT",
      "CORPORATE_ACQUISITION",
      "INVESTMENT_GENERAL",
      "CORPORATE_MERGER",
      "IPO",
      "RIGHTS_ISSUE",
      "SECONDARY_OFFERING",
      "SHELF_OFFERING",
      "TENDER_OFFERING",
      "STOCK_SPLIT"
  ]
 }
}
```

## 获取事件检测结果
<a name="async-events"></a>

以下是检测文档中的事件的分析任务的输出文件示例。输入格式是每行一个文档。

```
{"Entities": [{"Mentions": [{"BeginOffset": 12, "EndOffset": 27, "GroupScore": 1.0, "Score": 0.916355, "Text": "over a year ago", "Type": "DATE"}]}, {"Mentions": [{"BeginOffset": 33, "EndOffset": 39, "GroupScore": 1.0, "Score": 0.996603, "Text": "Amazon", "Type": "ORGANIZATION"}]}, {"Mentions": [{"BeginOffset": 66, "EndOffset": 77, "GroupScore": 1.0, "Score": 0.999283, "Text": "Whole Foods", "Type": "ORGANIZATION"}]}], "Events": [{"Arguments": [{"EntityIndex": 2, "Role": "INVESTEE", "Score": 0.999283}, {"EntityIndex": 0, "Role": "DATE", "Score": 0.916355}, {"EntityIndex": 1, "Role": "INVESTOR", "Score": 0.996603}], "Triggers": [{"BeginOffset": 373, "EndOffset": 380, "GroupScore": 0.999984, "Score": 0.999955, "Text": "acquire", "Type": "CORPORATE_ACQUISITION"}], "Type": "CORPORATE_ACQUISITION"}, {"Arguments": [{"EntityIndex": 2, "Role": "PARTICIPANT", "Score": 0.999283}], "Triggers": [{"BeginOffset": 115, "EndOffset": 123, "GroupScore": 1.0, "Score": 0.999967, "Text": "combined", "Type": "CORPORATE_MERGER"}], "Type": "CORPORATE_MERGER"}], "File": "doc.txt", "Line": 0}
```

有关事件输出文件结构和支持的事件类型的更多信息，请参阅 [Events](how-events.md)。

# 主题建模的异步分析
<a name="get-started-topics"></a>

 要确定文档集中的主题，请使用启动异步作业。[StartTopicsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartTopicsDetectionJob.html)您可以监控用英语或西班牙语撰写的文档中的主题。

**Topics**
+ [开始之前](#topics-before)
+ [使用 AWS Command Line Interface](#topics-cli)
+ [使用适用于 Python 的软件开发工具包或 适用于 .NET 的 SDK](#topic-java)

## 开始之前
<a name="topics-before"></a>

在开始之前，请确保您具有：
+ **输入和输出存储桶**：确定要用于输入和输出的 Amazon S3 存储桶。存储桶必须与所调用的 API 位于同一区域。
+ **IAM 服务角色**：您必须拥有一个有权访问您的输入和输出存储桶的 IAM 服务角色。有关更多信息，请参阅 [异步操作所需的基于角色的权限](security_iam_id-based-policy-examples.md#auth-role-permissions)。

## 使用 AWS Command Line Interface
<a name="topics-cli"></a>

以下示例演示了将`StartTopicsDetectionJob`操作与 AWS CLI

此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend start-topics-detection-job \
                --number-of-topics topics to return \
                --job-name "job name" \
                --region region \
                --cli-input-json file://path to JSON input file
```

对于 `cli-input-json` 参数，请提供包含请求数据的 JSON 文件的路径，如以下示例中所示。

```
{
    "InputDataConfig": {
        "S3Uri": "s3://input bucket/input path",
        "InputFormat": "ONE_DOC_PER_FILE"
    },
    "OutputDataConfig": {
        "S3Uri": "s3://output bucket/output path"
    },
    "DataAccessRoleArn": "arn:aws:iam::account ID:role/data access role"
}
```

如果启动主题检测任务的请求成功，您将收到以下响应：

```
{
    "JobStatus": "SUBMITTED",
    "JobId": "job ID"
}
```

使用该[ListTopicsDetectionJobs](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_ListTopicsDetectionJobs.html)操作可以查看您已提交的主题检测作业的列表。该列表包括有关您使用的输入和输出位置以及每个检测任务状态的信息。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend list-topics-detection-jobs \-- region
```

您将得到类似于以下内容的 JSON 响应：

```
{
    "TopicsDetectionJobPropertiesList": [
        {
            "InputDataConfig": {
                "S3Uri": "s3://input bucket/input path",
                "InputFormat": "ONE_DOC_PER_LINE"
            },
            "NumberOfTopics": topics to return,
            "JobId": "job ID",
            "JobStatus": "COMPLETED",
            "JobName": "job name",
            "SubmitTime": timestamp,
            "OutputDataConfig": {
                "S3Uri": "s3://output bucket/output path"
            },
            "EndTime": timestamp
        },
        {
            "InputDataConfig": {
                "S3Uri": "s3://input bucket/input path",
                "InputFormat": "ONE_DOC_PER_LINE"
            },
            "NumberOfTopics": topics to return,
            "JobId": "job ID",
            "JobStatus": "RUNNING",
            "JobName": "job name",
            "SubmitTime": timestamp,
            "OutputDataConfig": {
                "S3Uri": "s3://output bucket/output path"
            }
        }
    ]
}
```

您可以使用该[DescribeTopicsDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_DescribeTopicsDetectionJob.html)操作来获取现有任务的状态。此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

```
aws comprehend describe-topics-detection-job --job-id job ID 
```

您将收到以下 JSON 响应：

```
{
    "TopicsDetectionJobProperties": {
        "InputDataConfig": {
            "S3Uri": "s3://input bucket/input path",
            "InputFormat": "ONE_DOC_PER_LINE"
        },
        "NumberOfTopics": topics to return,
        "JobId": "job ID",
        "JobStatus": "COMPLETED",
        "JobName": "job name",
        "SubmitTime": timestamp,
        "OutputDataConfig": {
            "S3Uri": "s3://output bucket/ouput path"
        },
        "EndTime": timestamp
    }
}
```

## 使用适用于 Python 的软件开发工具包或 适用于 .NET 的 SDK
<a name="topic-java"></a>

有关如何启动主题建模任务的 SDK 示例，请参阅 [`StartTopicsDetectionJob`与 AWS SDK 或 CLI 配合使用](example_comprehend_StartTopicsDetectionJob_section.md)。