ML model to transform words I build model that on input have correct word. On output there is possible word written by human (it contain some errors). My training dataset looks that:

input - output  
hello - helo  
hello - heelo  
hello - hellou  
between - betwen  
between - beetween  
between - beetwen  
between - bettwen  
between - bitween


etc.
During preprocessing I add a measure of the distortion of a word. Then I hardcoding letters for numbers.
My current model's using CNN. The number of neurons of input is the same as the longest word in training dataset and the number of neurons of output is the same as the longest word in traning dataset. 
This model doesn't work as I excepted. Word on the output is not look as I except.
eg.

input - output
house - gjrtdd


Question:

How can I build/improve model for this task? Is CNN a good idea? What other methods can I use for this task?
Try a totally different approach, using Generative Adversarial Networks.

For this purpose you need:


A Generator 
A Discriminator 


See the scheme (credit O'Reilly):



The "Real Images" block in the scheme should be your training dataset (or ground truth). The Generator should generate the distorted words and the Discriminator should verify if the word is "adequately" distorted, based on a criterion of your choice, which can be any similarity measure between known words (database) and the generated one. Both the Generator and the Discriminator get trained on-the-go while in the training phase and in the end you will have two trained networks, of which the Generator would be very useful for your purpose.

Helpful source: https://deeplearning4j.org/generative-adversarial-network