Playing with WordNet and CMUDict (again). Starting to look interesting. The rhyme information is from the pronunciation dictionary. The drop-down in the picture contains more relationships than just synonyms (other WordNet files). The numbers to the left of the lines in the poem are syllable counts, more-or-less. Some words are not in the tables. And I'm making a guess that every syllable has exactly one vowel-like sound.
attached is some starter code for WordNet. Not the whole project yet...but it will take the word "disk" and find synonyms...If you don't recognize "harrow" you are not in the field.