One might ask whether we could simply apply the sequence of edit
operations in the generated edit plan to the corrupted input sequence
directly to recover the original input sequence
heuristically. For example, if we align “<ReplaceOld>
[MASK] <ReplaceNew> user <ReplaceOld>” with the corrupted input
sequence “@param [MASK] List of user objects”, it is very
clear that all we need to do is replace [MASK] with “user”and no
additional generation is needed. However,
there are two main issues with this. First, not all operations will be
specified in a deterministic manner (e.g., if there were two [MASK]
tokens in the corrupted input sequence, which one(s) should be
replaced?). Next, the generated sequence of edit operations do not
correspond to contiguous output tokens, and so they may not capture
important properties of language such as fluency and
coherency [1]}.
