An intelligent content-based course discovery platform delivering personalized learning pathways across 3,424+ curated online courses. Built using Natural Language Processing (TF-IDF vectorization, Cosine Similarity, and N-gram tokenization) coupled with diversity-aware ranking and a robust Flask RESTful API.
/courses, /recommend, /api/health.pytest and pytest-cov.# TF-IDF Feature Extraction & Cosine Similarity Calculation
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
tfidf = TfidfVectorizer(stop_words='english', max_features=5000, ngram_range=(1, 2))
tfidf_matrix = tfidf.fit_transform(courses['combined_features'])
def get_recommendations(course_idx, top_n=5):
# Compute similarity between selected course and all courses
sim_scores = cosine_similarity(tfidf_matrix[course_idx], tfidf_matrix).flatten()
related_indices = sim_scores.argsort()[-(top_n + 1):-1][::-1]
return courses.iloc[related_indices][['Course Name', 'University', 'Difficulty Level', 'Course Rating']]