← All projects
Sep–Oct 2025AI & ML · Web AppsCompleted

Movie Recommender System

An NLP movie recommender, extended with a second way of measuring similarity.

Movie Recommender System

The problem

The recommender already worked. It worked through a single library call to cosine similarity, and I could not have told you what that call was doing. The only honest way to find out was to implement an alternative myself.

What I built

I added an explicit Euclidean-distance path. Movie tag vectors are compared by straight-line distance, √Σ(xᵢ−yᵢ)², so recommendations can be ranked by geometric closeness and put side by side with the cosine ranking. Everything else stayed where it was: the NLP preprocessing, the Streamlit interface, the movie browser. The new measure plugged into the existing pipeline.

  • Euclidean-distance similarity written from the math, alongside the existing cosine scoring
  • Existing pipeline: bag-of-words over cast, genre, keyword, and production-company tags
  • NLTK stemming and stop-word removal before vectorization
  • Streamlit app with movie descriptions, cast details, and a paginated browser
  • Similarity matrices precomputed and cached as pickle files

How it turned out

A small change on paper. But recommendation math stopped being a function I called and became something I could derive, implement, and argue about.