I'm just beginning to study automatic grammar correction, and was wondering what good methods are for this problem. I have a system that will select spelling candidates for each term, individually, and was considering the following approach for automatic correction: given a window of one, two, or three, leading and trailing terms to each term, select the spelling candidate which maximizes the probability of the terms appearing together. Move this window over each term in the original document, and copy the results to a new buffer, then update the original document's buffer with the new one and run this algorithm over it. Finally, repeat the process to convergence or until I surpass some iteration threshold.
Is this a good approach? If there are better methods, what are they?