Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le filtrage des recommandations par lots et des segments d'utilisateurs fonctionne presque de la même manière que le filtrage des recommandations en temps réel. Il suit le même flux de travail décrit dans Obtenir des recommandations d'articles par lots ouObtenir des segments d'utilisateurs par lots. Pour filtrer les recommandations par lots ou les segments d'utilisateurs, procédez comme suit :
-
Créez un filtre comme vous le feriez pour les recommandations en temps réel. Pour de plus amples informations, veuillez consulter Filtrer les recommandations en temps réel.
-
Préparez vos données d'entrée et chargez-les sur Amazon S3 comme décrit dans Préparation des données d'entrée pour les recommandations par lots ouPréparation des données d'entrée pour les segments d'utilisateurs. Si votre filtre utilise des paramètres d'espace réservé, vous devez ajouter un
filterValues
objet supplémentaire. Pour de plus amples informations, veuillez consulter Fournir des valeurs de filtre dans votre JSON d'entrée. Si votre filtre n'utilise pas de paramètres d'espace réservé, vos données d'entrée peuvent suivre les exemples fournis dans Exemples JSON d'entrée et de sortie de tâches d'inférence par lots Exemples JSON d'entrée et de sortie de tâches de segmentation par lots -
Créez un emplacement distinct pour vos données de sortie, qu'il s'agisse d'un dossier ou d'un autre compartiment Amazon S3.
-
Créez une tâche d'inférence par lots ou une tâche de segmentation par lots. Lorsque vous créez la tâche, spécifiez l'Amazon Resource Name (ARN) de votre filtre.
-
Lorsque le travail d'inférence ou de segmentation par lots est terminé, récupérez les recommandations ou les segments d'utilisateurs depuis votre emplacement de sortie dans Amazon S3.
Rubriques
Fournir des valeurs de filtre dans votre JSON d'entrée
Pour les filtres comportant des paramètres d'espace réservé, par exemple$GENRE
, vous devez fournir les valeurs des paramètres d'un filterValues
objet dans votre code JSON d'entrée. Pour un filterValues
objet, chaque clé est un nom de paramètre. Chaque valeur correspond au critère que vous transmettez en tant que paramètre. Entourez chaque valeur de guillemets évadés :"filterValues":{"GENRES":"\"drama\""}
. Pour plusieurs valeurs, séparez chaque valeur par une virgule : "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}
Exemple JSON de saisie d'une tâche d'inférence par lots
Voici un exemple des premières lignes d'un fichier d'entrée JSON pour une tâche d'inférence par lots. L'exemple inclut l'filterValues
objet. La GENRES
clé correspond à un $GENRES
espace réservé dans l'expression du filtre. Dans cet exemple, la tâche utilise la recette de personnalisation utilisateur. Pour les recettes RELATED_ITEMS, fournissez un ItemID au lieu du UserId. Pour les recettes PERSONALIZED_RANKING, fournissez l'ID utilisateur et une ItemList.
{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}}
{"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}}
{"userId": "34","filterValues":{"GENRES":"\"drama\""}}
Pour plus d'exemples de tâches d'inférence par lots, saisissez des données par recette, voirExemples JSON d'entrée et de sortie de tâches d'inférence par lots. Vous pouvez utiliser ces exemples comme point de départ et ajouter l'filterValues
objet de l'exemple ci-dessus.
Exemple JSON de saisie de tâche par segment par lots
Voici un exemple des premières lignes d'un fichier d'entrée JSON avec des valeurs de filtre pour une tâche de segmentation par lots. La GENRES
clé correspond à un $GENRES
espace réservé dans l'expression du filtre.
{"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\""}}
Pour plus d'exemples de tâches d'inférence par lots, saisissez des données par recette, voirExemples JSON d'entrée et de sortie de tâches de segmentation par lots. Vous pouvez utiliser ces exemples comme point de départ et ajouter l'filterValues
objet de l'exemple ci-dessus.
Filtrer les flux de travail par lots (console)
Pour filtrer les flux de travail par lots à l'aide de la console Amazon Personalize, vous créez un filtre, puis vous créez une tâche d'inférence par lots ou une tâche de segmentation par lots et vous choisissez le filtre. Pour obtenir des instructions détaillées étape par étape, reportez-vous Création d'une tâche d'inférence par lots (console) aux sections etCréation d'une tâche de segmentation par lots (console).
Filtrer les flux de travail par lots (AWS
SDKs)
Pour filtrer les recommandations de lots avec le AWS SDKs, créez un filtre et incluez le FilterArn
paramètre dans la CreateBatchSegmentJob demande CreateBatchInferenceJob ou.
Le code suivant montre comment créer une tâche d'inférence par lots à l'aide d'un filtre utilisant le AWS SDK for Python (Boto3). Nous vous recommandons d'utiliser un autre emplacement pour vos données de sortie (soit un dossier, soit un autre compartiment Amazon S3). Pour une explication complète de tous les champs, voirCréation d'une tâche d'inférence par lots ()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
"}}
)