Neural spell-checker: Beyond words with synthetic data generation