Posts

Showing posts from August, 2026

25 Years, 2.2 Million Headlines: What New York Times Data Reveals

Image
I fed a quarter century of New York Times headlines into Python. What came back was a portrait of a nation's mood, one year at a time.  Using Python, TF-IDF, sentiment analysis, and named-entity recognition to examine how headline language changed from 2000 to 2025. There's a moment in every data project when a spreadsheet stops being a spreadsheet and starts being a story. Mine came about an hour into cleaning a dataset, when I noticed that a single row of "short description" text was 504,071 characters long. Somewhere in there, buried in a single cell meant to hold a sentence, was what looked like an entire article. Maybe a whole day's worth of them. That's the thing about big datasets: they don't just contain information, they contain accidents, artifacts, and fingerprints left by the humans and systems that built them. Before I could ask any interesting questions, I had to become something between a detective and a janitor. The dataset itself was simp...