맞춤형 순위 (AWS SDK) 가져오기 - Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

맞춤형 순위 (AWS SDK) 가져오기

다음 코드 샘플은 SDK를 사용하여 개인화된 순위를 얻는 방법이 얼마나 다양한지 보여줍니다. AWS

개인 맞춤형 순위 받기

다음 코드는 사용자의 개인 맞춤형 순위를 받는 방법을 보여줍니다. 사용자 ID와 사용자에 대해 순위를 매길 항목 ID의 목록을 지정합니다. 항목 ID는 솔루션 버전을 학습시키는 데 사용한 데이터에 포함되어야 합니다. 순위가 지정된 추천의 목록이 반환됩니다. Personalize는 목록에서 사용자가 가장 관심을 갖는 첫 번째 항목을 고려합니다.

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

개인 맞춤형 순위에 항목 메타데이터 포함

캠페인에 대한 추천에서 메타데이터를 활성화한 경우, 응답에 포함할 항목 데이터 세트 메타데이터 열을 지정할 수 있습니다. 메타데이터 활성화에 대한 자세한 내용은 권장 사항의 항목 메타데이터 섹션을 참조하세요.

다음 코드 샘플은 개인 맞춤형 순위 요청의 일부로 메타데이터 열을 지정하는 방법을 보여줍니다.

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

상황별 메타데이터를 사용하여 개인 맞춤형 순위 받기

컨텍스트 메타데이터를 기반으로 개인 맞춤형 순위를 받으려면 다음 코드를 사용합니다. context의 경우, 각 키-값 쌍에 대해 메타데이터 필드를 키로 제공하고 컨텍스트 데이터를 값으로 제공합니다. 다음 샘플 코드에서는 키가 DEVICE이고 값은 mobile phone입니다. 이들 값과 Campaign ARNUser ID를 사용자의 값으로 바꿉니다. inputList을 솔루션을 학습시키는 데 사용한 데이터에 들어 있는 항목 ID의 목록으로 변경합니다. Personalize는 목록에서 사용자가 가장 관심을 갖는 첫 번째 항목을 고려합니다.

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