The Bechdel Tester : Feminism, Films, and Flask
Hey there! I’m Annie, a college student trying to create something interesting in her free time. After months of neglecting a side project that I started last summer, I am dusting off the cobwebs, opening it up in Sublime (with some trepidation), and seeing if perhaps I can build it into a meaningful product.
Let me tell you a bit about it.
The Bechdel Test
The idea for this project revolves around the Bechdel Test, a metric that measures how well a movie (or any work of fiction) represents women. It has three requirements:
- The movie must have at least two women in it,
- who talk to each other,
- about something besides a man.
The test originated from this comic strip by cartoonist Alison Bechdel.
If a film passes this test — hurrah, it’s not completely sexist! If not— that’s pretty sad. I mean, this test is not that hard to pass. And yet, according to the online database bechdeltest.com, about 42% of movies that have been submitted do not pass the Bechdel test.
When I read that statistic, I was shocked, and immediately wanted to know more. Did some of my favorite movies not pass the test? Are results dramatically different across countries/cultures? Has the film industry improved since whenever films were invented? And if it has, by how much?
As I scoured the Web for answers, I ran into…
There is simply not much data out there about films and the Bechdel Test. This is unsurprising — it is a somewhat esoteric thing, and there isn’t massive demand for more data. But hey, wouldn’t it be cool to have more concrete information about the state of female representation in popular entertainment?
I think so. And I also think the way to obtain more data is to automate the process of evaluating movies. To build a program that can administer the Bechdel Test.
There is already an impressive amount of data on bechdeltest.com. Users consistently update it with new movies and have meaningful debates about whether or not certain films should pass — that’s impressive, since it means a bunch of people have watched entire movies while simultaneously keeping track of the Bechdel Test conditions. That requires an attention span that I certainly do not have.
Furthermore, people often disagree about the passing/failing state of a movie — one person might think a certain line makes a film pass the test, while others will say it doesn’t count.
This brings me to another, deeper problem: can the Bechdel Test really be automated?
I have no idea. It is a subjective test. There are frequently gray areas here, and I have my doubts about a computer’s ability to handle the subtleties of human interactions. Perhaps there could be a compromise, where the app takes care of the tedious bits and the final decision is left for actual people?
This is going to be a challenging problem, and it’s possible that I’ll realize there is no solution. But I will try my best to find one.
The current state of affairs
Last summer, a friend and I hacked together a (very, very buggy) prototype of the Bechdel Tester.
Currently, it is a bare-bones Flask app with some gross, hackathon-y code. Things that it does include :
- when you enter a movie title in the search bar, the app searches Google for a PDF screenplay of that movie
- if it finds said screenplay, it parses the PDF into an array of lines
- using a very, very basic algorithm (which I will discuss in a later post), it analyzes the lines and returns whether or not the film passed
- if the movie passes, the app will display a sample of the lines that allowed the movie to pass
This first version “worked” in the hackathon sense of the word: it returned the correct results for two movies (“correct” is also pretty subjective) and was iffy with all other titles that we tried. Not so great.
We wanted to continue building the app after that summer hackathon, but life got hectic as it always does and the Bechdel Tester fell into an archived folder in my laptop…until I joined the One Side Project Challenge at the beginning of 2016!
I have committed myself to finishing some version of this project by the end of the year. I’m excited.
January and beyond
I am currently spending a semester abroad in London, so most of my January was spent moving, settling in, and adjusting to life in the UK. Unfortunately, this meant I only spent a few days out of the month working on this project. I’m not happy about that, but things have calmed down significantly and I’m optimistic about the coming months!
Here’s what I did in January:
- Fixed the Google querying code that had somehow broken since the summer. Currently using pygoogle
- Refactored some code, mostly the horrific CSS that I had written
- Looked into several NLP Python libraries that I might be able to use in the screenplay analysis
Here’s what I’m going to do in February:
- Get better at Flask. I have a basic understanding of how Flask works, but if I want to build a robust app I need to do some learning. The plan is to use this tutorial, written by a cool & very smart programmer at my school
- Completely refactor the app once I am better at Flask. Both the current code and app structure are not so great. I need to take care of that before I can write any new code
- Understand the parts of the code that I didn’t write. My friend took care of the PDF parsing, and I have no idea how that works. I want to be confident in my knowledge of every part of the app
- Extensively research the Bechdel Test. There are many variations of the test, and I’ve read differing opinions on the test’s effectiveness. I need to know a lot more before I can decide on the best way to implement an automated version of the test (and if that’s even a worthwhile thing to do).
By the end of February, I plan to have a cleaned up, well-structured basic version, as well as a clear trajectory of where I want to take the app. From there, I can start building out the cool stuff.
Alright, that’s it for now! I’ll be back with another update at the end of the month. Happy February y’all.
If you enjoyed this article, give it a recommend!
Also, follow the One Side Project Challenge publication to get updates on this project and the many amazing projects that my fellow challenge-takers are working on.