Obtener una clasificación personalizada (AWS SDK) - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Obtener una clasificación personalizada (AWS SDK)

Los siguientes ejemplos de código muestran las diferentes variaciones de cómo obtener una clasificación personalizada con los AWS SDK.

Obtención de una clasificación personalizada

El siguiente código muestra cómo obtener una clasificación personalizada para un usuario. Especifique el ID del usuario y una lista de los ID de los elementos que se clasificarán para el usuario. Los ID de los elementos deben estar en los datos que utilizó para entrenar la versión de la solución. Se devuelve una lista de recomendaciones clasificadas. Amazon Personalize considera el primer elemento de la lista que más interesa al usuario.

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();

Incluir los metadatos de los elementos en una clasificación personalizada

Si ha habilitado los metadatos en las recomendaciones para su campaña, puede especificar las columnas de metadatos del conjunto de datos de elementos para incluirlas en la respuesta. Para obtener más información acerca de cómo habilitar los metadatos, consulte Metadatos de los artículos en las recomendaciones.

En el siguiente ejemplo de código se muestra cómo especificar las columnas de metadatos como parte de la solicitud de una clasificación personalizada.

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'])

Obtención de una clasificación personalizada con metadatos contextuales

Utilice el siguiente código para obtener una clasificación personalizada basada en metadatos contextuales. Para context, para cada par clave-valor, proporcione el campo de metadatos como la clave y los datos contextuales como el valor. En el siguiente código de ejemplo, la clave es DEVICE y el valor es mobile phone. Sustituya estos valores y el Campaign ARN y User ID por los suyos propios. Cambie también el valor de inputList por una lista de ID de elementos que se encuentren en los datos que utilizó para entrenar la solución. Amazon Personalize considera el primer elemento de la lista que más interesa al usuario.

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'])