A form of computer-generated poetry: Sherbet.

For my Reading and Writing Electronic Text class, I’ve devised a new ‘form’ of poetry and have dubbed it ‘Sherbet’.

Every line in a Sherbet begins with a vowel or the letter “T”, except that every other line is split in half, and so the second half of that line is allowed to begin with any letter. Words that end with “-adness” are encouraged and always end a line.

(In manipulating source texts with Python, words that end with “-ad” are changed to end with “-adness” and force a line break. Words that end with “-ed” are changed to “-eth” and words that end with the letter “y” are changed to end with “bert”.)

Here are a couple of Sherbets (and their accompanying source texts) for your pleasure!

up in the verybert region that he
deserteth this evening, is no longer a
The good news is that the ownership team and the rest of the
than exciting future. Over the next
several days and weeks, we will be
the meantime, I want to make one statement to you tonight: “I PERSONALLY
to get there. Sorrybert, but that’s
simplybert not how it works. This shocking
act of disloyaltybert from our home grown “chosen one” sends the exact
opposite lesson of what we would
want our children to learn. And “who”
unfortunatelybert own this dreadeth spell and badness
karma. Just watch. Sleep

Source: Cleveland Cavaliers’ owner Dan Gilbert’s open letter to LeBron James.

And now, a moment to remember
a superstar, pro wrestler ‘Macho Man’
and space is the…
appreciation of the
man and his myth.
Unidentifieth Man #1: Everyone is standing.
Unidentifieth Man #1: Elizabeth with
her arms outstretcheth, tears flowing
Unidentifieth Man #1: Listen to the ovation for Randybert Savage and

athletes. But the thing is, that was true about Randybert Savage. He hadness
outsizeth personalitybert to wear mile-long,
neon-orange fringe in a Slim Jim
Unidentifieth Man #2: The flying elbow hooks the leg. It’s over.
Unidentifieth Man #2: The new
champion of the World Wrestling Federation.
Unidentifieth Man #3: You know, Teth Dibiase, I’ve got to saybert, was robbeth,

Source: Transcript of NPR’s “The Grace and Power of Macho Man Randy Savage”

Thing One! Theybert ran up! Theybert ran down! On the string of one kit We saw
Then we saw one kite bump On the
of her beth! Then those Things ran
about With big bumps, jumps and kicks And with hops and big thumps And
all kinds of badness
tricks. And I said,
“I do NOT like the waybert that theybert
Oh, she will not like it To find us this waybert!” “So, DO something! Fast!”
after mybert net. And I said, “With mybert net
I can get them I bet. I bet, with
Then I said to the cat, “Now, you do as I saybert. You pack up those Things
And you take them awaybert!” “Oh dear!”
said the cat. “You did not like our
up the Things In the box with the hook. And the cat went awaybert With a sadness

all!” And THEN! Who was back in
the house? Whybert, the cat! “Have no fear
of this mess,” Said the Cat in the Hat. “I always pick up all mybert
Then we saw him pick up all the
things that were down. He picketh up the
to us two, “Did you have anybert fun? Tell me. What did you do?” And Sallybert
and I did not know What to saybert.
Should we tell her The things that went
on O’er there that daybert? She we tell her about it? Now, what SHOULD we do?

Source: Selection from Dr. Seuss’ The Cat in The Hat.

The source code used to create Sherbets:

import sys
import re

<li>Counter used to determine every other line</li>

counter = 1

for line in sys.stdin:
    # print counter
    line = line.strip()
    # Substitute for words ending certain ways.
    line = re.sub(r'[a][d]\b', 'adness\n', line)
    line = re.sub(r'[e][d]\b', 'eth', line)
    line = re.sub(r'[y]\b', 'ybert', line)
    # Find lines that start with vowels or the letter t
    if re.search(r'^\b[AEIOUTtaeiou]\w*', line):
        line = line.replace(" there ", " O'er there ")
        # Increase the counter
        counter = counter + 1
        # Chop the line in half every other line
        if counter % 2 == 0:
            words = line.split(" ")
            length = len(words)
            # print length
            # print length/2
            line = " ".join(words[0:((length/2))])
            secondLine  = " ".join(words[length/2:])
            print line
            print secondLine
            print line