Previous Text Generation Articles:
- Structure in Computer-Generated Novels
- Using Templates In Computer-Generated Works
- The "Commonsense" Problem In Computer-Generated Works
5 - Consumers of "Spaced Content"
"[Y]ou could probably slog through any NaNoGenMo novel, if you did it in small enough pieces and gave yourself enough time between pieces."--Chris Pressey
Chris Pressey wrote this comment after writing the algorithm to generate the novel "A Time For Destiny". He used a Story Compiler approach (discussed in Structure in Computer-Generated Novels) to help make his novel coherent and readable, but still wanted to find another gimmick to improve its readability. He finally decided to place a warning label on his novel.
SPACE SURGEON GENERALS WARNING: THE SPACE SURGEON GENERAL HAS DETERMINED THAT EXPOSURE TO LARGE AMOUNTS OF COMPUTER-GENERATED FICTION MAY CAUSE HEADACHES, DIZZINESS, NAUSEA, AND AN ACUTE DESIRE TO SKIP AROUND TO FIND THE GOOD BITS.
FOR YOUR OWN WELL-BEING, DO NOT EXCEED THE RECOMMENDED MAXIMUM INTAKE OF 2 (TWO) CHAPTERS IN ANY 48 (FORTY EIGHT) HOUR PERIOD.
We can call this the "spaced content" approach: the content is made artifically scarce so that people are more likely to prize and enjoy it. Just because an algorithm can generate infinite content doesn't mean that you should...it would be better to simply ration it out so that people don't get bored.
Of course, humans may not actually listen to the warning label. They may decide to binge-read the content instead of simply waiting 48 hours. However, you could theoretically "force" the user to consume content more slowly by simply sending it out on a regular schedule. If they want to read a third chapter, they have to wait until the algorithm publishes the next chapter.
Twitterbots are a great example where "spaced content" is succesfully used. They tend to retain their appeal on the ability to "space out" content for a casual audience to consume without getting bored. It seems much easier for a human to browse through 200 tweets than it is to read 50,000 words...especially if those 200 tweets are spaced out over several weeks or months. Twitterbots have became so popular and mainstream that Quartz has released listicles listing the best Twitter Bots in both 2014 and 2015.
Many Twitterbots had their origins as NaNoGenMo novels: Uncharted Atlas used the same codebase as The Deserts of the West, and My True Love Sent To Me uses the same code that The One Hundred And Sixty-Five Days of Christmas used. sixworderbot (a Twitterbot that tweeted out 6-word stories) is a unique case where the bot came before the novel: Eight Thousand, Three Hundred and Thirty-Four Six-Word Stories.
The fact that even human authors are writing "Twitter Novels" (breaking down a novel into smaller bite-sized tweets that people can more easily consume)...suggest that "spaced content" is a viable and a lucrative approach for robots (even if they do decide not to go down the Twitterbot avenue).
4 - Fans of Conceptual Art
What if someone translated Moby Dick into Cat Language? Well, someone wrote an algorithm
. Here's the first sentence of Moby Dick, and its translation.
Call me Ishmael. Some years ago--never mind how long precisely--having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world.
Meow me Meeeeow. Meow meeow mew--meoow meow mew meow meeeeooow--meeeow meeeow me me meeow me me meoow, mew meeeoow meeeooooow me meooooow me me meeow, M meeooow M meoow meow meoow m meooow mew mew mew meooow meow me mew meeow.
Since you get the joke, you don't have to read the whole novel. You don't need to consume every last Meow. The novel has served its purpose in conveying a concept to you. And is that not the whole purpose of a novel? To convey an idea to another person?
Conceptual Art's emphasis is on the idea or concept behind the work, and not the actual work itself. And code is a good way of formalizing abstract ideas and making them concrete. Isaac Karth, a NaNoGenMo participant, mentioned this in his own blog post about conceptual art:
One of the things that I like about NaNoGenMo in particular is that many of the projects are about taking an absolutely bizarre idea–what if you had a book that consisted of only the violent parts of The Iliad? What if you took all the dialog out of Pride and Prejudice? What if Alice went to Treasure Island? Or was chasing after Moby Dick? What if you had a story about recursively polite questioning elves? What do 50,000 meows actually look like?–and make them into actual books that you can read.
Jorge Luis Borges used reviews of fictional books to explore ideas without having to write out an entire novel. Procedural generation lets me explore ideas in a similar fashion–what if the characters in the stories in the 1001 Nights told stories about characters who told stories about characters who told stories…recursively?–but in a way that lets you read the result.
Now, I am not a fan of conceptual art. Just because you can generate a novel with a cool idea...and that you can even quote evocative passages from the novel...doesn't mean that you want to read all of the final, generated output. The translation of Moby Dick is sorely lacking and is not at all human-readable. It's possible that those who would most enjoy this "conceptual art" are the programmers who built this art.
At the same time, the Moby Dick translation received national press coverage. So maybe "generative art as conceptual art" might have a future, in pandering to people who like to see weird ideas come to life.
3 - Lovers of Personalized Content
What if you want to star in your own novel? One approach would be to write out a novel with a self-insert character, but that may be a long and tedious proces just to glorify your own ego. What if you have a personalized book
instead? You provide information about yourself, and then an algorithm plugs that information into a computer template
, thereby generating a novel with yourself as the main character.
Perhaps you are the only person who might like this novel. But you still enjoyed it, right? And the template can be reused to "personalize" novels for other people as well. Instead of selling one novel to a hundred people, why not sell a hundred novels to a hundred people?
To my knowledge, no personalized books have ever been written for NaNoGenMo. However, the "personalized book" industry has been well-established, able to generate children's books, romance novels, mystery novels, young adult novels...if someone has written a template, then you can generate a novel for yourself...as long you provide the proper keywords. A free version of the "personalized book" concept is also available at the plotgenerator website, generating a story along with a cover and title as well.
However, it is possible that as technology increases, personalization in literature can also be improved beyond mere templating. Game developers are already trying to personalize the gaming experience on a sophisticated level:
Games that tailor experiences to players have been around for a while. For example, zombie shooter Left 4 Dead has an AI game director that tweaks the action as you play. It looks through a catalogue of scenarios – what type of enemy, how many of them, what direction they will come from – and picks what it thinks will keep your heart thumping.
Combine an AI director with a catalogue of computer-generated material and we could start to see games built for individual players. Researchers are also working on systems that can automatically generate characters and stories. Ultimately, computer-generated games could drop us into tailor-made worlds that respond to how we play.
Or maybe we’re just getting carried away again. “It’s not clear to me that people really want to have the experience they think they want,” says [Gillian Smith, a researcher in procedural generation at Northeastern University in Boston, Massachusetts]. “We’re not all good improv actors.”
“If you threw me into a virtual environment with characters that could respond to anything I said, I’m not convinced I’d drive that experience in an interesting direction,” she says. “Do we really want an awkward cocktail party experience in a game?”
If personalization does wind up working in interactive mediums (video games), the odds are likely that this same technology can also be applied to non-interactive mediums (novels). We could imagine a far-off future scenario where an algorithm writes a book based on your own personal tastes and needs, inserting personalized scenes into a generic plot outline. Or maybe we're just getting carried away again.
2 - Binge Consumers
"I don't mind repetition. I'm that asshole that reads every single option every single NPC in adventure mode (DF) has, and speaks to every single NPC, reads every single book and letter, and the description of every item in every game I've ever played."---Ehndras
Why do humans write novels? Presumbly, so that other people can read them. However, humans do not think alike. Each human has their own unique and varied tastes, that can only be satisfied by certain kinds of novels. What one person may view as the "Great American Novel" and would consume voraciously, another person may dismiss as utter trash and refuse to even read. The existence of different "genres" in literature is a testament to the different preferences within the human race.
Is it possible, then, to find a group of humans who would have a preference (or at least, tolerance) towards the mass, unfiltered consumption of machine-generated literature? This "group of humans" can be small, as few as only a handful of people. But their existence would certainly matter in terms of determining whether "computer-generated literature" is legitimate. A niche genre is still a genre. (For more information about my thoughts about computer-generated literature turning into its own genre, please read The "Commonsense" Problem In Computer-Generated Works).
This thought came to me due to comments by Ehndras, a fan of the in-development roguelike Ultima Ratio Rengum (being built by Dr. Mark R. Johnson). After reading a devblog update about a newly-implemented conversation system, Ehndras posted:
I can easily put 50+ hours into URR in half a week, if the content is there to be exhausted!
I replied, almost in utter disbelief, at this statement:
This is shocking to me. It is very easy to produce unlimited content but getting a human to consume all that content is impossible since humans can easily get bored by that content. So writing an algorithm to produce a 50,000-word novel is easy but writing an algorithm to produce a 50,000-word novel that a human will read is difficult (hence, the NaNoGenMo competition).
If you consume 50 hours of content, and in each hour, reads 1000 words (a huge underestimate), you will consume 50,000 words of content. Assuming that you can tolerate the possible repetition of content, could Mark be the first person to have produced a human-readable, computer-generated novel...simply because, you, Ehndras, was willing to consume this content?
Ehndras, in his response to me, claimed that he can handle the task of reading 50,000 words due to his unique love for literature in general and his mastery of speed reading.
I'm a writer. Character development and lore are what I love in games. Otherwise, I wouldn't have played Final Fantasy X 60+ times, beaten Kingdom Hearts a dozen times, Played every single Fallout and Elder Scrolls including the oooooooooooooooooooold versions, etc.
Also, I can easily read a 500-page hardcover novel in a few short hours. I read ridiculously fast thanks to a weird technique I developed as a kid. I loooooooooove reading! I spend all day on Quora reading and writing :)
As of the time of this post, URR is still vastly incomplete, so Ehndras had not started on this quest to consume content. So we do not know yet whether Ehndras would successfully complete "50+ hours" of gameplay. However, the existence of readers such as Ehndras could bode well for the future of computer-generated literature. Instead of attempting to create "better" algorithms or working around their limitations, programmers could attempt to market their algorithms to humans who already want to binge-consume their machine-generated content.
1 - People Who Want To Consume A Existing Corpus
The idea that a computer could generate infinite content might be appealing on a surface level, but has some flaws. The major flaw that is mentioned is that a user may get bored with reading infinite content, once they see the patterns.
One often-neglected flaw is not mentioned that we already have infinite content that are produced by human beings. In fact there is so much content that many marketers are worried about a Content Shock, as users start to limit the amount of content that they are willing or able to consume. Reading itself is being transformed to skimming, as an attempt to adapt to the mass amount of information already on the Internet.
What if algorithms, instead of trying to generate new stories, serve to simply present a existing human-generated corpus in a new format? This could allow us to better sort through the infinite human-generated content that already exist, allowing us to extract valuable information from them. Using a human-generated corpus is also useful since the humans have already done the hard part of producing "readable text"...all the algorithm has to do is present that text in a useful fashion.
Technically, search algorithms have already been used to help us handle infinite content (Google is a prime example of this). More advanced content filters may be used in the future as well. But computer-generated novels can also serve to present and curate information within a corpus as well.
Consider the following computer-generated novels, which took an existing human-generated novel (that is already in the public domain), and then modified it to make it more appealing to different audiences:
People are able to now interpret the corpus in a new light, and are able to examine it more carefully and gather its insights. The effect can be even more pronounced if the reader was not familiar with the original corpus itself (and thus is willing to accept the text that the computer generated more readily than the original source).
There are also situations where a computer-generated novel may use elements of an existing corpus instead of modifying the whole corpus itself.
Virgil's Commonplace Book is a travelogue, where the author travels across the world. The author then discovers or is reminded of certain public-domain passages, which are then printed out for the people to read.
Our Arrival is a "a procedurally generated diary of an expedition through fantastical places that do not exist", using sentences from Gutenebrg public domain sources to provide evocative descriptions
NaNoWriMo, The Novel uses Tweets about NaNoWriMo to generate a novel about a protagonist trying to write a novel in November
In these novels, the algorithm both tells a enjoyable story and presents a filtered view of a corpus (whether it is public-domain passages or online tweets).
Just like every blog post on computer-generated literature, this blog post is computer-generated. Here's the source code.
I decided to be brave today by ordering the human-generated paragraphs based on a sentiment analysis algorithm. I use Senimental, a Ruby Gem that can determine the "sentiment" of textual content (specifically, whether a text is happy or sad). I then order the paragraphs in descending sentiment order, with the happiest paragraph first and paragraphs becoming progressively unhappy.
This approach was inspired by Kurt Vonnegut Jr.'s plot curves. Kurt believed that the plots of the story can be determined by how happy or sad each section of the story is, and I wanted to produce a blog post using the "From Bad to Worse" plot curve, where the story starts off happy and turns sad. (I have mixed-to-negative feelings about computer-generated literature, and I wanted it to show within this text.)
Here's the Sentiment values of each of the 'sections' in this essay according to the Sentimental gem (positive numbers indicate happiness):
- Spaced Content: 11.394800000000005
- Conceputal Art: 9.1441
- Personalized Content: 5.679799999999999
- Binge Consumers: 0.093799999999999
- Corpus Consumers: -1.1868999999999996
But sentiment analysis is not objective. Humans can have different opinions on the mood of a text, and algorithms are no different. To compare, I decided to use AlchmeyAPI's own sentiment analysis algorithm to determine the sentiment of these paragraphs. And, to my shock, AlchemyAPI suggested a different ordering.
Here's the suggested ordering of the pagraphs by AlchemyAPI (along with their sentiment value...positive numbers indicating happiness):
- Corpus Consumers: 0.217397
- Binge Consumers: 0.163047
- Conceptual Art: 0.0994031
- Personalized Content: -0.00243115
- Spaced Content: -0.0473679
This shows that your tools can have a very major effect on the final generated output. So...choose your tool wisely.
Instead of bookending my blog post with introductory and concluding paragraphs, I also decided to more explicitly adopt a listicle format, where each section is numbered off. The listicle is a quick and easy way of structuring content, and are thus very amendable to use by computers.
This will also be the last major article on "text generation". These articles have successfully scratched the surface of this interesting field, and trying to scratch the surface even more deeply will lead to diminishing returns. If you are still curious, I encourage you to conduct your own research into this field...and even to participate in this year's NaNoGenMo (held every November on GitHub). I may post another blog post if any new or revolutionary discovery occurs, but until then, I'm taking a well-deserved break.