개인 맞춤형 순위 받기(AWS SDKs) - Personalize

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

개인 맞춤형 순위 받기(AWS SDKs)

다음 코드 샘플은 AWS SDKs를 사용하여 개인 맞춤형 순위를 받을 방법을 다양하게 보여줍니다.

개인 맞춤형 순위 받기

다음 코드는 사용자의 개인 맞춤형 순위를 받는 방법을 보여줍니다. 사용자 ID와 사용자IDs에 대해 순위를 매길 항목 목록을 지정합니다. 항목은 솔루션 버전을 훈련하는 데 사용한 데이터에 있어야 IDs 합니다. 순위가 지정된 추천의 목록이 반환됩니다. 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에 사용한 데이터에 IDs 있는 항목 목록으로 변경합니다. 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'])