The method behind the match

Recommendations you can defend.

Every result starts as text. CineMatch turns movie language into vectors, compares their direction, and returns the closest stories in the catalog.

The pipeline

From film metadata to a shortlist

04 steps · explainable
01
▦

Collect

Overview, genres, keywords, top cast, and director are merged into one movie record.

02
✦

Clean

Text is lowercased, tokenized, stripped of stopwords and punctuation, then stemmed.

03
⌘

Vectorize

TF-IDF weighs informative words and bigrams so rare signals matter more than filler.

04
◉

Compare

Cosine similarity scores the angle between vectors and ranks the nearest neighbors.

The intuition

Words become coordinates.

Imagine every movie as a point in a very large space. A film about space, robots, and emotional survival lands near other films using similar language. The closer the direction, the stronger the recommendation.

similarity=A · B/‖A‖ ‖B‖

Why TF-IDF?

Not all words carry the same signal.

“Movie” appears everywhere, so it should not decide a match. TF-IDF downweights common words and boosts distinctive terms such as “wormhole”, “samurai”, or “heist”.

moviecommonherousefulwormholedistinctive

For your viva

Three points worth remembering.

01

Content-based. CineMatch recommends from movie metadata, not from other users’ ratings.

02

Cached. The vectorizer and similarity matrix are saved with joblib, so startup stays fast.

03

Flexible. The same model accepts a title or a new free-text description.