Say Anything is a text-based interactive storytelling system that attempts to collaboratively write a story with a user regardless of user's input. Instead of relying on specific knowledge acquired by domain experts versed in formal knowledge representation languages, this system leverages the personal stories authored by millions of people on their Internet weblogs.
In an interaction with Say Anything, a user is initially presented with an empty story. The collaborative process begins when the user enters the first sentence of the narrative. To add the next sentence, the system analyzes the story as it exists so far, and finds a similar set of instances in a knowledge base of over one million stories. Similar to traditional case-based reasoning, it treats the stories in the database as solutions to previous solved problems similar to the one it is currently addressing. In this case, what happens next given the current situation. The system proposes 10 candidates from which the user can pick one. When the user selects a candidate other than the top choice, we incrementally update an online ranking algorithm that uses a large set of features for assessing the similarity and coherence of a candidate sentence given the context.
The following paragraph is an example story written with Say Anything. Every other line (in bold) was contributed by the system.
You’ll never believe what happened last night!
Leigh laughed at my joke but I couldn’t help but think ‘liz would have laughed harder.’
The joke wasn’t very funny in a “ha ha” kind of way.
It wasn’t anything like that, I thought he was going to give me a good night kiss but he ended up licking my cheeck, she declared.
It made me sneeze and snort out loud.
And now my nose hurts from the snorting.
More examples can be found in the appendix to my thesis. For more details on the system please see the relevant publications below. Say Anything is currently under redevelopment, but will hopefully be available to try online soon. Screenshots of the game are available here.
The corpus of stories used by Say Anything was extracted from the 2009 ICWSM Spinn3r dataset using an automated classifier developed to distinguish blog posts whose primary content was a first person personal narrative. The story corpus can be reconstructed by
- Downloading the Spinn3r dataset from the ICWSM dataset challenge website
- Extracting the relevant posts using this index. The index is a tab delimited file with 4 columns:
- the relative path to the Spinn3r dataset file
- the classifier score (from a linear classifier)
- the starting line number of the Spinn3r item
- the final line number of the Spinn3rItem
- If you use this corpus please cite one of the papers below.