Poetry by the Cybernetic Poet

Moon Child

A haiku written by Ray Kurzweil's Cybernetic Poet
after reading poems by Kathleen Frances Wheeler

Crazy moon child
Hide from your coffin
To spite your doom.


Ray Kurzweil’s Cybernetic Poet:

RKCP reads a selection of poems by a particular author or authors and then creates a "language model" of that author’s work. The language model incorporates computer-based language analysis and mathematical modeling techniques. RKCP can then write original poems from that model. The poems have a similar style to the author(s) originally analyzed, but are completely original new poetry.

RKCP can combine authors by creating language models using more than one author file. In addition, RKCP allows the user to create "poet personalities," each of which specifies a specific language model (which RKCP has created from one or more files of an author’s poems) and a set of parameters which control certain aspects of the poetry generation process. There can be multiple poet personalities derived from each language model. One of the parameters specified in a poet personality is the type of poems, which includes haiku, free form, and several other styles.

RKCP includes a plagiarism avoidance algorithm which attempts to avoid plagiarism of the original author(s) analyzed, where plagiarism is defined as more than 3 words in a row that appear anywhere in the original author(s)’ writings (however, note that identical word sequences of more than 3 words are not impossible, and may nonetheless occur).

RKCP uses the following aspects of the original authors that were analyzed to create original poems: the (i) words, (ii) word structures and sequence patterns based on RKCP’s language modeling techniques (while attempting not to plagiarize the original word sequences themselves), (iii) rhythm patterns, and (iv) overall poem structure. There are also algorithms to maintain thematic consistency through the poem. RKCP uses a unique recursive poetry generation algorithm to achieve the language style, rhythm patterns and poem structure of the original authors that were analyzed, without actually copying the original authors’ writings.

The language models produced by the "Poetry Analysis" program of RKCP contain analyses of the language structures found in the poems that were analyzed using language analysis techniques and a method similar to Markov modeling, a mathematical cousin of neural nets.

When writing original poems, RKCP does the following to write each word. It first determines a set of "goals" for the word. These goals are related to the association of this word to be written with other words already written, the word’s place in the poem and the poetry generation parameters defined in the current "poet personality." RKCP then searches for the word(s) used by the analyzed poet(s) that will fulfill this set of goals using computerized search techniques.

If it finds more than one word which fulfills the goals, it rates them giving each a score. It does not necessarily select the highest scoring word because that would cause RKCP to always right the same poem for a given poet personality. A higher ranking word is, however, more likely to be selected.

This selection is, however, only tentative because later consideration may cause the word to be ultimately rejected. RKCP continues this process writing word after word, but it often finds that no word will fulfill the goals that RKCP has set for a particular word. It then has to back up the process. It does this by deleting the previously written tentative word and selects another word at that position in the poem (that fulfills the goals for that earlier word), and then attempts to continue from this point. If ultimately all of the possible words at the earlier point (that fulfill the goals for that word) result in dead ends, RKCP then has to back up yet another word. This recursive process continues going both forward and backward. Thus like a human poet, the process of writing a poem is not necessarily always going in a forward direction. RKCP is continually reconsidering its tentative word choices until it finds words that all fulfill the goals at each point.

RKCP also has criteria for when to end a line and when to end a poem. It has criteria for how lines in the poem relate to each other. All of these criteria are used in the recursive generation of the poem. Some of these criteria have to do with the requirements of the poem type (i.e., Haiku).

Sometimes RKCP will discover that it is unable to write the poem or a section of a poem (i.e., a line) when it has fully and recursively exhausted all of the possibilities. It then uses an algorithm to ease the constraints inherent in the goals for particular words. It continues this process of easing constraints and recursively writing the poem (both forwards and backwards) until it can successfully write the poem or section of the poem.

Copyright 2000, Kurzweil CyberArt Technologies,