The HMMs occasionally merge paths that should be separate. One hint that this is happening is a state that matches multiple characters well. The SplitVagueStates operation replicates such states, duplicating the in- and out-edges, and modifies the probabilities in the states so that each only matches one character well.
A related operation (SplitStates) attempts to separate two
paths, splitting any state that has two high-probability out-edges (or
two likely in-edges). This operation is essentially the reverse of
what MergeStates does. SplitStates was not used in any of the scripts
for the HMMs of Table 4
.