Di artikel ini kita akan belajar lebih detail lagi bagaimana membangun sistem rekomendasi menggunakan teknik Content-based filtering dengan menggunakan python. Pada artikel sebelumnya, telah kita pelajari apa itu sistem rekomendasi atau recommender system dan beberapa teknik yang digunakannya.
Teknik Content-based filtering di Sistem rekomendasi |
Content-based filtering(CB)
TF-IDF dan Cosine similarity
Bagaimana kita dapat mengetahui kemiripan suatu produk/item?
Secara umum, kemiripan dokumen didapatkan dari deskripsi suatu dokumen tersebut dengan konsep TF-IDF. TF-IDF merupakan sub-area dari Natural Language Processing(NLP) yang digunakan dalam information retrievel dengan tujuan untuk ekstrasi data. Sederhananya, bagaimana menghitung kemunculan setiap kata dalam dokumen dan memberi bobot pada setiap kata, dan menghitung skor untuk dokumen itu.
TF (term frequency) suatu kata adalah berapa kali kata itu muncul dalam dokumen.
TF(t) = (banyaknya term t muncul di dokumen) / (jumlah total terms di suatu dokumen)
IDF (inverse document frequency) dari sebuah kata adalah ukuran seberapa signifikan istilah tersebut di seluruh korpus.
IDF(t) = log_e(jumlah dari dokumen / jumlah dokumen dengan term t didalamnya)
Untuk menghitung kemiripan dari vector yang telah terbentuk, kita dapat menggunakan beberapa metode yaitu:
- Cosine similarity
- Euclidean distance
- Pearson's correlation
Dari code python di jupyter notebook tersebut, hasil rekomendasi hotel beserta score-nya adalah seperti di bawah ini:
['Gunawangsa Manyar Hotel - 1.000000000000000', 'Midtown Hotel Surabaya - 0.17992312860891296', 'Aria Gajayana Hotel - 0.14461427726403756', 'GP Mega Kuningan Hotel - 0.12367390420720603', 'Le Polonia Medan managed by Topotels - 0.12049561758006845', 'Swiss-Belinn Manyar Surabaya - 0.11731929279752672', 'Hotel Santika Premiere Dyandra Hotel & Convention - 0.11442553936688896', 'Best Western Plus Kemayoran Hotel - 0.10975989716138217', 'Swiss-Belinn Malang - 0.09085670933358225', 'Quest Hotel Darmo - Surabaya by ASTON - 0.08833161676427399', 'Narita Classic Hotel Surabaya - 0.08833161676427399', 'Premier Place Surabaya Airport - 0.08833161676427399', 'Zoom Hotel Jemursari - 0.08833161676427399', 'Cleo Hotel Basuki Rahmat - 0.0749975275102063', 'Grand Darmo Suite by AMITHYA - 0.07174383261974006', 'Varna Culture Hotel Surabaya - 0.06823993211613247']
Referensi
- https://medium.com/@bindhubalu/content-based-recommender-system-4db1b3de03e7
- https://www.analyticsvidhya.com/blog/2015/08/beginners-guide-learn-content-based-recommender-systems/
- https://developers.google.com/machine-learning/recommendation/content-based/basics
- https://towardsdatascience.com/introduction-to-two-approaches-of-content-based-recommendation-system-fc797460c18c
jrrudy000@gmail.com
ReplyDeleteSudah saya kirim ke email ya, silahkan cek inbox
DeleteSaya membutuhkan dataset hotel dan kode lengkap. rip.wibowo@gmail.com. Trmksh
ReplyDeleteOk, sudah saya kirim email
Deleteassalamulaikum wr wb mohon izin minta minta kode dan datasetnya. email saya : agungmuliawan96@gmail.com terima kasih
ReplyDeleteWaalaikumsalam wr wb, sudah dikirim ke email ya, cek inbox.
DeleteAssalamualikum bang, boleh minta data st nya
ReplyDeleteAssalmualikum bang, boleh minta data set nya
ReplyDeleteWaalaikumsalam, boleh bang.. silahkan bisa di share emailnya
DeleteAssalamualaikum Pak
ReplyDeleteMinta izin minta dataset hotelnya
Waalaikumsalam, silahkan di share emailnya
Deletesupikir180@gmail.com
DeleteSudah saya kirim email ya, silahkan cek inbox
Deletepermisi kak, bisa minta dataset nya? niadyah1@gmail.com
ReplyDeleteSudah saya kirim ke email ya
Deleteselamat siang, saya tertarik dengan materi yang anda sampaikan, mohon saya dikirmi dataset dan codenya ya....
ReplyDeleteterimakasih berbaginya...
salam ke albertusdwiyoga@gmail.com
Terima kasih, sudah saya kirim ke email, semoga bermanfaat
DeleteAssalamualaikum pak, boleh saya minta datasetnya? mashudirohmat.mr@gmail.com
ReplyDeleteOk mas, sudah saya kirim ke email ya
Deleteselamat siang pak, boleh saya meminta datasetnya ? terima kasih
ReplyDeletedsindah87@gmail.com
Ok mba, sudah saya kirim ke email anda
Deleteselamat malam pak boleh saya minta sourcecode nya?
ReplyDeletejika berkenan boleh dikirim ke email yessisf09@gmail.com
Terima kasih sebelumnya
bagaimana mengecek akurasi dari pemodelannya
ReplyDeleteEvaluasi content-based filtering bisa menggunakan NDCG. Cek di artikel berikut http://www.jurnal.iaii.or.id/index.php/RESTI/article/view/3909
Deletecode untuk mengetahui akurasinya maksudnya Pak
DeleteTidak perlu menggukan code/script programming, pakai spreadsheet sudah cukup membantu dalam menghitung NDCG
DeleteBoleh minta contoh penghitungan NDCG di spreadsheet? bisa kirim ke email: jokoadenursiyono@gmail.com
DeleteBoleh minta code lengkapnya sekalian Pak, ke email: jokoadenursiyono@gmail.com
ReplyDelete