Work

Projects

End-to-end systems spanning NLP pipelines, ML regression, Business Intelligence, and full-stack serverless deployment.

Amazon Fine Food Reviews

Sentiment Analytics Dashboard

Problem

Uncover actionable sentiment patterns and business insights buried in 100,000+ Amazon food reviews using NLP and interactive Business Intelligence.

Approach

Built a full end-to-end pipeline: VADER sentiment scoring on raw reviews, 27 engineered features, a 4-table star schema, and a Power BI dashboard with 11 DAX measures — including time-intelligence and Pareto 80/20 cumulative analysis. Implemented 14 advanced Power BI features: AI Decomposition Tree, Key Influencers, Field Parameters, Drill-Through, Row-Level Security, Sync Slicers, and Bookmark Navigation.

Key Insight

Reviews with a helpfulness ratio between 0 and 0.14 are 7.39× more likely to carry negative sentiment. Objective reviews average a VADER compound score of 0.395 vs. 0.828 for subjective reviews.

Key Metrics

79.4%

Accuracy vs. star ratings

7.39×

Negative sentiment lift (low helpfulness)

100K

Reviews processed

<530ms

Dashboard load across 100K rows

PythonVADERPower BIDAXNLPStar Schema

ListingLens

Live

NYC Airbnb Price Intelligence

Problem

Predict Airbnb listing prices across New York City from raw listing attributes, enabling hosts and analysts to benchmark pricing decisions against a data-driven model.

Approach

End-to-end ML regression pipeline on 20,700+ real NYC Airbnb listings, benchmarking Ridge, Random Forest, LightGBM, and XGBoost. Tuned the final XGBoost model via RandomizedSearchCV (5-fold CV, 100 fits). Engineered 52 features: Haversine distances to 5 NYC landmarks, K-Means geo-clustering (k=8), target-encoded 200+ neighbourhoods with leakage-safe train/test split. Dual-channel NLP: VADER sentiment on 300,000+ guest reviews, per-listing sentiment aggregates embedded as model features. Deployed full-stack on Vercel with a custom TypeScript XGBoost tree-walker (700 trees, ~50ms inference, zero cold starts) and offline NLP pre-aggregation in SQLite for sub-10ms lookups — fully serverless, no Python backend at serving time.

Key Metrics

0.809

R² (test set)

22.8%

MAPE

52

Engineered features

~50ms

XGBoost inference (700 trees)

PythonXGBoostLightGBMTypeScriptVADERSQLiteNext.jsVercel