Rumah > Artikel > pembangunan bahagian belakang > Sistem pengesyoran dalam Python
Sistem pengesyoran ialah alat dalam Python yang mengesyorkan item atau kandungan kepada pengguna berdasarkan keutamaan dan tingkah laku masa lalu mereka. Teknologi ini menggunakan algoritma untuk meramalkan pilihan masa depan pengguna untuk menyampaikan kandungan yang paling relevan kepada mereka.
Skop sistem ini sangat luas dan ia digunakan secara meluas dalam pelbagai industri seperti e-dagang, perkhidmatan penstriman dan media sosial. Produk, filem, muzik, buku, dsb. semuanya boleh disyorkan melalui sistem ini. Menyediakan pengesyoran yang diperibadikan bukan sahaja membantu meningkatkan penglibatan dan kesetiaan pelanggan, tetapi juga boleh meningkatkan jualan.
Idea di sebalik operasi ini ialah pengguna boleh mendapatkan pengesyoran yang setanding dengan item yang pernah mereka dedahkan sebelum ini. Sistem ini menggunakan algoritma untuk menentukan item yang hampir sama dengan keutamaan pengguna, dengan matlamat untuk mencipta senarai cadangan yang sesuai untuk pengguna. Dalam tetapan ini, algoritma menganalisis data yang berkaitan dengan item, seperti kualiti dan penilaian pengguna, untuk menentukan cadangan yang perlu dibuat.
Langkah 1 − Import perpustakaan yang diperlukan
Langkah 2 - Muatkan Set Data
Langkah 3 - Praproses data
Langkah 4 - Kira matriks persamaan
Langkah 5 − Untuk setiap pengguna −
Pilih item yang mereka telah berinteraksi dengan
Untuk setiap item yang dipilih dalam langkah 5a -
Dapatkan skor persamaan dengan semua item lain
Kira purata wajaran skor persamaan menggunakan penilaian pengguna sebagai pemberat
Isih item dalam tertib menurun berdasarkan markah persamaan wajaran
Syorkan N item teratas kepada pengguna
Langkah 6 - Kembalikan cadangan daripada semua pengguna.
import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # Load data data = pd.read_csv('movies.csv') # Compute TF-IDF vectors for each movie tfidf = TfidfVectorizer(stop_words='english') tfidf_matrix = tfidf.fit_transform(data['description']) # Compute cosine similarity between all movies cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix) # Function to get top 10 similar movies based on input movie def get_recommendations(title): idx = data[data['title'] == title].index[0] sim_scores = list(enumerate(cosine_sim[idx])) sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) sim_scores = sim_scores[1:11] movie_indices = [i[0] for i in sim_scores] return data.iloc[movie_indices] # Example usage: get top 10 movies similar to 'The Godfather' get_recommendations('The Godfather')
Kami memuatkan data filem daripada fail CSV tempatan ke dalam bingkai data. Kami menukar perihalan filem kepada matriks dengan menggunakan fungsi fit_transform() dan mengira matriks persamaan kosinus.
Kemudian kami mentakrifkan fungsi yang mengambil tajuk filem sebagai parameter dan mendapatkan semula indeks tajuk filem dalam bingkai data jika ia wujud.
Kami kemudian membuat senarai tupel yang mengandungi skor persamaan antara tajuk filem yang diluluskan dan semua tajuk filem lain. Setiap tupel terdiri daripada indeks dan skor persamaan. Kami kemudiannya memaparkan senarai tajuk filem dengan mengindeks bingkai data.
title \ 783 The Godfather 1512 The Godfather: Part II 1103 Casino 3509 Things to Do in Denver When 1246 Snatch 3094 Road to Perdition 2494 Scarface 1244 Following 2164 Dancer 2445 The Day of the Jackal
Sebaliknya, ini bergantung pada data pengguna lain untuk menjana cadangan. Sistem sedemikian membandingkan pilihan dan gelagat pelbagai pengguna dan kemudian mencadangkan item yang mungkin disukai oleh pengguna lain yang mempunyai cita rasa yang serupa. Penapisan kolaboratif secara amnya lebih tepat daripada sistem berasaskan kandungan kerana ia mengambil kira pendapat ramai pengguna apabila menjana cadangan.
Langkah 1 − Import perpustakaan yang diperlukan.
Langkah 2 - Muatkan fail "ratings.csv" yang memberikan penilaian pengguna.
Langkah 3 - Cipta "user_item_matrix" untuk menukar data rating pengguna kepada matriks
Langkah 4 - Kira persamaan rating pengguna menggunakan persamaan kosinus.
Langkah 5 - Kenal pasti pengguna yang serupa
Langkah 6 - Kira purata rating.
Langkah 7 - Pilih ID pengguna sasaran.
Langkah 8 - Cetak ID dan rating filem.
import pandas as pd from sklearn.metrics.pairwise import cosine_similarity # Load data ratings_data = pd.read_csv('ratings.csv') # Create user-item matrix user_item_matrix = pd.pivot_table(ratings_data, values='rating', index='userId', columns='movieId') # Calculate cosine similarity between users user_similarity = cosine_similarity(user_item_matrix) # Get top n similar users for each user def get_top_similar_users(similarity_matrix, user_index, n=10): similar_users = similarity_matrix[user_index].argsort()[::-1] return similar_users[1:n+1] # Get recommended items for a user based on similar users def get_recommendations(user_id, user_similarity, user_item_matrix, n=10): similar_users = get_top_similar_users(user_similarity, user_id, n) recommendations = user_item_matrix.iloc[similar_users].mean(axis=0).sort_values(ascending=False).head(n) return recommendations # Example usage user_id = 1 recommendations = get_recommendations(user_id, user_similarity, user_item_matrix) print("Top 10 recommended movies for user", user_id) print(recommendations)
Top 10 recommended movies for user 1 movieId 1196 5.000000 50 5.000000 1210 5.000000 260 5.000000 1198 5.000000 2571 5.000000 527 5.000000 1197 5.000000 2762 5.000000 858 4.961538
Tugas untuk mencipta sistem pengesyor boleh membawa kerumitan yang besar kepada pengaturcara, tetapi ia adalah alat berharga yang boleh membawa manfaat yang besar. Membina sistem pengesyoran dengan Python menawarkan pelbagai pilihan yang memudahkan proses penciptaan dan penyesuaian. Walau bagaimanapun, seperti mana-mana usaha pengekodan, masalah berpotensi boleh timbul apabila membangunkan sistem pengesyor. Menyedari komplikasi biasa ini dan mengambil langkah untuk menanganinya adalah penting untuk memastikan kejayaan sistem pengesyor.
Akhirnya, adalah penting untuk diingat bahawa sistem pengesyor boleh menjadi aset yang sangat berkuasa, jadi adalah berbaloi untuk melaburkan masa dan usaha yang diperlukan untuk memastikan ia dibina dengan betul dan beroperasi secara optimum.
Atas ialah kandungan terperinci Sistem pengesyoran dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!