1. A method comprising: receiving, from a social media forum, a correctly-spelled word having a non-canonical spelling, the non-canonical spelling comprising a correct spelling of a variant of a canonical spelling of the correctly-spelled word; forming a linear finite state machine based on the correctly-spelled word; composing the linear finite state machine with a finite state transducer, wherein the finite state transducer comprises a vector space model trained from a corpus of noisy text, and wherein words within the finite state transducer are clustered based on context, to yield a modified finite state machine; composing the modified finite state machine with a language model constructed from clean vocabulary sentences to yield a resulting finite state machine; performing a best path function on the resulting finite state machine, wherein the best path function comprises: selecting n-best vector paths in the vector space model which are neighbors to the non-canonical spelling; and selecting, based on a similarity cost, a best path from the n-best vector paths; and nominating a proposed word associated with the best path as a canonical form.