Logo of Takinur
TorqueLens

TorqueLens


Tagline

NLP pipeline mining Reddit's car subs for sentiment and topic shifts.

Tech Stack

Python, Pandas, NLTK, Gensim, Scikit-learn, PRAW, Django, Next.js

Year
2026

TorqueLens pulls 2,000 plus comments from five automotive subreddits and runs them through a proper NLP stack: tokenisation, stopwords, WordNet lemmas. VADER handles sentiment scoring, and two topic models (LDA on bag-of-words, NMF on TF-IDF) cross-check each other so the themes actually hold up. Output lands as wordclouds, sentiment bands over time, and an eleven-brand co-occurrence matrix. A Django API and Next.js client scaffold the dashboard around it.

Glimpse of the Project


NLP Pipeline

01 / 06
01

Collect

PRAW scrapes 2,000+ comments across /r/cars, /r/electricvehicles, /r/whatcarshouldIbuy and two more car-focused subreddits. Raw text is persisted for reproducible runs.

PRAW · Reddit API

tap a step to explore →

Case Study


The problem

Car buyers argue endlessly on Reddit, and there's real signal in it — which brands people trust, how sentiment shifts, what themes cluster together. But it's buried in thousands of noisy, sarcastic, unstructured comments that no dashboard reads for you.

What I built

A full NLP pipeline: PRAW pulls 2,000+ comments across five automotive subreddits; NLTK handles tokenisation, stopword removal and WordNet lemmatisation; VADER scores sentiment; and two topic models — LDA on a bag-of-words corpus and NMF on a TF-IDF matrix — surface latent themes. On top sit fuel-type classification and an eleven-brand co-occurrence matrix, visualised as wordclouds, sentiment bands over time and a brand heatmap, with a Django API feeding a Next.js dashboard.

The hardest decision

The judgement call was whether one topic model was enough. A single model's topics can be artefacts of its assumptions — you can't tell a real theme from noise. I ran LDA and NMF side by side and only trusted themes both methods agreed on. It cost extra compute and interpretation time, but it's the difference between reporting findings and reporting coincidences.

Outcome & what I'd do differently

Cross-validating the two models gave themes I could actually stand behind. The weak link is VADER: it's fast and lexicon-based, so it misses the sarcasm that's everywhere in car forums. The next step would be trialling a transformer sentiment model and measuring how much the sarcasm-heavy comments were being misread.

TorqueLens collects 2,000+ comments across /r/cars, /r/electricvehicles, /r/whatcarshouldIbuy and related subreddits via PRAW, then runs a full NLP stack — URL stripping, NLTK tokenisation, stopword filtering, and WordNet lemmatisation. VADER compound scores classify each comment as positive, neutral, or negative; dual topic modeling (LDA on a bag-of-words corpus and NMF on a TF-IDF matrix) cross-validates the latent themes. Feature extraction adds fuel-type classification (gas / diesel / electric / hybrid) and an 11-brand co-occurrence matrix, surfacing which marques drivers discuss together.

Wordclouds — Positive vs Negative Sentiment

Wordclouds — Positive vs Negative Sentiment

Sentiment Distribution Across Comments

Sentiment Distribution Across Comments

Car Brand Co-occurrence Heatmap

Car Brand Co-occurrence Heatmap

Sentiment Proportions Over Time

Sentiment Proportions Over Time

next project
Skirmisher AI