  Automatic spelling and grammatical correction systems are one of the most
widely used tools within natural language applications. In this thesis, we
assume the task of error correction as a type of monolingual machine
translation where the source sentence is potentially erroneous and the target
sentence should be the corrected form of the input. Our main focus in this
project is building neural network models for the task of error correction. In
particular, we investigate sequence-to-sequence and attention-based models
which have recently shown a higher performance than the state-of-the-art of
many language processing problems. We demonstrate that neural machine
translation models can be successfully applied to the task of error correction.
  While the experiments of this research are performed on an Arabic corpus, our
methods in this thesis can be easily applied to any language.
