Penyaringan Berbasis Konten
Representasi item TF-IDF, kemiripan kosinus, membangun pemberi rekomendasi film dari metadata.
Penyaringan Berbasis Konten adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa Itu Penyaringan Berbasis Konten?
Penyaringan berbasis konten merekomendasikan item yang mirip dengan item yang sudah disukai pengguna, berdasarkan fitur item itu sendiri, seperti teks, genre, dan tag. Berbeda dari penyaringan kolaboratif, metode ini tidak memerlukan data pengguna lain sehingga dapat mengatasi masalah awal dingin pada item.
Item sebagai Vektor Fitur
Gagasan utamanya adalah mengubah setiap item menjadi vektor numerik yang menjelaskan kontennya, lalu mengukur kesamaan antara vektor-vektor tersebut. Untuk deskripsi teks, TF-IDF adalah cara klasik untuk membangun vektor tersebut.
Apa Itu TF-IDF?
TF-IDF (Frekuensi Istilah-Frekuensi Dokumen Terbalik) memberikan bobot pada kata berdasarkan seberapa sering kata tersebut muncul dalam suatu item, tetapi mengurangi bobot kata yang umum di semua item. Kata-kata yang jarang dan khas memperoleh bobot tinggi sehingga dapat menangkap keunikan suatu item.
TfidfVectorizer
scikit-learn mengubah daftar deskripsi item menjadi matriks TF-IDF hanya dalam dua baris.
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(stop_words="english")
tfidf_matrix = vectorizer.fit_transform(df["description"])Memahami Bentuk Matriks
tfidf_matrix memiliki bentuk (n_items, n_terms): satu baris untuk setiap item dan satu kolom untuk setiap kata unik dalam kosakata. Matriks ini renggang karena sebagian besar item hanya menggunakan sebagian kecil dari seluruh kata.
print(tfidf_matrix.shape) # (n_items, vocabulary_size)Menyetel Pembuat Vektor
Parameter yang berguna: stop_words menghapus kata umum, max_features membatasi ukuran kosakata, dan ngram_range=(1,2) menyertakan frasa dua kata untuk menghasilkan fitur yang lebih kaya.
vectorizer = TfidfVectorizer(
stop_words="english",
max_features=5000,
ngram_range=(1, 2)
)Kesamaan Kosinus Antaritem
Hitung kesamaan berpasangan untuk semua item. Hasilnya adalah matriks n_items x n_items, dengan setiap sel menunjukkan seberapa mirip deskripsi dua item.
from sklearn.metrics.pairwise import cosine_similarity
cosine_sim = cosine_similarity(tfidf_matrix)
print(cosine_sim.shape) # (n_items, n_items)Pintas Kernel Linear
Karena vektor TF-IDF secara bawaan dinormalisasi dengan norma L2, linear_kernel memberikan hasil yang sama dengan kesamaan kosinus, tetapi lebih cepat. Ini merupakan pengoptimalan umum untuk katalog berukuran besar.
from sklearn.metrics.pairwise import linear_kernel
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)Memetakan Judul ke Indeks
Untuk mencari item berdasarkan nama, buat indeks terbalik dari judul ke posisi baris.
indices = pd.Series(df.index, index=df["title"]).drop_duplicates()Fungsi get_recommendations
Dengan sebuah judul, ambil baris kesamaannya, urutkan dari terbesar ke terkecil, lewati item itu sendiri, lalu kembalikan hasil yang paling cocok.
def get_recommendations(title, n=10):
idx = indices[title]
scores = list(enumerate(cosine_sim[idx]))
scores = sorted(scores, key=lambda x: x[1], reverse=True)
top = scores[1:n+1] # skip itself at position 0
item_idxs = [i for i, _ in top]
return df["title"].iloc[item_idxs]Kelebihan dan Keterbatasan
Kelebihan: dapat digunakan untuk item yang benar-benar baru, dan rekomendasinya mudah dijelaskan ("karena item tersebut memiliki kata-kata yang sama").
Keterbatasan: rekomendasi tetap berada dalam lingkup selera pengguna yang sudah diketahui (spesialisasi berlebihan) dan tidak dapat menemukan pilihan lintasgenre yang mengejutkan seperti yang dapat dilakukan penyaringan kolaboratif.
Pemeriksaan Singkat
Uji pengetahuan Anda tentang penyaringan berbasis konten.
Ringkasan
Anda telah membangun penyaringan berbasis konten: TfidfVectorizer mengubah deskripsi menjadi matriks (n_items, n_terms), cosine_similarity membandingkan item, dan get_recommendations mengembalikan item yang paling mirip sambil melewati item itu sendiri. Metode ini menangani kondisi awal tanpa data, tetapi berisiko mengalami spesialisasi berlebihan. Berikutnya: sistem hibrida dan metrik evaluasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penyaringan Berbasis Konten” gratis?
Ya — teks lengkap “Penyaringan Berbasis Konten” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penyaringan Berbasis Konten”?
Representasi item TF-IDF, kemiripan kosinus, membangun pemberi rekomendasi film dari metadata. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Penyaringan Berbasis Konten” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penyaringan Kolaboratif: Berbasis Pengguna dan Berbasis Item
- Faktorisasi Matriks dengan SVD
- Penyaringan Berbasis Konten
- Sistem Hibrida dan Metrik Evaluasi