

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

# 篩選批次建議和使用者區段 （自訂資源）
<a name="filter-batch"></a>

篩選批次建議和使用者區段的運作方式與篩選即時建議幾乎相同。它遵循 [取得批次項目建議](getting-batch-recommendations.md)或 中所述的相同工作流程[取得批次使用者區段](getting-user-segments.md)。若要篩選批次建議或使用者區段，請執行下列動作：

1.  建立篩選條件，就像建立即時建議一樣。如需詳細資訊，請參閱[篩選即時建議](filter-real-time.md)。

1. 準備輸入資料並將其上傳至 Amazon S3，如 [準備批次建議的輸入資料](batch-data-upload.md)或 中所述[準備使用者區段的輸入資料](prepare-input-data-user-segment.md)。如果您的篩選條件使用預留位置參數，您必須新增其他`filterValues`物件。如需詳細資訊，請參閱[在輸入 JSON 中提供篩選條件值](#providing-filter-values)。如果您的篩選條件不使用預留位置參數，您的輸入資料可以遵循 中的範例 [批次推論任務輸入和輸出 JSON 範例](batch-data-upload.md#batch-inference-job-json-examples) [批次區段任務輸入和輸出 JSON 範例](prepare-input-data-user-segment.md#batch-segment-job-json-examples) 

1.  為您的輸出資料建立個別位置，可以是資料夾或不同的 Amazon S3 儲存貯體。

1.  建立[批次推論任務](creating-batch-inference-job.md)或[批次區段任務](creating-batch-seg-job.md)。當您建立任務時，請指定篩選條件的 Amazon Resource Name (ARN)。

1.  當批次推論或批次區段任務完成時，請從 Amazon S3 中的輸出位置擷取建議或使用者區段。

**Topics**
+ [在輸入 JSON 中提供篩選條件值](#providing-filter-values)
+ [篩選批次工作流程 （主控台）](#filter-batch-recommendations-console)
+ [篩選批次工作流程AWS SDKs)](#filter-batch-recommendations-sdk)

## 在輸入 JSON 中提供篩選條件值
<a name="providing-filter-values"></a>

對於具有預留位置參數的篩選條件，例如 `$GENRE`，您必須提供輸入 JSON 中`filterValues`物件中參數的值。對於`filterValues`物件，每個索引鍵都是參數名稱。每個值都是您要做為參數傳遞的條件。以逸出引號括住每個值：`"filterValues":{"GENRES":"\"drama\""}`。對於多個值，請以逗號分隔每個值： `"filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}`

**批次推論任務輸入 JSON 範例**

以下是*批次推論任務*的 JSON 輸入檔案前幾行範例。此範例包含 `filterValues` 物件。`GENRES` 索引鍵對應至篩選條件表達式中的`$GENRES`預留位置。此範例中的任務使用使用者個人化配方。對於 RELATED\$1ITEMS 配方，請提供 itemId 而非 userId。對於 PersonalIZED\$1RANKING 配方，請提供 userID 和 itemList。

```
{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}}
{"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}}
{"userId": "34","filterValues":{"GENRES":"\"drama\""}}
```

如需依配方批次推論任務輸入資料的更多範例，請參閱 [批次推論任務輸入和輸出 JSON 範例](batch-data-upload.md#batch-inference-job-json-examples)。您可以使用這些範例做為起點，並從上述範例新增`filterValues`物件。

**批次區段任務輸入 JSON 範例**

以下是 JSON 輸入檔案前幾行的範例，其中包含*批次區段任務*的篩選條件值。`GENRES` 索引鍵對應至篩選條件表達式中的`$GENRES`預留位置。

```
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}}
{"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}}
{"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}
```

如需依配方批次推論任務輸入資料的更多範例，請參閱 [批次區段任務輸入和輸出 JSON 範例](prepare-input-data-user-segment.md#batch-segment-job-json-examples)。您可以使用這些範例做為起點，並從上述範例新增`filterValues`物件。

## 篩選批次工作流程 （主控台）
<a name="filter-batch-recommendations-console"></a>

若要使用 Amazon Personalize 主控台篩選批次工作流程，您可以建立篩選條件，然後建立批次推論任務或批次區段任務，然後選擇篩選條件。如需完整的逐步說明，請參閱 [建立批次推論任務 （主控台）](creating-batch-inference-job.md#batch-console)和 [建立批次區段任務 （主控台）](creating-batch-seg-job.md#batch-segment-console)。

## 篩選批次工作流程AWS SDKs)
<a name="filter-batch-recommendations-sdk"></a>

若要使用 AWS SDKs 篩選批次建議，請建立篩選條件，並在 [CreateBatchInferenceJob](API_CreateBatchInferenceJob.md)或 [CreateBatchSegmentJob](API_CreateBatchSegmentJob.md)請求中包含 `FilterArn` 參數。

 下列程式碼說明如何使用 建立具有篩選條件的批次推論任務 適用於 Python (Boto3) 的 AWS SDK。建議您為輸出資料使用不同的位置 （資料夾或不同的 Amazon S3 儲存貯體）。如需所有欄位的完整說明，請參閱 [建立批次推論任務 (AWS SDKs)](creating-batch-inference-job.md#batch-sdk)。

```
import boto3
     
personalize = boto3.client("personalize")
 
personalize_rec.create_batch_inference_job (
    solutionVersionArn = "Solution version ARN",
    jobName = "Batch job name",
    roleArn = "IAM role ARN",
    filterArn = "Filter ARN",
    jobInput = 
        {"s3DataSource": {"path": "S3 input path"}},
    jobOutput =
        {"S3DataDestination": {"path": "S3 output path"}}
)
```