# Think Twice: A Post-Processing Approach for the Chinese Spelling Error Correction
## 4 Approach
### Post-Processing  
We introduced a post-processing operation to help the algorithm avoid unnecessary replacements as much as possible in actual error correction tasks. Post-processing is a pervasive operation in various natural language processing tasks. Typically, in machine translation, the post-edit [28] corrects the model's first translation content, improving the final translation effect. In the past year, many abstract text summary algorithms have applied post-processing to prevent factual errors [29]. In the Chinese Spelling Error Correction field, further processing of the language model's correction results has gradually become a common method, such as FASPell [2] and adaptable filtering [24]. From the perspective of artificial intelligence, no matter how complex a neural network is, it is just a simple reflection model. So, the model's inference ability is always limited. We can improve the models' performance by adding planning and strategy. The post-processing operation is the first step from a simple reflection model to a more complex model.  
As mentioned in Section 3, the core reason why SpellGCN and other SOTA models perform so poorly, in reality, is that the data in the training set and application scenarios do not conform to the assumption of independent and identical distribution. However, we cannot use data with the same distribution as the application scenario to train the model because the training data, which contain a few errors, cause the training process to be hugely inefficient, and the model cannot learn sufficient error-correction information. Thus, we can only separate model training and inference and use a post-processing operation to bridge the gap between the two.  
Making models imitate humans as much as possible is one of the secrets to making machines smarter. The \"two-step\" error correction method is usually a standard behavior when humans perform Chinese Spelling Error Correction. In the first step, humans determine the candidate set for the suspected error in the sentence. The candidate set contains all possible modifications to the wrong character. In the second step, they analyze the connection between the previously obtained candidate character and the original character. Then, humans replace these two characters to judge whether the sentence's meaning has changed. They repeat the second step continuously to select the most appropriate candidate character as the correct one. The most current algorithms only complete the humans' first step in the error correction task and then decide the character with the highest probability value among the candidate sets as the error correction result.  
\begin{table}
\begin{tabular}{c c c c c c c c} \hline \hline  & \multicolumn{3}{c}{**Detection**} & \multicolumn{3}{c}{**Correction**} \\ \hline  & **D-P** & **D-R** & **D-F** & **C-P** & **C-R** & **C-F** & **FPR** \\ \hline SIGHAN15 & 85.9 & 80.6 & 83.1 & 85.4 & 77.6 & 81.3 & 13.2 \\ \hline _Triple Door_ & 21.1 & 47.1 & 29 & 15.8 & 35.3 & 21.7 & 26.6 \\ \hline \hline \end{tabular}
\end{table}
Table 1: CRC results of SpellGCN on _Triple Door_ at character level. P, R, F represent Precision, Recall, and F1 score. We also give the correction’s False Positive Rate (FPR) at the sentence level. The FPR value represents the rate of false, corrected sentences to the total number of correct sentences.  
Therefore, we added a post-processing operation after the existing error correction model. This operation is a classification process. Its input is the suggested error correction result given by the error correction model, and the output chooses whether to adopt this suggestion. If this classification model is accurate enough, it may slightly reduce the recall rate of text error correction while significantly improving its precision.