Capstone
Capstone
program:
FRONTEND:(HTML,CSS)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100">
</header>
<section class="mb-6">
<div>
</div>
<!-- Movie Genre -->
<div>
<option value="action">Action</option>
<option value="comedy">Comedy</option>
<option value="drama">Drama</option>
<option value="horror">Horror</option>
<option value="romance">Romance</option>
</select>
</div>
<div>
</div>
</form>
</section>
<section id="recommendations">
</div>
</ul>
</div>
</section>
</div>
<!-- JavaScript for handling form submission and displaying results -->
<script>
event.preventDefault();
document.getElementById('loadingSpinner').classList.remove('hidden');
document.getElementById('errorMessage').classList.add('hidden');
setTimeout(() => {
const recommendations = {
action: ["Die Hard", "Mad Max: Fury Road", "The Dark Knight", "John Wick"],
drama: ["The Shawshank Redemption", "Forrest Gump", "The Godfather", "A Beautiful
Mind"],
};
if (recommendations[genre]) {
recommendations[genre].forEach(movie => {
const li = document.createElement('li');
li.textContent = movie;
recList.appendChild(li);
});
} else {
// Show error if genre is not valid
document.getElementById('errorMessage').classList.remove('hidden');
document.getElementById('loadingSpinner').classList.add('hidden');
});
</script>
</body>
</html>
Backend:
import pandas as pd
import numpy as np
user_item_data = [
('user3', 'movie3', 4)
item_metadata = [
('movie1', 'Action'),
('movie2', 'Drama'),
('movie3', 'Comedy')
user_demographics = [
]
# Convert the data into pandas DataFrames
cosine_sim_users = cosine_similarity(pivot_table)
user_similarities = cosine_sim_df[user_id]
similar_users = user_similarities.sort_values(ascending=False)
similar_users = similar_users.drop(user_id)
similar_user_ratings = pivot_table.loc[similar_users.index]
recommended_movies = similar_user_ratings.mean(axis=0)
# Sort movies based on predicted rating
recommended_movies = recommended_movies.sort_values(ascending=False)
return recommended_movies.head(top_n)
print(collab_recommendations)
label_encoder = LabelEncoder()
item_metadata_df['genre_encoded'] = label_encoder.fit_transform(item_metadata_df['genre'])
genre_similarity_matrix = cosine_similarity(item_metadata_df[['genre_encoded']])
item_similarities = genre_sim_df[item_id]
similar_items = item_similarities.sort_values(ascending=False)
similar_items = similar_items.drop(item_id)
# Return the top N recommended items
return similar_items.head(top_n)
print(content_recommendations)
hybrid_rec = hybrid_rec.sort_values(ascending=False)
return hybrid_rec.head(top_n)
print(hybrid_rec)
Output: