本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
篩選批次建議和使用者區段的運作方式幾乎與篩選即時建議相同。它遵循 取得批次項目建議或 中所述的相同工作流程取得批次使用者區段。若要篩選批次建議或使用者區段,請執行下列動作:
-
建立篩選條件,就像建立即時建議一樣。如需詳細資訊,請參閱篩選即時建議。
-
準備您的輸入資料並將其上傳至 Amazon S3,如 準備批次建議的輸入資料或 中所述準備使用者區段的輸入資料。如果您的篩選條件使用預留位置參數,您必須新增其他
filterValues
物件。如需詳細資訊,請參閱在輸入 JSON 中提供篩選條件值。如果您的篩選條件未使用預留位置參數,則輸入資料可以遵循 中的範例 批次推論任務輸入和輸出 JSON 範例 批次區段任務輸入和輸出 JSON 範例 -
為您的輸出資料建立不同的位置,可以是資料夾或不同的 Amazon S3 儲存貯體。
-
建立批次推論任務或批次區段任務。當您建立任務時,請指定篩選條件的 Amazon Resource Name (ARN)。
-
當批次推論或批次區段任務完成時,請從 Amazon S3 中的輸出位置擷取建議或使用者區段。
在輸入 JSON 中提供篩選條件值
對於具有預留位置參數的篩選條件,例如 $GENRE
,您必須提供輸入 JSON 中filterValues
物件中參數的值。對於 filterValues
物件,每個金鑰都是參數名稱。每個值都是您以參數形式傳遞的條件。以逸出引號括住每個值:"filterValues":{"GENRES":"\"drama\""}
。對於多個值,請以逗號分隔每個值: "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}
批次推論任務輸入 JSON 範例
以下是批次推論任務 JSON 輸入檔案前幾行的範例。此範例包含 filterValues
物件。GENRES
索引鍵對應至篩選條件表達式中的$GENRES
預留位置。此範例中的任務使用使用者個人化配方。對於 RELATED_ITEMS 配方,請提供 itemId 而非 userId。對於個人化_RANKING 配方,請提供 userID 和 itemList。
{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}}
{"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}}
{"userId": "34","filterValues":{"GENRES":"\"drama\""}}
如需依配方批次推論任務輸入資料的詳細資訊,請參閱批次推論任務輸入和輸出 JSON 範例。您可以使用這些範例做為起點,並從上述範例新增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 範例。您可以使用這些範例做為起點,並從上述範例新增filterValues
物件。
篩選批次工作流程 (主控台)
若要使用 Amazon Personalize 主控台篩選批次工作流程,您可以建立篩選條件,然後建立批次推論任務或批次區段任務,然後選擇篩選條件。如需完整的逐步說明,請參閱 建立批次推論任務 (主控台)和 建立批次區段任務 (主控台)。
篩選批次工作流程 (AWS SDK) SDKs
若要使用 AWS SDKs 篩選批次建議,請建立篩選條件,並在 CreateBatchInferenceJob或 CreateBatchSegmentJob請求中包含 FilterArn
參數。
下列程式碼說明如何使用 建立具有篩選條件的批次推論任務 適用於 Python (Boto3) 的 AWS SDK。我們建議您使用不同的位置來輸出資料 (資料夾或不同的 Amazon S3 儲存貯體)。如需所有欄位的完整說明,請參閱建立批次推論任務 (AWS SDKs)。
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
"}}
)