reporter.addFactor(best, J - 1);
//System.out.println(viterbi);
int e = best_s;
for (int f=J-1; f>0; f--) {
if (e <= 0) {
throw new ZeroProbabilityException(" Error f=" +f+" e="+e+
" sentence + \n" + viterbi + "\n" + emission + "\n" + transition + "\n" + backtrace);
} else {
if (viterbi.get(f, e) < 0.0) {
// hack to avoid errors
try {