Sort:  

markovify is pretty good as long as your set of text is long enough. I would recommend 3000 lines at the very least to have a 'meaningful' output. For the grammar, it is not that bad ... as long as you don't mix languages, differents styles in your text set.

If you want to see projects using markovify, here you go : https://github.com/jsvine/markovify#markovify-in-the-wild

.