

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é (ressources personnalisées)
<a name="rankings"></a>

Un classement personnalisé est une liste d'éléments recommandés ayant fait l'objet d'un nouveau classement pour un utilisateur spécifique. Pour obtenir des classements personnalisés, appelez l'opération [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) API ou obtenez des recommandations à partir d'une campagne dans la console.

**Note**  
La solution utilisée pour la campagne doit avoir été créée à l'aide d'une recette de type PERSONALIZED\$1RANKING. Pour de plus amples informations, veuillez consulter [Choisir une recette](working-with-predefined-recipes.md).

**Topics**
+ [Comment fonctionne le classement personnalisé](#how-ranking-scoring-works)
+ [Obtenir un classement personnalisé (console)](get-ranking-recommendations-console.md)
+ [Obtenir un classement personnalisé (AWS CLI)](get-personalized-rankings-cli.md)
+ [Obtenir un classement personnalisé (AWS SDKs)](get-personalized-rankings-sdk.md)
+ [Exemple de carnet de notes à classement personnalisé](#real-time-recommendations-personalized-ranking-example)

## Comment fonctionne le classement personnalisé
<a name="how-ranking-scoring-works"></a>

À l'instar des scores renvoyés par l'`GetRecommendations`opération pour les solutions créées avec les recettes User-Personalization-v 2 et de personnalisation par l'utilisateur, la somme des `GetPersonalizedRanking` scores est égale à 1, mais seuls les éléments d'entrée reçoivent des scores et les scores de recommandation ont tendance à être plus élevés. Si un objet n'était pas présent lors du dernier entraînement, il reçoit un score de 0.

Mathématiquement, la fonction de notation pour GetPersonalizedRanking est identique à`GetRecommendations`, sauf qu'elle ne prend en compte que les éléments d'entrée. Cela signifie que des scores plus proches de 1 deviennent plus probables, car les choix pour diviser le score sont plus réduits :

![\[Décrit la formule utilisée pour calculer les scores de chaque élément d'un classement.\]](http://docs.aws.amazon.com/fr_fr/personalize/latest/dg/images/get_personalized_ranking.png)


# Obtenir un classement personnalisé (console)
<a name="get-ranking-recommendations-console"></a>

Pour obtenir un classement personnalisé pour un utilisateur depuis la console Amazon Personalize, choisissez la campagne que vous utilisez, puis fournissez son ID utilisateur, spécifiez la liste des éléments que vous souhaitez classer pour l'utilisateur, choisissez éventuellement un filtre et fournissez éventuellement des données contextuelles. 

**Pour obtenir un classement personnalisé pour un utilisateur**

1. Ouvrez la console Amazon Personalize [https://console.aws.amazon.com/personalize/chez](https://console.aws.amazon.com/personalize/home) vous et connectez-vous à votre compte. 

1. Choisissez le groupe de jeux de données qui contient la campagne que vous utilisez.

1. Dans le volet de navigation, choisissez **Campaigns (Campagnes)**.

1. Sur la page **Campagnes**, choisissez la campagne cible.

1.  Sous **Résultats de la campagne de test**, entrez le **nom** d'utilisateur de l'utilisateur pour lequel vous souhaitez obtenir des recommandations. 

1. Pour **Article IDs**, entrez la liste des éléments à classer pour l'utilisateur.

1. Choisissez éventuellement un filtre. Pour de plus amples informations, veuillez consulter [Recommandations de filtrage et segments d'utilisateurs](filter.md). 

1. Si vous avez activé les métadonnées dans les recommandations pour votre campagne, pour les **colonnes du jeu de données Items**, choisissez les colonnes de métadonnées que vous souhaitez inclure dans les résultats des recommandations. Pour plus d'informations sur l'activation des métadonnées, consultez[Métadonnées des éléments dans les recommandations](campaigns.md#create-campaign-return-metadata).

1. Si votre campagne utilise des métadonnées contextuelles (pour les exigences, voir[Améliorer la pertinence des recommandations grâce aux métadonnées contextuelles](contextual-metadata.md)), fournissez éventuellement des données contextuelles. 

   Pour chaque contexte, pour la **clé**, entrez le champ de métadonnées, et pour la **valeur**, entrez les données du contexte. 

1. Choisissez **Obtenir un classement personnalisé des articles**. Un tableau contenant les éléments classés par ordre d'intérêt prévu pour l'utilisateur apparaît. 

# Obtenir un classement personnalisé (AWS CLI)
<a name="get-personalized-rankings-cli"></a>

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

**Topics**
+ [Obtenir un classement personnalisé](#personalized-ranking-cli-sample)
+ [Inclure les métadonnées des articles dans un classement personnalisé](#getting-personalized-ranking-with-metadata-cli)

## Obtenir un classement personnalisé
<a name="personalized-ranking-cli-sample"></a>

 Utilisez la `get-personalized-ranking` commande suivante pour obtenir un classement personnalisé avec AWS CLI. Spécifiez le nom de ressource Amazon (ARN) pour votre campagne, le nom d'utilisateur de l'utilisateur et fournissez une liste des articles IDs à classer pour l'utilisateur (chacun séparé par un espace). Les éléments à classer doivent figurer dans les données que vous avez utilisées pour entraîner la version de la solution. La liste des recommandations classées s'affiche. Amazon Personalize considère que le premier élément de la liste présente le plus d'intérêt pour l'utilisateur. 

```
aws personalize-runtime get-personalized-ranking \
--campaign-arn Campaign ARN \
--user-id 12 \
--input-list 3 4 10 8 12 7
```

## Inclure les métadonnées des articles dans un classement personnalisé
<a name="getting-personalized-ranking-with-metadata-cli"></a>

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, consultez[Métadonnées des éléments dans les recommandations](campaigns.md#create-campaign-return-metadata).

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

```
aws personalize-runtime get-personalized-ranking \
--campaign-arn Campaign ARN \
--user-id 12 \
--input-list 3 4 10 8 12 7
--metadata-columns "{\"ITEMS\": ["\"columnNameA"\","\"columnNameB"\"]}"
```

# Obtenir un classement personnalisé (AWS SDKs)
<a name="get-personalized-rankings-sdk"></a>

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

**Topics**
+ [Obtenir un classement personnalisé](#personalized-ranking-sdk-sample)
+ [Inclure les métadonnées des articles dans un classement personnalisé](#getting-personalized-ranking-with-metadata-sdk)
+ [Obtenir un classement personnalisé à l'aide de métadonnées contextuelles](#personalized-ranking-contextual-metadata-example)

## Obtenir un classement personnalisé
<a name="personalized-ranking-sdk-sample"></a>

Le code suivant montre comment obtenir un classement personnalisé pour un utilisateur. Spécifiez l'identifiant de l'utilisateur et une liste d'éléments IDs à classer pour l'utilisateur. L'élément IDs doit se trouver 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é
<a name="getting-personalized-ranking-with-metadata-sdk"></a>

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, consultez[Métadonnées des éléments dans les recommandations](campaigns.md#create-campaign-return-metadata).

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
<a name="personalized-ranking-contextual-metadata-example"></a>

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 est`mobile phone`. Remplacez ces valeurs et le `Campaign ARN` et `User ID` par les vôtres. Passez également `inputList` à une liste des éléments IDs 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'])
```

## Exemple de carnet de notes à classement personnalisé
<a name="real-time-recommendations-personalized-ranking-example"></a>

 [Pour un exemple de bloc-notes Jupyter expliquant comment utiliser la recette de classement personnalisé, voir l'exemple de Personalize Ranking.](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb) 