2016 icon indicating copy to clipboard operation
2016 copied to clipboard

Method survey 2016

Open agladysh opened this issue 7 years ago • 23 comments

List of generation methods used in NaNoGenMo 2016.

This top post shall serve as the canonical resource. Please comment below for inclusion.

The categories are preliminary and miss definitions. Any help with that is appreciated.

  • Markov chains: #143, #131, #45 (with text templates and simulation).
  • Text templates: #136 (iterative), #137 (iterative), #128 (recursive), #125 (recursive), #6 (with simulation), #113, #12, #8, #155 (with simulation), #128 (with recursion), #133 (with recursion), #147 (with recursion), #130 (with recursion and simulation), #114 (with neural networks and simulation), #45 (with Markov chains and simulation).
  • Recursion: #128 (with text templates), #133 (with text templates), #147 (with text templates), #125 (with recursion), #130 (with text templates and simulation).
  • Literary text post-processing: #139, #135, #12, #15.
  • Non-literary text or data post-processing: #49 (text), #149 (tweets), #24 (dictionaries), #61 (time), #138 (tweets).
  • Neural networks: #114 (with text templates and simulation).
  • Simulation: #6 (with text templates), #155 (with text templates), #130 (with text templates and recursion), #114 (with text templates and neural networks), #45 (with text templates and Markov chains).

Any single project may be listed under several categories.

agladysh avatar Dec 02 '16 07:12 agladysh

The list of categories is tentative (and is loosely based on https://habrahabr.ru/post/313862/). If you feel that there is no good fit for your project, please list it under a new category in the comments. Contributions of brief definitions for any category are also welcome.

agladysh avatar Dec 02 '16 07:12 agladysh

I, #128, was recursive text templates.

dranorter avatar Dec 02 '16 08:12 dranorter

#6 is text templates plus simulation

ikarth avatar Dec 02 '16 13:12 ikarth

Literary text post-processing: #139 #135 #12 Non-literary text post-processing: #49 Text templates: #113 #12 #8

enkiv2 avatar Dec 02 '16 15:12 enkiv2

Text templates (with a small amount of recursion): #125 Markov chain: #143

serin-delaunay avatar Dec 02 '16 16:12 serin-delaunay

#131 Markov Chains

edgriebel avatar Dec 02 '16 17:12 edgriebel

#155 text templates and simulation

binaricorn avatar Dec 02 '16 17:12 binaricorn

@dranorter, @serin-delaunay Do you think that the "recursive" part in "recursive text template" is important?

NB: That's a serious question, not trolling. I am not sure yet about how to approach the classification.

agladysh avatar Dec 02 '16 18:12 agladysh

I updated the list. Many thanks for contributions! Please feel free to comment on the format and the content — and to classify more entries! :)

agladysh avatar Dec 02 '16 18:12 agladysh

#149: non-literary text (tweets), post-processing

moonmilk avatar Dec 02 '16 18:12 moonmilk

Aha! About the recursion: I just noted that there is a separate "recursion" method. I guess we do need to work out definitions here.

In https://habrahabr.ru/post/313862/ "recursion" section actually describes two separate approaches.

First is where the text consists of many shorter stories, with the end of the previous story naturally leads to the beginning of the next one. #136 uses this approach. I propose to call this method iterative text templates, as there is no "depth" in the recursion, it is used more as a literary device than as a method of text generation.

The second approach is true recursion, where the content is of a fractal nature, so to say. See Transorbital anaphase provine biforn the pure-bred synostosis as an example, which is basically a set of nested dictionary definitions, or Redwreath and Goldstar Have Traveled to Deathsgate, where two characters have a discussion about their discussion, ending up with «You want to know whether I am asking whether you are asking whether you shall tell me whether you want to know whether I believe I can answer that?»

agladysh avatar Dec 02 '16 19:12 agladysh

Right; my #128 is making a point of having several types of "true recursion;" sub-quests, locations within locations, and stories within stories.

[...] or Redwreath and Goldstar Have Traveled to Deathsgate, where two characters have a discussion about their discussion, ending up with «You want to know whether I am asking whether you are asking whether you shall tell me whether you want to know whether I believe I can answer that?»

Nice! I wish I had thought to include that!

dranorter avatar Dec 02 '16 20:12 dranorter

#133 and #147 used text templates and recursion.

QuinnKybartas avatar Dec 02 '16 21:12 QuinnKybartas

I didn't mean to distinguish recursive and non-recursive text templates as methods; recursion was one of the methods listed, and I found it unclear what it meant as a method. Since a few of the templates used in #125 were recursive (primarily object lists, usernames, and passwords), and since fortunes are told for children, grandchildren, and great-grandchildren using recursion, I thought it might be appropriate to list #125 under recursion as well as under text templates.

serin-delaunay avatar Dec 02 '16 23:12 serin-delaunay

It would look cleaner to just list the recursive template examples under "recursion". Though I'd like to know what other sorts of recursion might be used. A train, generate, train, generate, train loop? Repeated OCR of printouts of Gutenberg texts?

dranorter avatar Dec 03 '16 08:12 dranorter

#130 "Text templates with recursion and simulation"

I have a tree of possible events in the story and then a recursive template that says which events to choose when creating the story. Recursion because the story follows a "goal>subquest>subsubquest" model and simulation because different events in the story affect the "world state" which can be accessed later on to generate text.

nagolinc avatar Dec 03 '16 11:12 nagolinc

#114 used neural networks, simulation and text templates.

spikelynch avatar Dec 05 '16 00:12 spikelynch

I used a few of these ( #45 ). "Filler" scenes were generated with Tracery or by filling in simple templates. Combat scenes were done with a simulation. Markov Chains (seeded with a large list of cities) to generate names for people and places. Didn't reference other works, unless you count the covers, which mixed and matched a few templates and PD or creative commons artwork.

joeld42 avatar Dec 05 '16 18:12 joeld42

#24 uses sentence similarity derived from WordNet and Corpus statistics in addition to aleatory page selection from a given set of documents; so it's two different uses/methods approaching corpora—there's probably a way better way to describe this.

dluman avatar Dec 08 '16 13:12 dluman

#15 uses an approach inspired by the "Story Compiler".

I suppose the "Story Compiler" and its derivatives could all belong to the "literary-text post-processing" category (the actual literary-text is kept mostly unmodified, but the story compiler decides when it shows up in the story). But you could also argue that it's a "template/simulation" hybrid as well (simulating an author's mind in coming up with a plot and then plugging in paragraphs to fit that plot). I think this just goes to show how arbitrary the process of categorization can be.

Personally, I'd support listing #15 under "literary-text post-processing though", especially as no templates were actually being used.

tra38 avatar Dec 09 '16 02:12 tra38

Many thanks for the submissions, feedback and your work on the NaNoGenMo, all! I updated the issue text. Any further comments, critique and other feedback are appreciated — not to mention more submissions to this list!

agladysh avatar Dec 09 '16 05:12 agladysh

  • https://github.com/NaNoGenMo/2016/issues/61 is "non-literary text or data post-processing (time)"
  • https://github.com/NaNoGenMo/2016/issues/138 is "non-literary text or data post-processing (tweets)"

hugovk avatar Dec 09 '16 08:12 hugovk

Updated, thank you! Any more submissions? :)

agladysh avatar Dec 18 '16 12:12 agladysh