Thursday, January 18, 2007
Break on through....
With apologies to the Doors, I submit for your approval:
Of love
We will be silver
Silver
Water
Freezing
We will be white
After we will be white, freezing, seeing, silver as a flower.
Flowering silver leans
Freezing
Until we will be silver, freezing, standing, silver as a flower.
This is output from yesterday's Etc3 tests, straight from the machine, no edits (except bolding the title). We've often been criticized because our machine's results required human intervention--"editing to taste" was good enough for John Cage but not for us. This pretty much works and seems to us about as good as most of what's "out there." (We don't generally care for contemporary lyric poetry, but it's dominant in available publication space and so until we got the lyric right, those naysayers could rest content--but no more!)
This validates our choice of a tree adjoining grammar(s) for this iteration of the monster. Creating TAG nodes as independent trees allows their aggregation into more or less complex grammars. The grammar for this piece consists of seven trees, weighted variably for selection by the generator. The structurally identical lines closing the second and third stanzas are the result of syntactic structures built up from a subordinate clause (itself an aggregation of two trees), two participles, and a "simile" node.
And, by the way, we aren't positing these lyrical structures from our own notions of poetic form. We go to poetry as it exists for that.
Comments:
<< Home
This looks really promising Jim ! It would be interesting to see some of the "guts"/code that generated this, some grammar rule examples etc.. I've read over your previous LTAG postings, and looked at the Penn XTAG site too... but i'm really curious to have a peek at some of the implementation details...
I'm not ready to expose the code just yet. Every day is an exercise in radical refactoring and the code is a bit inflamed. Since this is my first Java project, there is also the occasional (more than occasional, really) embarrassment. which I'd like to fix before opening this guy up. The plan is to open source the whole thing in a year or so.
But until then, here's a sample of the grammar:
Prepositional Phrases
A very general description of the source: Poem as a decorator, containing stanzas containing TAG trees. Stanza generation governed by document planners. TAG tree as a container for the root of the tree, basically a plain old tree structure with a root node and descendants (and stanza as ultimate root). Each node represents an entry in the xml. A grammar class reads the xml and then accesses a node factory to create the nodes. The grammar's only responsibility is to build these trees. There is a point-of-view bias class. And finally a bag-of-words class which is essentially a proxy to the semantic model (which is a meta model--there are actually three different models in the works).
Lots of details of course. E.g.: Tree adjoining and adjunction happens in the Node. Several Word classes. Surface realization. Enums for number, person, etc. Utilities to fix problems in the database and assign trees to grammars and add pronunciations to the database and on and on and....
Post a Comment
But until then, here's a sample of the grammar:
Prepositional Phrases
A very general description of the source: Poem as a decorator, containing stanzas containing TAG trees. Stanza generation governed by document planners. TAG tree as a container for the root of the tree, basically a plain old tree structure with a root node and descendants (and stanza as ultimate root). Each node represents an entry in the xml. A grammar class reads the xml and then accesses a node factory to create the nodes. The grammar's only responsibility is to build these trees. There is a point-of-view bias class. And finally a bag-of-words class which is essentially a proxy to the semantic model (which is a meta model--there are actually three different models in the works).
Lots of details of course. E.g.: Tree adjoining and adjunction happens in the Node. Several Word classes. Surface realization. Enums for number, person, etc. Utilities to fix problems in the database and assign trees to grammars and add pronunciations to the database and on and on and....
<< Home