Word Discovery With Rhythmic Poetry


Poets of Sound and Time

Tasked with writing poetry through word embeddings and k nearest neighbors, acrostify is an acrostic poem generator that explores synonyms and similarity. The constraint of an acrostic poem was a fun challenge, yielding very interesting results. It was difficult to guarantee that a k-nn search would guarantee the acrostic constraints, especially with words containing "z" or "y". This required an iterative algorithmic approach to traversing through a 50 dimensional word vector space. Sonifying the poem was quite satisfying, and the results that it yielded were quite clever and amusing.

if trees could fly is a poem that applies logically implies illogical analogies. This was a simple logic operation but chained together yielded hilarious results. To aid in nonsense, rhythm was especially important in the punch line of delivery. The advantage of the ChucK environment made it easy to control the rate at which words were delivered, enforcing an iambic pentameter. Recursing faulty analogy to the n-th degree and playing tritones, the poem descends into absurdity, just like machines writing poetry.

Some of the things that I learned when writing these two poems was that the dimensionality of the vector space was really important. Prioritizing accuracy and similarity for acrostify could only be achieved in the 50 dimensional word2vec model. This made the poems sound much more "intelligent." On the contrary, if trees could fly explicitly exploits this limitation using the 2 dimensional model for something that is more nonsensical. Between the two models there's a huge task of processing power and latent space size, so I'm curious as to how to make a 50 dimensional model more efficient in space and size, but still prioritizing accuracy beyond PCA and TSNE.

These two poems take a similar rhythmic and sonification approach so if I were to do this again, I'd be curious and try something completely different.

download poems and code: HERE

if trees could fly