

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Ottenere una classifica personalizzata (risorse personalizzate)
<a name="rankings"></a>

Una classifica personalizzata è un elenco degli elementi raccomandati che sono riclassificati per un utente specifico. Per ottenere classificazioni personalizzate, chiama l'operatore dell'[GetPersonalizedRanking](API_RS_GetPersonalizedRanking.md)API o ottieni consigli da una campagna nella console.

**Nota**  
La soluzione di supporto della campagna deve essere stata creata con una ricetta di tipo PERSONALIZED\$1RANKING. Per ulteriori informazioni, consulta [Scegliere una ricetta](working-with-predefined-recipes.md).

**Topics**
+ [Come funzionano i punteggi di classifica personalizzati](#how-ranking-scoring-works)
+ [Ottenere una classifica personalizzata (console)](get-ranking-recommendations-console.md)
+ [Ottenere una classifica personalizzata ()AWS CLI](get-personalized-rankings-cli.md)
+ [Ottenere una classifica personalizzata ()AWS SDKs](get-personalized-rankings-sdk.md)
+ [Notebook di esempio con classificazione personalizzata](#real-time-recommendations-personalized-ranking-example)

## Come funzionano i punteggi di classifica personalizzati
<a name="how-ranking-scoring-works"></a>

Come i punteggi restituiti dall'`GetRecommendations`operazione per le soluzioni create con le ricette User-Personalization-v 2 e User-Personalization, la somma dei `GetPersonalizedRanking` punteggi è 1, ma solo gli elementi di input ricevono punteggi e i punteggi dei consigli tendono ad essere più alti. Se un elemento non era presente durante l'ultimo allenamento, riceve un punteggio pari a 0.

Matematicamente, la funzione di punteggio per GetPersonalizedRanking è identica a`GetRecommendations`, tranne per il fatto che considera solo gli elementi di input. Ciò significa che i punteggi più vicini a 1 diventano più probabili, poiché ci sono meno altre scelte per dividere il punteggio:

![\[Rappresenta la formula utilizzata per calcolare i punteggi per ogni elemento in una classifica.\]](http://docs.aws.amazon.com/it_it/personalize/latest/dg/images/get_personalized_ranking.png)


# Ottenere una classifica personalizzata (console)
<a name="get-ranking-recommendations-console"></a>

Per ottenere un posizionamento personalizzato per un utente dalla console Amazon Personalize, scegli la campagna che stai utilizzando, quindi fornisci il suo ID utente, specifica l'elenco di elementi che desideri classificare per l'utente, opzionalmente scegli un filtro e, facoltativamente, fornisci qualsiasi dato contestuale. 

**Per ottenere una classifica personalizzata per un utente**

1. Apri la console Amazon Personalize a [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e accedi al tuo account. 

1. Scegli il gruppo di set di dati che contiene la campagna che stai utilizzando.

1. Nel riquadro di navigazione scegliere **Campaigns (Campagne)**.

1. Nella pagina **Campagne**, scegli la campagna target.

1.  In **Test campaign results**, inserisci **l'ID utente** dell'utente per cui desideri ricevere consigli. 

1. Per **Articolo IDs**, inserisci l'elenco degli elementi da classificare per l'utente.

1. Facoltativamente, scegli un filtro. Per ulteriori informazioni, consulta [Suggerimenti di filtraggio e segmenti di utenti](filter.md). 

1. Se hai abilitato i metadati nei consigli per la tua campagna, nelle **colonne del set di dati Items**, scegli le colonne di metadati che desideri includere nei risultati dei consigli. Per informazioni sull'attivazione dei metadati, consulta. [Metadati degli articoli nei consigli](campaigns.md#create-campaign-return-metadata)

1. Se la tua campagna utilizza metadati contestuali (per i requisiti, vedi[Maggiore rilevanza delle raccomandazioni con metadati contestuali](contextual-metadata.md)), fornisci facoltativamente dati contestuali. 

   Per ogni contesto, per la **Chiave**, inserisci il campo dei metadati e per il **Valore**, inserisci i dati contestuali. 

1. Scegli **Ottieni una classifica personalizzata degli articoli**. Viene visualizzata una tabella contenente gli articoli classificati in ordine di interesse previsto per l'utente. 

# Ottenere una classifica personalizzata ()AWS CLI
<a name="get-personalized-rankings-cli"></a>

I seguenti esempi di codice mostrano le diverse varianti di come ottenere un posizionamento personalizzato con. AWS CLI

**Topics**
+ [Ottenere una classifica personalizzata](#personalized-ranking-cli-sample)
+ [Inclusione dei metadati degli articoli in una classifica personalizzata](#getting-personalized-ranking-with-metadata-cli)

## Ottenere una classifica personalizzata
<a name="personalized-ranking-cli-sample"></a>

 Usa il seguente `get-personalized-ranking` comando per ottenere una classifica personalizzata con AWS CLI. Specificate l'Amazon Resource Name (ARN) per la campagna, l'ID utente per l'utente e fornite un elenco di elementi IDs per gli articoli da classificare per l'utente (ciascuno separato da uno spazio). Gli elementi da classificare devono essere inclusi nei dati che hai usato per addestrare la versione della soluzione. Viene visualizzato un elenco di consigli classificati. Amazon Personalize considera il primo elemento dell'elenco di maggiore interesse per l'utente. 

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

## Inclusione dei metadati degli articoli in una classifica personalizzata
<a name="getting-personalized-ranking-with-metadata-cli"></a>

Se hai abilitato i metadati nei consigli per la tua campagna, puoi specificare le colonne di metadati del set di dati Items da includere nella risposta. Per informazioni sull'attivazione dei metadati, consulta. [Metadati degli articoli nei consigli](campaigns.md#create-campaign-return-metadata)

Il seguente esempio di codice mostra come specificare le colonne di metadati come parte della richiesta di classificazione personalizzata.

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

# Ottenere una classifica personalizzata ()AWS SDKs
<a name="get-personalized-rankings-sdk"></a>

I seguenti esempi di codice mostrano le diverse varianti di come ottenere un posizionamento personalizzato con. AWS SDKs

**Topics**
+ [Ottenere una classifica personalizzata](#personalized-ranking-sdk-sample)
+ [Inclusione dei metadati degli articoli in una classifica personalizzata](#getting-personalized-ranking-with-metadata-sdk)
+ [Ottenere una classifica personalizzata utilizzando metadati contestuali](#personalized-ranking-contextual-metadata-example)

## Ottenere una classifica personalizzata
<a name="personalized-ranking-sdk-sample"></a>

Il codice seguente mostra come ottenere una classifica personalizzata per un utente. Specificate l'ID dell'utente e un elenco di elementi IDs da classificare per l'utente. L'elemento IDs deve essere incluso nei dati utilizzati per addestrare la versione della soluzione. Viene restituito un elenco di consigli classificati. Amazon Personalize considera il primo elemento dell'elenco di maggiore interesse per l'utente.

------
#### [ 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();
```

------

## Inclusione dei metadati degli articoli in una classifica personalizzata
<a name="getting-personalized-ranking-with-metadata-sdk"></a>

Se hai abilitato i metadati nei consigli per la tua campagna, puoi specificare le colonne di metadati del set di dati Items da includere nella risposta. Per informazioni sull'attivazione dei metadati, consulta. [Metadati degli articoli nei consigli](campaigns.md#create-campaign-return-metadata)

Il seguente esempio di codice mostra come specificare le colonne di metadati come parte della richiesta di classificazione personalizzata.

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

## Ottenere una classifica personalizzata utilizzando metadati contestuali
<a name="personalized-ranking-contextual-metadata-example"></a>

Utilizzare il codice seguente per ottenere una classifica personalizzata basata sui metadati contestuali. Infatti`context`, per ogni coppia chiave-valore, fornisci il campo dei metadati come chiave e i dati contestuali come valore. Nel codice di esempio seguente, la chiave è `DEVICE` e il valore è. `mobile phone` Sostituisci questi valori e la `Campaign ARN` e `User ID` con i tuoi. Passa anche `inputList` a un elenco IDs di elementi presenti nei dati utilizzati per addestrare la soluzione. Amazon Personalize considera il primo elemento dell'elenco di maggiore interesse per l'utente.

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

## Notebook di esempio con classificazione personalizzata
<a name="real-time-recommendations-personalized-ranking-example"></a>

 [Per un esempio di taccuino Jupyter che mostra come utilizzare la ricetta Personalized-Ranking, vedi Personalize Ranking Example.](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/personalized_ranking/personalize_ranking_example.ipynb) 