RSSAmplifier

Blog

Derek Willis

Academic and journalist

thescoop.orgRSS feed ↗20 posts

Latest posts

Hoops Reloaded

I first need to apologize to and thank a guy named Chuck Morris. When we were students at the University of Pittsburgh in the previous century, Chuck and I had several things in common. We both worked at WPTS, the campus radio station. We both were geeks. And, perhaps most unusually given those two factors, we liked sports. OK, we loved sports, and in particular, basketball. I can’t remember…

Introducing Congress Press

I began collecting congressional press releases more than a dozen years ago for the reasons I usually start collecting anything: I was interested in them and there wasn’t a freely-available dataset I could find. At the time, I was writing code in Ruby since I was working at The New York Times, and so the library to scrape those releases, called Statement , was in that language. Writing scrapers in…

All the Claude (Code) Things

Of nearly all of the potential uses for Large Language Models, perhaps the best and most defensible is using them to write code. During the recently-completed fall semester, I co-taught a Computer Science class with Bill Pugh that explored some good ways to do that. We used a lot of Claude Code for that class, and it quickly has become my favorite coding model. And then, in the middle of November,…

Two New NCAA WBB Data Releases: Rosters and Coaches

Today I’m releasing two datasets on women’s college basketball, one an update and the other a brand new collection, both tied to the 2025-26 season. The first is roster data for 1,074 NCAA teams across all three divisions , and the second is coaching history data for as many NCAA coaches as I was able to scrape. I’ll describe them in turn, starting with the roster data. Roster Data This is the…

First Release of NCAA WBB 2025-26 Roster Data

A few years ago I started publishing roster data for women’s college basketball , thanks to the assistance of students in my Sports Data Analysis and Visualization class at Maryland. The first few times were a painstaking and lengthy process, mostly due to slight but substantive variations in how colleges presented roster information on their websites. While many NCAA teams use SIDEARM Sports to…

Making Scraping Better with AI Assistance

When I started teaching at Maryland in 2021, one of the first things I did was pull up the university’s Schedule of Classes , something I still do all the time. It’s a (relatively) quick way to see what classes are being offered and how many seats are available in them. As browsable web apps go, it’s not too bad. You can start by looking through a single department/college’s offerings, or you can…

Interviewing FEC Filings with llm-fecfile

Today I’m releasing a new Python command-line library that allows users to ask questions of federal campaign finance filings by leveraging large language models, with some built-in help. This project, llm-fecfile , also builds on previous work by data journalists that helps make these filings easier to parse and use. The combination of LLMs and domain expertise is a powerful one that has some real…

How OpenElections Uses LLMs

In the 12-plus years that we’ve been turning official precinct election results into data at OpenElections , the single biggest problem has been converting pictures of results into CSV files. Many of the precinct results files we get are image PDFs, and for those there are essentially two options: data entry or Optical Character Recognition. The former has some advantages, but not many. While most…

Faith in Journalism

As the students drifted away from the Zoom call one-by-one, one young woman stuck around. This was during the pandemic, and who wanted to be on Zoom more than they already had to be? I was wrapping up a talk about data journalism to a group of them, and there’s a line I use about the importance of data in understanding what’s really important to people and institutions. I usually phrase it like…

Vibe Coding for Domain Experts

The first thing you should know about me is that I’ve been programming computers for at least two decades. The second (and more important) thing you should know is that I’m not very good at it. I like to tell people that my programming skills are good enough for journalism, which is to say that I’ve never received any interest from companies that do actual software development, the kind that…

My LLM Extraction Challenge Leaderboard Is Better Now

I had been staring at my Political Email Extraction Leaderboard since I first published it, and was disappointed by some of the performances I found in extracting committee names from the disclaimers in fundraising messages. Some of the commercial models did worse than I expected, below 90% in some cases, and I was surprised. I should have been more skeptical. Once I dug into how I was compiling…

Turning Congressional Job Listings Into Data Using LLM

As a former Hill reporter, some of the best never-published stories revolved around the treatment (usually, mistreatment) of congressional staff. The people who actually make Congress work mostly don’t have a lot of power and are subject to the demands, schedules and whims of the lawmakers who employ them. It’s also tough to get a real understanding of how lawmakers actually understand and value…

LLM Extraction Challenge: Fundraising Emails

What kind of sicko signs up for political fundraising emails from just about every committee? Oh, right, that’s me. Sure, there’s a certain masochism to this, but I’m genuinely interested in seeing how campaigns communicate their messages to prospective donors and the distance between what they are willing to say in an email to their supporters compared to other contexts. But, as with nearly every…

The A in AI Stands for Archives

The following is based on a talk I gave at American University on Oct. 25, 2024. Since this is about Artificial Intelligence and Large Language Models, let me offer this initial baseline: I need to emphasize this not just as a journalism educator but as a participant in our shared civic life. There are many, many examples of people using LLMs as reference tools, and even some products that…

All Foreign Gifts Around Us

Whenever American federal officials - from the President to members of Congress and executive branch employees - meet with foreign government representatives, they often are offered gifts. Some of them are pretty weird , like crocodile insurance. Others are very pricey, such as gold medallions. Or paintings, like one given to Dwight Eisenhower from Konrad Adenauer, then the chancellor of Germany.…

Why I Mostly Don’t Use AI for Campaign Finance … Yet

If there’s anything that I’ve developed an expertise in in the past 25 years, it’s campaign finance data. And if there’s anything I’ve been really into during the past year, it’s large language models (LLMs). You might think this is a story about how I’ve combined the two. But it’s not, because mostly I don’t, and I’d like to explain why. Because most campaign finance data is structured - in rows…

Lessons from Teaching a Journalism Class on AI

I called it my “running with scissors” class, because after I offered to teach a course on using artificial intelligence for journalism, the thought dawned on me that I had very little idea how to actually design and teach such a class. Running with scissors, a terrible image from DALL-E Here’s what I eventually settled on: give students access to various AI services - ChatGPT, Claude, Gemini and…

A Better Way to Process Mississippi Precinct Results

When it comes to turning official precinct election results into data, there are few states like Mississippi. The Magnolia State isn’t like New York, where there’s no centralized statewide reporting system for precinct results (not yet, at least). But the 82 counties in Mississippi participate in a frustrating system: they produce a precinct report in the same electronic format, then print out…

Introducing Women’s College Volleyball Roster Data

Last year some students of mine at Maryland and I worked to produce a comprehensive set of data on women’s college basketball rosters , and while that process involved a lot of manual effort on top of a base of Python scrapers, it also got me thinking: how hard would it be to extend that system to other sports? As it turns out, it wasn’t that hard, which is why today I’m happy to announce the…

Using AI to Parse Election Results

If there’s one state that justifies the need for OpenElections, it’s Mississippi. Unlike some other states that don’t have a centralized election results system, Mississippi does. Each of the state’s 82 counties uses the same form to report official results to the Secretary of State. But that form is quite a thing in terms of organization: Statewide Results There’s a lot going on here, but the…