Codes for the paper "Instantaneous Grammatical Error Correction with Shallow Aggressive Decoding" (ACL-IJCNLP 2021)
Model | P | R | F0.5 | Speedup |
---|---|---|---|---|
Transformer-big (beam=5) | 73.0 | 38.1 | 61.6 | 1.0x |
Our approach (9+3) | 73.3 | 41.3 | 63.5 | 10.3x |
Our approach (12+2 BART-Init) | 71.0 | 52.8 | 66.4 | 9.6x |
12+2 BART-Init | CoNLL-14 | BEA-19 | ||||
---|---|---|---|---|---|---|
Beam | P | R | F0.5 | P | R | F0.5 |
1 | 71.0 | 52.8 | 66.4 | 74.7 | 66.4 | 72.9 |
5 | 71.4 | 52.8 | 66.7 | 75.8 | 66.3 | 73.7 |
conda create -n SAD python=3.6
conda activate SAD
conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.2 -c pytorch
cd fairseq
pip install --editable .
This section explains how to decode in different ways.
PTPATH=/to/path/checkpoint*.pt # path to model file
BINDIR=/to/path/bin_data # directory containing src and tgt dictionaries
INPPATH=/to/path/conll*.bpe.txt # path to eval file
OUTPATH=/to/path/conll*.out.txt # path to output file
BATCH=xxx
BEAM=xxx
bash interactive.sh $PTPATH $BATCH $BEAM $INPPATH $BINDIR $OUTPATH
python inference.py --checkpoint-path $PTPATH --bin-data $BINDIR --input-path $INPPATH --output-path $OUTPATH --baseline
python inference.py --checkpoint-path $PTPATH --bin-data $BINDIR --input-path $INPPATH --output-path $OUTPATH --aggressive