Evaluate the performance of the decoder for each semiotic class
@yzhang123 

For the `english-joint` model, these are the evaluation results:
```
TN (Forward Direction)
DATE                  0.999% (2829/2832)
CARDINAL              0.994% (1031/1037)
LETTERS               0.996% (1345/1350)
PLAIN                 0.997% (352/353)
VERBATIM              1.0% (302/302)
MEASURE               0.993% (141/142)
DECIMAL               1.0% (92/92)
FRACTION              0.875% (14/16)
ORDINAL               0.99% (102/103)
TELEPHONE             0.919% (34/37)
MONEY                 0.973% (36/37)
ELECTRONIC            0.735% (36/49)
DIGIT                 0.886% (39/44)
TIME                  1.0% (8/8)
ADDRESS               1.0% (4/4)
```

I don't add a new script for evaluating the tagger because it can be simply evaluated as follows:
```
tagger_trainer, tagger_model = instantiate_model_and_trainer(cfg, TAGGER_MODEL, False)
tagger_model.setup_test_data(cfg.data.test_ds)
tagger_trainer.test(model=tagger_model , verbose=False)
```