About this project

NBA Hate Tracker is a data analysis project that measures which NBA players r/NBA discusses most negatively. It processed 1.57 million Reddit comments from the 2024-25 season and reports Draymond Green as the most hated player by negative comment rate (51.0% across 53,454 comments). Pipeline stages: download of 7.04M raw comments via the Arctic Shift API, cleaning to 6.89M, filtering to 1.94M comments mentioning one of 384 aliases for 111 players, sentiment classification of 1.89M comments, and attribution of 1.57M to a single player target. Classification uses Claude Haiku 4.5 through the Anthropic Batch API, labeling each comment negative, neutral or positive with a confidence score and target player. The prompt accounts for NBA slang such as "washed" or "cooked" as negative and "nasty" or "GOAT" as positive. Processing ran in 20 batches of up to 100K requests, consuming 300.5M tokens at a reported cost of $254.20, with a 97.25% usable classification rate and roughly 96% accuracy against 500 human-labeled comments. Reported findings include: volume of discussion does not equal negativity (Luka Doncic leads raw negative comments but ranks middling in rate); Russell Westbrook is described as the most polarizing player; fan flair data shows rivalries, such as Utah Jazz fans being most negative toward Draymond Green; and only 11 of 59 qualified players show positive net sentiment. Stated limitations: classifier accuracy around 96% with sarcasm and idioms as edge cases; negativity of discourse is not identical to hostility; all comments are weighted equally regardless of Reddit score; and results cover one season only. Tech stack: Python 3.11, Polars for data processing, Anthropic Batch API for classification, Arctic Shift as data source, Streamlit for the dashboard, Flourish for the bar race animation, uv as package manager, and YAML configuration for player aliases and team mappings. The repository includes pipeline modules, CLI scripts, utility helpers, a multi-page Streamlit app, pytest tests, and six exploratory notebooks.