[SRILM User List] -posterior-decode vs -viterbi-decode

Ilana Heintz heintz.38 at osu.edu
Thu Jan 21 13:44:28 PST 2010


I am trying to work out the differences between two ways of decoding an 
HTK lattice using higher-order ngram models.  My main question is, does 
the -posterior-decode option take into account the higher-order n-grams?

I am using these commands:

lattice-tool -read-htk -in-lattice-list htklats -lm expD9a.lm
  -viterbi-decode -unk -keep-unk -order $i


lattice-tool -read-htk -in-lattice htklats -lm expD9a.lm 
-posterior-decode -unk -keep-unk -order $i

where expD9a.lm includes up to 6-grams, is calculated with Witten-Bell 
discounting, and $i ranges from 3 to 6. I get the following results, 
which represent the accuracy of the chosen paths for the 80 utterances in 

For -viterbi-decode:
3-grams 72.34
4-grams 72.42
5-grams 72.36
6-grams 72.36

For -posterior-decode:
3-grams 74.43
4-grams 74.43
5-grams 74.43
6-grams 74.43

In looking more closely at the -posterior-decode results, I'm pretty sure 
it's giving the same best path every time, regardless of the order of the 
LM.  Also, when I use the -debug 2 flag, I notice that with 
-posterior-decode, this note:

Lattice::expandToLM: starting expansion to general LM (maxNodes = 0) ...

comes _after_ the best path is given.  Should I interpret this to mean 
that the expansion (which I think means making the lattice include 
higher-order probabilities) does not happen in time for the decode? Is 
there a way to change that, since the posterior decode seems to be working 
better than viterbi in this instance?

Any insight on how these two decode methods work, or what situations each 
is more appropriate for, would be appreciated.


More information about the SRILM-User mailing list