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
Delete