Rather than working like a Markov Chain text generator (which as far as I understand it is based on probability alone), it generates a specific grammar for the body of text you feed it and then generates new text based on that grammar, so its imitations should resemble the original more.
($_='kkvvttuu bbooppuuiiffss qqffssmm iibbddllffss')
=~y~b-v~a-z~s; print
|
|---|