Obtenir un classement personnalisé (AWS SDK) - Amazon Personalize

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.

Obtenir un classement personnalisé (AWS SDK)

Les exemples de code suivants montrent les différentes variantes de la manière d'obtenir un classement personnalisé avec les AWS SDK.

Obtenir un classement personnalisé

Le code suivant montre comment obtenir un classement personnalisé pour un utilisateur. Spécifiez l'identifiant de l'utilisateur et une liste des identifiants d'articles à classer pour l'utilisateur. Les identifiants des éléments doivent figurer dans les données que vous avez utilisées pour entraîner la version de la solution. Une liste de recommandations classées est renvoyée. Amazon Personalize considère que le premier élément de la liste présente le plus d'intérêt pour l'utilisateur.

SDK for Python (Boto3)
import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign arn", userId = "UserID", inputList = ['ItemID1','ItemID2'] ) print("Personalized Ranking") for item in response['personalizedRanking']: print (item['itemId'])
SDK for Java 2.x
public static List<PredictedItem> getRankedRecs(PersonalizeRuntimeClient personalizeRuntimeClient, String campaignArn, String userId, ArrayList<String> items) { try { GetPersonalizedRankingRequest rankingRecommendationsRequest = GetPersonalizedRankingRequest.builder() .campaignArn(campaignArn) .userId(userId) .inputList(items) .build(); GetPersonalizedRankingResponse recommendationsResponse = personalizeRuntimeClient.getPersonalizedRanking(rankingRecommendationsRequest); List<PredictedItem> rankedItems = recommendationsResponse.personalizedRanking(); int rank = 1; for (PredictedItem item : rankedItems) { System.out.println("Item ranked at position " + rank + " details"); System.out.println("Item Id is : " + item.itemId()); System.out.println("Item score is : " + item.score()); System.out.println("---------------------------------------------"); rank++; } return rankedItems; } catch (PersonalizeRuntimeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { GetPersonalizedRankingCommand } from "@aws-sdk/client-personalize-runtime"; import { personalizeRuntimeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: "REGION"}); // Set the ranking request parameters. export const getPersonalizedRankingParam = { campaignArn: "CAMPAIGN_ARN", /* required */ userId: 'USER_ID', /* required */ inputList: ["ITEM_ID_1", "ITEM_ID_2", "ITEM_ID_3", "ITEM_ID_4"] } export const run = async () => { try { const response = await personalizeRuntimeClient.send(new GetPersonalizedRankingCommand(getPersonalizedRankingParam)); console.log("Success!", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

Inclure les métadonnées des articles dans un classement personnalisé

Si vous avez activé les métadonnées dans les recommandations pour votre campagne, vous pouvez spécifier les colonnes de métadonnées du jeu de données Items à inclure dans la réponse. Pour plus d'informations sur l'activation des métadonnées, consultezMétadonnées des éléments dans les recommandations.

L'exemple de code suivant montre comment spécifier les colonnes de métadonnées dans le cadre de votre demande de classement personnalisé.

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign arn", userId = "UserID", inputList = ['ItemID1','ItemID2'], metadataColumns = { "ITEMS": ['columnNameA','columnNameB'] } ) print("Personalized Ranking") for item in response['personalizedRanking']: print (item['itemId']) print (item['metadata'])

Obtenir un classement personnalisé à l'aide de métadonnées contextuelles

Utilisez le code suivant pour obtenir un classement personnalisé basé sur les métadonnées contextuelles. Pour context chaque paire clé-valeur, indiquez le champ de métadonnées comme clé et les données contextuelles comme valeur. Dans l'exemple de code suivant, la clé est DEVICE et la valeur estmobile phone. Remplacez ces valeurs et le Campaign ARN et User ID par les vôtres. Passez également inputList à une liste d'identifiants d'éléments figurant dans les données que vous avez utilisées pour entraîner la solution. Amazon Personalize considère que le premier élément de la liste présente le plus d'intérêt pour l'utilisateur.

import boto3 personalizeRt = boto3.client('personalize-runtime') response = personalizeRt.get_personalized_ranking( campaignArn = "Campaign ARN", userId = "User ID", inputList = ['ItemID1', 'ItemID2'], context = { 'DEVICE': 'mobile phone' } ) print("Personalized Ranking") for item in response['personalizedRanking']: print(item['itemId'])