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.
Filtrer les recommandations par lots et les segments d'utilisateurs (ressources personnalisées)
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 sur les articles en 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 entrée JSON. 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 d'entrée et de sortie JSON 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 le nom de ressource Amazon (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 entrée JSON
Pour les filtres comportant des paramètres d'espace réservé$GENRE
, par exemple, vous devez fournir les valeurs des paramètres d'un filterValues
objet dans votre entréeJSON. 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 de saisie JSON d'une tâche d'inférence par lots
Voici un exemple des premières lignes d'un fichier JSON d'entrée 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. La tâche présentée dans cet exemple utilise la recette de personnalisation par l'utilisateur. Pour RELATED _ ITEMS recettes, indiquez un itemId au lieu duuserId. Pour les RANKING recettes PERSONALIZED _, fournissez le nom d'utilisateur et unitemList.
{"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 d'entrée et de sortie JSON 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.
JSONExemple de saisie d'une tâche par segment de lot
Voici un exemple des premières lignes d'un fichier JSON d'entrée contenant 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 avec 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
"}} )