

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Como obter uma classificação personalizada (recursos personalizados)
<a name="rankings"></a>

Uma classificação personalizada é uma lista de itens recomendados que são reclassificados para um usuário específico. Para obter classificações personalizadas, chame a operação da API [GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md) ou obtenha recomendações a partir de uma campanha no console.

**nota**  
A solução por trás da campanha precisa ter sido criada com uma fórmula do tipo PERSONALIZED\$1RANKING. Para obter mais informações, consulte [Escolher uma fórmula](working-with-predefined-recipes.md).

**Topics**
+ [Como funciona a pontuação de classificação personalizada](#how-ranking-scoring-works)
+ [Como obter uma classificação personalizada (console)](get-ranking-recommendations-console.md)
+ [Como obter uma classificação personalizada (AWS CLI)](get-personalized-rankings-cli.md)
+ [Como obter uma classificação personalizada (AWS SDKs)](get-personalized-rankings-sdk.md)
+ [Exemplo de bloco de notas do Personalized-Ranking](#real-time-recommendations-personalized-ranking-example)

## Como funciona a pontuação de classificação personalizada
<a name="how-ranking-scoring-works"></a>

Assim como ocorre com as pontuações retornadas pela operação `GetRecommendations` para as soluções criadas com as fórmulas User-Personalization-v2 e User-Personalization, as pontuações `GetPersonalizedRanking` somam 1, mas somente os itens de entrada recebem pontuações e as pontuações de recomendação tendem a ser maiores. Se um item não estava presente durante o treinamento mais recente, ele recebe uma pontuação 0.

Matematicamente, a função de pontuação para GetPersonalizedRanking é idêntica `GetRecommendations`, exceto que considera apenas os itens de entrada. Isso significa que as pontuações mais próximas de 1 se tornam mais prováveis, pois há menos opções adicionais para dividir a pontuação:

![\[Representa a fórmula usada para calcular as pontuações de cada item em uma classificação.\]](http://docs.aws.amazon.com/pt_br/personalize/latest/dg/images/get_personalized_ranking.png)


# Como obter uma classificação personalizada (console)
<a name="get-ranking-recommendations-console"></a>

Para obter uma classificação personalizada para um usuário no console do Amazon Personalize, escolha a campanha que você está usando e, em seguida, forneça o ID de usuário e especifique a lista de itens que você deseja classificar para o usuário, ou escolha um filtro e forneça dados de contexto. 

**Para obter uma classificação personalizada para um usuário**

1. Acesse [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) para abrir o console do Amazon Personalize e faça login na sua conta. 

1. Escolha o grupo de conjunto de dados que contém a campanha que você está usando.

1. No painel de navegação, selecione **Campaigns (Campanhas)**.

1. Na página **Campanhas**, escolha a campanha desejada.

1.  Em **Resultados da campanha de teste**, insira o **ID do usuário** para o qual deseja obter recomendações. 

1. Em **IDs de item**, insira a lista de itens a serem classificados para o usuário.

1. Ou então, selecione um filtro. Para obter mais informações, consulte [Como filtrar recomendações e segmentos de usuários](filter.md). 

1. Se você habilitou os metadados nas recomendações da campanha, para as **colunas do conjunto de dados de itens**, selecione as colunas de metadados a serem incluídas nos resultados das recomendações. Para obter informações sobre como habilitar metadados, consulte [Habilitar metadados nas recomendações](campaigns.md#create-campaign-return-metadata).

1. Se sua campanha usa metadados contextuais (consulte os requisitos em [Como aumentar a relevância das recomendações com metadados contextuais](contextual-metadata.md)), forneça dados contextuais. 

   Para cada contexto, em **Chave**, insira o campo de metadados e, em **Valor**, insira os dados contextuais. 

1. Escolha **Obter classificações personalizadas de itens**. É exibida uma tabela contendo os itens classificados em ordem de interesse previsto para o usuário. 

# Como obter uma classificação personalizada (AWS CLI)
<a name="get-personalized-rankings-cli"></a>

Os exemplos de código a seguir mostram diferentes variações de como obter uma classificação personalizada com a AWS CLI.

**Topics**
+ [Obter uma classificação personalizada](#personalized-ranking-cli-sample)
+ [Incluir metadados do item em uma classificação personalizada](#getting-personalized-ranking-with-metadata-cli)

## Obter uma classificação personalizada
<a name="personalized-ranking-cli-sample"></a>

 Use o comando `get-personalized-ranking` a seguir para obter uma classificação personalizada com AWS CLI. Especifique o nome do recurso da Amazon (ARN) para sua campanha, o ID de usuário para o usuário e forneça uma lista de IDs de itens para os itens a serem classificados (cada um separado por um espaço). Os itens a serem classificados devem estar nos dados que você usou para treinar a versão da solução. É exibida uma lista de recomendações classificadas. O Amazon Personalize considera o primeiro item na lista de interesses para o usuário. 

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

## Incluir metadados do item em uma classificação personalizada
<a name="getting-personalized-ranking-with-metadata-cli"></a>

Se você habilitou os metadados nas recomendações da campanha, é possível especificar as colunas de metadados do conjunto de dados de itens a serem incluídas na resposta. Para obter informações sobre como habilitar metadados, consulte [Habilitar metadados nas recomendações](campaigns.md#create-campaign-return-metadata).

O exemplo de código a seguir mostra como especificar as colunas de metadados como parte da solicitação de uma classificação personalizada.

```
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"\"]}"
```

# Como obter uma classificação personalizada (AWS SDKs)
<a name="get-personalized-rankings-sdk"></a>

Os exemplos de código a seguir mostram diferentes variações de como obter uma classificação personalizada com os SDKs da AWS.

**Topics**
+ [Obter uma classificação personalizada](#personalized-ranking-sdk-sample)
+ [Incluir metadados do item em uma classificação personalizada](#getting-personalized-ranking-with-metadata-sdk)
+ [Obter uma classificação personalizada usando metadados contextuais](#personalized-ranking-contextual-metadata-example)

## Obter uma classificação personalizada
<a name="personalized-ranking-sdk-sample"></a>

Use o código a seguir para obter uma classificação personalizada para um usuário. Especifique o ID do usuário e uma lista de IDs de itens a serem classificados para o usuário. Os IDs de itens devem estar nos dados que você usou para treinar a versão da solução. É retornada uma lista de recomendações classificadas. O Amazon Personalize considera o primeiro item na lista de interesses para o usuário.

------
#### [ 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 metadados do item em uma classificação personalizada
<a name="getting-personalized-ranking-with-metadata-sdk"></a>

Se você habilitou os metadados nas recomendações da campanha, é possível especificar as colunas de metadados do conjunto de dados de itens a serem incluídas na resposta. Para obter informações sobre como habilitar metadados, consulte [Habilitar metadados nas recomendações](campaigns.md#create-campaign-return-metadata).

O exemplo de código a seguir mostra como especificar as colunas de metadados como parte da solicitação de uma classificação 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'])
```

## Obter uma classificação personalizada usando metadados contextuais
<a name="personalized-ranking-contextual-metadata-example"></a>

Use o código a seguir para obter uma classificação personalizada com base em metadados contextuais. Para `context`, em cada par de chave-valor, forneça o campo de metadados como chave e os dados contextuais como valor. No código de exemplo a seguir, a chave é `DEVICE` e o valor é `mobile phone`. Substitua esses valores e `Campaign ARN` e `User ID` por seus próprios valores. Além disso, mude `inputList` por uma lista de IDs de itens que estão nos dados usados para treinar a solução. O Amazon Personalize considera o primeiro item na lista de interesses para o usuário.

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

## Exemplo de bloco de notas do Personalized-Ranking
<a name="real-time-recommendations-personalized-ranking-example"></a>

 Para ver um exemplo de caderno Jupyter que mostra como usar a fórmula Personalized-Ranking, consulte [Exemplo de classificação personalizada](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb). 