Saturday, July 21, 2007
Off for a while
I won't be posting for a while (not that I've done much posting at all these last few months). Gus and I are off for a three-week cross-country jaunt. This time we've planned for 26 states and a little bit of Canada.
Sunday, July 15, 2007
New deployment
I've deployed a new version of etc3: Here. The most noticeable change is the link to stored poems. I vacillate between storing and discarding generated poems (though the vacillations occur at far distant intervals). In this version, you can get a random poem, but can't retrieve any given one, sort of an amalgam of storing and discarding I suppose.
With this version, I've retired etc2. All links redirect to the new (or should). I'll miss Erica's chanting every time the generation server genned a poem. That machine sits in my office and now serves no useful purpose. I'll be retiring it too.
This is no longer beta software, but I've kept beta in the name, because I don't feel like deploying an entirely new site.
Comments, suggestions, bug reports welcome.
Thursday, July 05, 2007
To halve and halve not
Assume an editorial fitness function that actually works. How would the next generation of poems be bred? What is the string of genetic markers and how might they be split so that they could match up with halved markers from another poem?
The easy (and wrong) answer would be to divide up each poem's lines and make a new poem out of some from each parent. But that's just another way of randomizing, what the generation function does and what we now claim is insufficient for consistent quality.
Say we have two poems, both of which have passed the first test of the fitness function, who are having drinks (or maybe just lunch) and are pretty close to deciding to go ahead and do it. The issue of such a dalliance would be stronger, weaker, or about as strong as these soon-to-be lovers. And that relative strength would inherit from the parents' basic characteristics: tone, diction, allusion, etc, etc, etc.
But how to reduce these things to codable properties?
Monday, July 02, 2007
The recognizable new
At E-Poetry 2007, I had the opportunity to discuss poetry generation with Pablo Gervás. He works in a broader project, computational creativity. Which, of course, got me to asking questions as just what that means. How would you know that a computer had been creative? Probably the way you know that a person has been creative, the creation of something new.
But not just anything new. The new new has to be alike enough to the old new to be recognizable as an idea in the field under discussion. (There is an acronym in systems design, SUD, which stands for system under discussion and I'm tempted to try to coin another, FUD, but that's been taken. Come to think of it, FUD somehow does seem appropriate. Oh well....)
And this new can't be too radically new, no matter how brilliant. Otherwise lesser minds wouldn't be able to see the innovation--they'd simply scoff or ignore for a few decades (e.g., Gertrude Stein).
Expanding from the previous post, what we want a GA or maybe objective function to be able to do is recognize that a piece be structurally (in all the provocative senses) poetic, but at the same time just a bit different than what's in vogue.
This is why it is so difficult to design a fitness function. What's the target? I discussed this problem with a colleague over lunch recently. His guileless response: Write something entirely different and do it exactly like this.
daniel howe sent me a quote from Nemorov that says the same thing, a bit more bitingly formal:
the poet’s task has generally been conceded to be hard, but it may also be described as to make it logically impossible: Make an object recognizable as an individual of the class P for poem, but make it in such a way that it resembles no other individual of that class.
Hence the fitness function seems an impossibility. But I think I have a way around this.
More soon.
Sunday, July 01, 2007
etc4
OK. I've held firmly to the position that genetic or hill-climbing algorithms are not appropriate for computationally generated poetry. My reasoning has been that poetry is virtually impossible to model and that even if you could, writing to the model would all by itself invalidate the output. Whatever poetry is, reasonable people could not disagree that one of its hallmarks is originality. And as soon as you write to a model, you are writing to someone else's product, and have lost any possible hope of being new. And because you know what it is you want before generation, you should put all of the intelligence in the generative modules and just forget about trying to write a fitness function. But my mind is changing.
My goals in the etc project include making software whose first draft is the final draft. Since Charles Hartman, folks in this field have held that their generated poetry was a dropping off point, that the work wanted a human touch. But the problem with that approach is that it gives the human-centric critics, with their socially constructed and entrenched intelligism, what they see as a reason to dismiss us. The argument goes that if a piece requires editing, the machine isn't really doing the work. I've been working to get there. And I'm reasonably satisfied with etc3's results. (BTW: There is a more recent version that's been sitting on my development machine for a couple months. I hope to get around to deploying him soon.)
However, though etc3 puts out some decent stuff, it doesn't always or consistently do so. The poems that I post here are ones that I've selected from the many that I encountered during testing. This too is an editorial function. But where previously the editorial process was engaged with revision and rewrites, the editorial process now is one of selection, rather like the judgments journal editors make when selecting (from the baskets of poems they receive each quarter) some few for publication, in essence a process of rejection, with what's left over or "good" released into the wild.
It occurs to me that this process is one that might lend itself to a GA. But rather than selecting for some subset of a population of poems, the fitness function should select against bad ones.
BTW: If Charles Hartman were a true Ameican, he'd get off that scooter and buy a Harley!
More to come.