Algorithm transforms prose to poem minimizing changes to the initial text. My approach is to find the most appropriate words to insert/replace words using bidirectional recurrent neural network language model and then find the best path through different options. Poems obey rhythmic and rhyme constraints.
More details in the article https://github.com/brand17/Poem-generator-from-russian-prose/blob/master/Algorythm%20for%20generating%20poetry_formatted.pdf.
Buttons "Next pattern" / "Previous pattern" - to move through different rhyme patterns.
Buttons ">>" / "<<" - move through different rhythms for line.
Combo boxes - choose another rhyme for rhyme pattern.
Left mouse button - show other possible words.
Right button - delete word.