

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 文件處理模式
<a name="concepts-processing-modes"></a>

Amazon Comprehend 支援三種文件處理模式。您選擇的模式取決於您需要處理的文件數量，以及您需要立即檢視結果的時間：
+ **單一文件同步** – 您可以使用單一文件呼叫 Amazon Comprehend，並立即接收同步回應，並傳送到您的應用程式 （或 主控台）。
+ **多文件同步 –** 您可以使用最多 25 個文件的集合呼叫 Amazon Comprehend API，並接收同步回應。
+ **非同步批次** – 對於大量文件集合，請將文件放入 Amazon S3 儲存貯體，並啟動非同步任務 （使用主控台或 API 操作） 來分析文件。Amazon Comprehend 會將分析結果儲存在您在請求中指定的 S3 儲存貯體/資料夾中。

**Topics**
+ [單一文件處理](#how-single)
+ [多個文件同步處理](#how-batch)
+ [非同步批次處理](#how-async)

## 單一文件處理
<a name="how-single"></a>

單一文件操作是同步操作，可將文件分析的結果直接傳回至您的應用程式。當您建立可一次處理一個文件的互動式應用程式時，請使用單一文件同步操作。

如需同步 API 操作的詳細資訊，請參閱 [使用內建模型進行即時分析](realtime-console-analysis.md)（適用於主控台） 和 [使用 API 進行即時分析](using-api-sync.md)。

## 多個文件同步處理
<a name="how-batch"></a>

當您有多個文件要處理時，您可以使用 `Batch*` API 操作一次將多個文件傳送至 Amazon Comprehend。每個請求最多可以傳送 25 個文件。Amazon Comprehend 會傳回回應清單，針對請求中的每個文件各傳送一份。使用這些操作提出的請求是同步的。您的應用程式會呼叫 操作，然後等待 服務的回應。

使用 `Batch*`操作與呼叫請求中每個文件的單一文件 APIs相同。使用這些 APIs 可以為您的應用程式提供更好的效能。

每個 APIs的輸入都是 JSON 結構，其中包含要處理的文件。對於 以外的所有操作`BatchDetectDominantLanguage`，您必須設定輸入語言。每個請求只能設定一種輸入語言。例如，以下是 `BatchDetectEntities`操作的輸入。它包含兩份文件，並以英文顯示。

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

來自 `Batch*`操作的回應包含兩個清單： `ResultList`和 `ErrorList`。對於每個已成功處理的文件， `ResultList`包含一筆記錄。請求中每個文件的結果與您在文件上執行單一文件操作時取得的結果相同。每個文件的結果都會根據輸入檔案中文件的順序指派索引。`BatchDetectEntities` 操作的回應為：

```
{
   "ResultList"  : [
      {
         "Index": 0,
         "Entities": [
            {
               "Text": "Seattle", 
               "Score": 0.95, 
               "Type": "LOCATION", 
               "BeginOffset": 22, 
               "EndOffset": 29
            },
            {
               "Text": "almost 4 years", 
               "Score": 0.89, 
               "Type": "QUANTITY", 
               "BeginOffset": 34, 
               "EndOffset": 48
            }
         ]
      },
      {
         "Index": 1,
         "Entities": [
            {
              "Text": "today",
              "Score": 0.87,
              "Type": "DATE",
              "BeginOffset": 14,
              "EndOffset": 19
            },
            {
               "Text": "Seattle",
               "Score": 0.96,
               "Type": "LOCATION",
               "BeginOffset": 23,
               "EndOffset": 30
            }
         ]
      }
   ],
   "ErrorList": []
}
```

當請求發生錯誤時，回應會包含`ErrorList`可識別包含錯誤之文件的 。文件是透過其在輸入清單中的索引來識別。例如，對 `BatchDetectLanguage`操作的下列輸入包含無法處理的文件：

```
{
   "TextList": [
     "hello friend", 
     "$$$$$$",
     "hola amigo"
   ]       
}
```

Amazon Comprehend 的回應包含錯誤清單，可識別包含錯誤的文件：

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

如需同步批次 API 操作的詳細資訊，請參閱 [即時批次 APIs](using-api-sync.md#get-started-batch)。

## 非同步批次處理
<a name="how-async"></a>

若要分析大型文件和大型文件集合，請使用 Amazon Comprehend 非同步操作。

若要分析文件的集合，您通常會執行下列步驟：

1. 將文件存放在 Amazon S3 儲存貯體中。

1. 啟動一或多個分析任務來分析文件。

1. 監控分析任務的進度。

1. 任務完成時，從 S3 儲存貯體擷取分析結果。

如需使用非同步 API 操作的詳細資訊，請參閱 [使用主控台執行分析任務](analysis-jobs.md)（主控台） 和 [使用 API 的非同步分析任務](api-async.md)。