Natural Language Error Correction and Detection