Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial ini menunjukkan cara menggunakan SDK for Python [Boto3] untuk membuat grup kumpulan data Domain untuk domain VIDEO_ON_DEMAND. Dalam tutorial ini, Anda membuat recommender untuk pilihan Top untuk kasus penggunaan Anda.
Untuk menghindari menimbulkan biaya yang tidak perlu, ketika Anda menyelesaikan latihan memulai ini menghapus sumber daya yang Anda buat dalam tutorial ini. Untuk informasi selengkapnya, lihat Membersihkan sumber daya.
Prasyarat
Berikut ini adalah langkah-langkah prasyarat untuk menggunakan contoh Python dalam panduan ini:
SelesaikanMemulai prasyarat untuk mengatur izin yang diperlukan dan buat data pelatihan. Jika Anda menggunakan data sumber Anda sendiri, pastikan bahwa data Anda diformat seperti di prasyarat.
SiapkanAWS SDK for Python [Boto3] lingkungan Anda seperti yang ditentukan dalamMenyiapkan AWS SDK.
Tutorial
Dalam langkah-langkah berikut, Anda memverifikasi lingkungan Anda dan membuat klien SDK for Python [Boto3] untuk Amazon Personalize. Kemudian Anda mengimpor data, membuat recommender untuk Pilihan teratas untuk kasus penggunaan Anda, dan mendapatkan rekomendasi.
Setelah Anda menyelesaikan prasyarat, jalankan contoh Python berikut untuk mengonfirmasi bahwa lingkungan Anda dikonfigurasi dengan benar. Kode ini juga membuat klien Amazon Personalize boto3 yang Anda gunakan dalam tutorial ini. Jika lingkungan Anda dikonfigurasi dengan benar, daftar resep yang tersedia akan ditampilkan dan Anda dapat menjalankan contoh lain dalam tutorial ini.
import boto3
personalizeRt = boto3.client['personalize-runtime']
personalize = boto3.client['personalize']
response = personalize.list_recipes[]
for recipe in response['recipes']:
print [recipe]
Setelah Anda membuat klien Amazon Personalize boto3 dan memverifikasi lingkungan Anda, impor data historis yang Anda buat saat Anda menyelesaikanMemulai prasyarat. Untuk mengimpor data historis ke Amazon Personalize, lakukan hal berikut:
Gunakan kode berikut untuk membuat skema di Amazon Personalize. Ganti
gs-domain-interactions-schema
dengan nama untuk skema.import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema[ name='
gs-domain-interactions-schema
', schema=json.dumps[schema], domain='VIDEO_ON_DEMAND' ] interactions_schema_arn = create_interactions_schema_response['schemaArn'] print[json.dumps[create_interactions_schema_response, indent=2]]Buat grup kumpulan data dengan kode berikut. Ganti
dataset group name
dengan nama untuk grup kumpulan data.response = personalize.create_dataset_group[ name = '
dataset group name
', domain = 'VIDEO_ON_DEMAND' ] dsg_arn = response['datasetGroupArn'] description = personalize.describe_dataset_group[datasetGroupArn = dsg_arn]['datasetGroup'] print['Name: ' + description['name']] print['ARN: ' + description['datasetGroupArn']] print['Status: ' + description['status']]Buat kumpulan data Interaksi di grup kumpulan data baru Anda dengan kode berikut. Berikan dataset nama dan memberikan
schema_arn
dan
0 dari langkah-langkah sebelumnya.import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema[ name='
gs-domain-interactions-schema
', schema=json.dumps[schema], domain='VIDEO_ON_DEMAND' ] interactions_schema_arn = create_interactions_schema_response['schemaArn'] print[json.dumps[create_interactions_schema_response, indent=2]]response = personalize.create_dataset[ name = '
interactions-dataset-name
', schemaArn = interactions_schema_arn, datasetGroupArn = dsg_arn, datasetType = 'INTERACTIONS' ] dataset_arn = response['datasetArn']Impor data Anda dengan pekerjaan impor dataset dengan kode berikut. Kode menggunakan metode describe_dataset_import_job untuk melacak status pekerjaan.
Lulus yang berikut sebagai parameter: nama untuk pekerjaan,
1 dari langkah sebelumnya, jalur bucket Amazon S3 [import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema[ name='
gs-domain-interactions-schema
', schema=json.dumps[schema], domain='VIDEO_ON_DEMAND' ] interactions_schema_arn = create_interactions_schema_response['schemaArn'] print[json.dumps[create_interactions_schema_response, indent=2]]
2/import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema[ name='
gs-domain-interactions-schema
', schema=json.dumps[schema], domain='VIDEO_ON_DEMAND' ] interactions_schema_arn = create_interactions_schema_response['schemaArn'] print[json.dumps[create_interactions_schema_response, indent=2]]
3/ratings.csv] tempat Anda menyimpan data pelatihan, dan ARN peran layanan IAM Anda. Anda menciptakan peran ini sebagai bagian dariMemulai prasyarat. Amazon Personalize memerlukan izin untuk mengakses bucket. Untuk informasi tentang pemberian akses, lihatMemberikan akses Amazon Personalize ke sumber daya Amazon S3.import json schema = { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "EVENT_TYPE", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" } create_interactions_schema_response = personalize.create_schema[ name='
gs-domain-interactions-schema
', schema=json.dumps[schema], domain='VIDEO_ON_DEMAND' ] interactions_schema_arn = create_interactions_schema_response['schemaArn'] print[json.dumps[create_interactions_schema_response, indent=2]]import time response = personalize.create_dataset_import_job[ jobName = '
JobName
', datasetArn = 'dataset_arn
', dataSource = {'dataLocation':'s3://bucket/file.csv
'}, roleArn = 'role_arn
' ] dataset_interactions_import_job_arn = response['datasetImportJobArn'] description = personalize.describe_dataset_import_job[ datasetImportJobArn = dataset_interactions_import_job_arn]['datasetImportJob'] print['Name: ' + description['jobName']] print['ARN: ' + description['datasetImportJobArn']] print['Status: ' + description['status']] max_time = time.time[] + 3*60*60 # 3 hours while time.time[] < max_time: describe_dataset_import_job_response = personalize.describe_dataset_import_job[ datasetImportJobArn = dataset_interactions_import_job_arn ] status = describe_dataset_import_job_response["datasetImportJob"]['status'] print["Interactions DatasetImportJob: {}".format[status]] if status == "ACTIVE" or status == "CREATE FAILED": break time.sleep[60]
Setelah pekerjaan impor dataset Anda selesai, Anda siap membuat recommender. Gunakan kode berikut untuk membuat recommender. Lulus berikut sebagai parameter: nama untuk pemberi rekomendasi, Amazon Resource Name [ARN] grup kumpulan data Anda, dan
import json
schema = {
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
create_interactions_schema_response = personalize.create_schema[
name='gs-domain-interactions-schema
',
schema=json.dumps[schema],
domain='VIDEO_ON_DEMAND'
]
interactions_schema_arn = create_interactions_schema_response['schemaArn']
print[json.dumps[create_interactions_schema_response, indent=2]]
4 untuk ARN resep. Kode menggunakan metode describe_recommender untuk melacak status recommender.import time
create_recommender_response = personalize.create_recommender[
name = 'gs-python-top-picks',
recipeArn = 'arn:aws:personalize:::recipe/aws-vod-top-picks',
datasetGroupArn = dsg_arn
]
recommender_arn = create_recommender_response['recommenderArn']
print['Recommender ARN:' + recommender_arn]
max_time = time.time[] + 3*60*60 # 3 hours
while time.time[] < max_time:
version_response = personalize.describe_recommender[
recommenderArn = recommender_arn
]
status = version_response["recommender"]["status"]
if status == "ACTIVE":
print["Creation succeeded for {}".format[recommender_arn]]
elif status == "CREATE FAILED":
print["Creation failed for {}".format[recommender_arn]]
if status == "ACTIVE":
break
else:
print["Recommender creation is still in progress"]
time.sleep[60]
Setelah Anda membuat recommender, Anda menggunakannya untuk mendapatkan rekomendasi dengan kode berikut. Berikan Amazon Resource Name [ARN] dari yang Anda buat pada langkah sebelumnya, dan ID pengguna [misalnya] dari yang Anda buat pada langkah sebelumnya, dan ID pengguna [misalnya] dari yang Anda buat pada langkah sebelumnya, dan ID pengguna [misalnya
import json
schema = {
"type": "record",
"name": "Interactions",
"namespace": "com.amazonaws.personalize.schema",
"fields": [
{
"name": "USER_ID",
"type": "string"
},
{
"name": "ITEM_ID",
"type": "string"
},
{
"name": "EVENT_TYPE",
"type": "string"
},
{
"name": "TIMESTAMP",
"type": "long"
}
],
"version": "1.0"
}
create_interactions_schema_response = personalize.create_schema[
name='gs-domain-interactions-schema
',
schema=json.dumps[schema],
domain='VIDEO_ON_DEMAND'
]
interactions_schema_arn = create_interactions_schema_response['schemaArn']
print[json.dumps[create_interactions_schema_response, indent=2]]
5]. Metode ini mencetak daftar item yang direkomendasikan.response = personalizeRt.get_recommendations[
recommenderArn = "arn:aws:personalize:us-west-2:014025156336:recommender/gs-python-top-picks-89",
userId = '123'
]
print["Recommended items"]
for item in response['itemList']:
print [item['itemId']]
Memulai menggunakan Amazon Personalize API dengan notebook Jupyter [iPython]
Untuk mulai membuat grup kumpulan data Domain dengan notebook Jupyter, kloning atau unduh serangkaian notebook yang ditemukan di folder notebooks_managed_domainsdari repositori sampel Amazon Personalize. Notebook memandu Anda mengimpor data pelatihan, membuat pemberi rekomendasi, dan mendapatkan rekomendasi dengan Amazon Personalize.
Sebelum memulai dengan notebook, pastikan untuk membangun lingkungan Anda mengikuti langkah-langkah di README.md