Penapisan Berasaskan Kandungan
Perwakilan item TF-IDF, keserupaan kosinus, membina sistem pengesyor filem daripada metadata.
Penapisan Berasaskan Kandungan ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.
Apakah Penapisan Berasaskan Kandungan?
Penapisan berasaskan kandungan mengesyorkan item yang serupa dengan item yang telah disukai oleh pengguna, berdasarkan ciri item itu sendiri seperti teks, genre dan tag. Tidak seperti penapisan kolaboratif, kaedah ini tidak memerlukan data pengguna lain, jadi ia mengatasi masalah permulaan dingin item.
Item sebagai Vektor Ciri
Idea utamanya ialah menukar setiap item kepada vektor berangka yang menerangkan kandungannya, kemudian mengukur keserupaan antara vektor tersebut. Untuk penerangan teks, TF-IDF ialah kaedah klasik untuk membina vektor ini.
Apakah TF-IDF?
TF-IDF (Kekerapan Istilah-Kekerapan Dokumen Songsang) memberikan pemberat kepada perkataan berdasarkan kekerapan kemunculannya dalam sesuatu item, tetapi mengurangkan pemberat perkataan yang biasa terdapat dalam semua item. Perkataan yang jarang dan tersendiri mendapat pemberat tinggi, lalu menggambarkan perkara yang menjadikan sesuatu item unik.
TfidfVectorizer
scikit-learn menukar senarai penerangan item kepada matriks TF-IDF 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 mempunyai bentuk (bilangan_item, bilangan_istilah): satu baris bagi setiap item dan satu lajur bagi setiap perkataan unik dalam kosa kata. Matriks ini jarang kerana kebanyakan item hanya menggunakan sebahagian kecil daripada semua perkataan.
print(tfidf_matrix.shape) # (n_items, vocabulary_size)Melaras Pembina Vektor
Parameter yang berguna: stop_words membuang perkataan umum, max_features mengehadkan saiz kosa kata dan ngram_range=(1,2) memasukkan frasa dua perkataan untuk menghasilkan ciri yang lebih kaya.
vectorizer = TfidfVectorizer(
stop_words="english",
max_features=5000,
ngram_range=(1, 2)
)Keserupaan Kosinus antara Item
Kirakan keserupaan berpasangan merentasi semua item. Hasilnya ialah matriks bilangan_item x bilangan_item, yang setiap selnya menunjukkan keserupaan antara penerangan dua item.
from sklearn.metrics.pairwise import cosine_similarity
cosine_sim = cosine_similarity(tfidf_matrix)
print(cosine_sim.shape) # (n_items, n_items)Pintasan Kernel Linear
Oleh sebab vektor TF-IDF dinormalkan L2 secara lalai, linear_kernel memberikan hasil yang sama seperti keserupaan kosinus tetapi dengan lebih pantas, iaitu pengoptimuman biasa untuk katalog besar.
from sklearn.metrics.pairwise import linear_kernel
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)Memetakan Tajuk kepada Indeks
Untuk mencari item berdasarkan nama, bina indeks songsang daripada tajuk kepada kedudukan baris.
indices = pd.Series(df.index, index=df["title"]).drop_duplicates()Fungsi get_recommendations
Dengan diberikan tajuk, ambil baris keserupaannya, susun mengikut tertib menurun, langkau item itu sendiri dan kembalikan padanan teratas.
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]Kekuatan dan Had
Kekuatan: berfungsi untuk item yang benar-benar baharu dan pengesyorannya mudah dijelaskan ("kerana item ini berkongsi perkataan tersebut").
Had: kaedah ini kekal dalam lingkungan cita rasa pengguna yang diketahui (pengkhususan berlebihan) dan tidak dapat menemui penemuan mengejutkan merentas genre seperti yang boleh dilakukan oleh penapisan kolaboratif.
Semakan Pantas
Uji pengetahuan anda tentang penapisan berasaskan kandungan.
Imbas Kembali
Anda membina penapisan berasaskan kandungan: TfidfVectorizer menukar penerangan kepada matriks (bilangan_item, bilangan_istilah), cosine_similarity membandingkan item dan get_recommendations mengembalikan item serupa teratas sambil melangkau item itu sendiri. Kaedah ini menangani masalah permulaan dingin tetapi berisiko mengalami pengkhususan berlebihan. Seterusnya: sistem hibrid dan metrik penilaian.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 53
- Pelajaran
- 225
Soalan Lazim
Adakah pelajaran “Penapisan Berasaskan Kandungan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Penapisan Berasaskan Kandungan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penapisan Berasaskan Kandungan”?
Perwakilan item TF-IDF, keserupaan kosinus, membina sistem pengesyor filem daripada metadata. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Penapisan Berasaskan Kandungan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?
Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Penapisan Kolaboratif: Berasaskan Pengguna dan Item
- Pemfaktoran Matriks dengan SVD
- Penapisan Berasaskan Kandungan
- Sistem Hibrid dan Metrik Penilaian