Tujuan saya untuk proyek ini
- Pahami komponen kunci dari kerangka kerja django
- Jelaskan Prinsip Dasar dari sistem rekomendasi
- Membangun aplikasi rekomendasi film sederhana, dengan menerapkan Algoritma Jaccard berdasarkan mekanisme pemfilteran konten
Repositori Github https://github.com/jamattey/Django-Movie-Recommendation
Tumpukan Teknologi
- Latar Belakang Django
- Tampilan Depan HTML
- Bootstrap CSS
- Database SQLite
Tentang Kerangka Kerja Django
Django membagi logika aplikasinya menjadi tiga komponen seperti Model-View-Controller berikut:
Django Model mengelola pemodelan data dan pemetaan basis data serta logika bisnis untuk memproses data
Django View menjelaskan data mana yang disajikan, tetapi tidak bagaimana data itu disajikan. Biasanya, Django View mendelegasikan dan merender halaman HTML, yang menjelaskan bagaimana data disajikan
Django Template menghasilkan halaman HTML dinamis untuk menyajikan data
Saat klien mengirim permintaan, server Django mengarahkan permintaan ke tampilan yang sesuai berdasarkan konfigurasi URL Django dan bertindak sebagai Pengendali tradisional
Model Django
Django menggunakan Model Django untuk mewakili tabel database dan memetakannya ke objek, seperti proses yang disebut ORM. Model Django mencoba membuat hidup pengembang lebih mudah dengan mengabstraksi database dan memetakan objek dan metode ke dalam tabel dan kueri SQL secara otomatis.
Anda hanya perlu mendefinisikan kelas sebagai Model Django, dan nantinya akan dipetakan ke tabel database yang sesuai. Kemudian Anda cukup menggunakan Django Models API untuk melakukan CRUD pada tabel database tanpa menulis satu baris SQL
Tampilan Django
Di Django, View pada dasarnya adalah fungsi Python. Fungsi tersebut mengambil permintaan Web dan menerapkan logika yang diperlukan untuk menghasilkan respons Web, seperti konten HTML halaman Web, pengalihan, kesalahan 404, dokumen XML, gambar, atau respons Web lainnya. Seringkali, View berinteraksi dengan Model Django untuk mendapatkan data yang diperlukan dalam bentuk QuerySet atau objek untuk menghasilkan respons Web.
Proses Pengembangan Aplikasi Django
Pertama, saya membuat proyek Django yang merupakan wadah untuk aplikasi dan pengaturan Django. Di sini, saya dapat memutuskan untuk membuat dan menambahkan satu atau lebih aplikasi Django ke proyek.
Dalam Pengembangan Inti, saya membuat model Django untuk memodelkan data dan membuat tampilan untuk menentukan data mana yang perlu disajikan ke UI. Saya juga memetakan URL permintaan ke tampilan kami sehingga Django dapat meneruskan permintaan ke tampilan yang sesuai melalui URL. Kemudian kita bisa mulai mendesain dan membangun UI.
Film ini diisi dalam CSV. Situs ini tidak meng-host film yang sebenarnya tetapi merupakan mesin rekomendasi menggunakan kode biasa dan database.
Mesin rekomendasi ini belum menggunakan Machine Learning.......belum 😂😂
Untuk membuat rekomendasi benar-benar berfungsi, saya harus menandai film yang telah ditonton pengguna menggunakan situs Admin Django terlebih dahulu. Kemudian saya menulis algoritme rekomendasi berdasarkan film yang ditonton.
Menandai Film yang Ditonton Di Django Admin
- Jalankan Server Django
- kunjungi url admin app_url/admin
- Kemudian Anda mengeklik entri film dan menandainya sebagai telah ditonton dan tekan Simpan.
Jalankan make_recommendations CMD untuk Menghasilkan Rekomendasi
Untuk sistem rekomendasi apa pun, ide utamanya adalah selalu menghasilkan algoritme/model yang baik untuk memprediksi apakah pengguna tertentu akan menyukai atau tidak menyukai itemnya yang tidak terlihat, seperti yang ditunjukkan pada tangkapan layar berikut:
Mungkin ada ratusan algoritme rekomendasi yang bagus dan secara kasar dapat dibagi menjadi dua kategori:
Berbasis pemfilteran konten:
Algoritme rekomendasi berdasarkan penyaringan konten mengasumsikan Anda mungkin menyukai film baru jika Anda pernah menonton film yang sangat mirip sebelumnya. Atau berdasarkan profil pengguna Anda (seperti usia, jenis kelamin, minat), ia akan mencoba menemukan film baru yang cocok dengan profil Anda.
Pemfilteran kolaboratif berdasarkan:
Algoritme pemfilteran kolaboratif mengasumsikan Anda mungkin menyukai film baru jika pengguna lain yang serupa dengan Anda (profil serupa atau menonton film serupa) telah menonton film ini.
Dalam proyek ini, kami akan menggunakan algoritme berbasis pemfilteran konten, dan kami akan mencoba merekomendasikan film yang belum ditonton/baru kepada Anda jika mirip dengan film yang Anda tonton.
Bagaimana kita menghitung kesamaan film tersebut
Di sini kita akan menggunakan kesamaan Jaccard yang mungkin merupakan metode paling sederhana namun sangat efektif untuk menghitung kesamaan antara dua himpunan.
Jaccard Similarity didefinisikan sebagai ukuran perpotongan dua himpunan dibagi dengan ukuran gabungan kedua himpunan tersebut.