diff --git a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c index 6e1c379f7f6d1df85e3c5e931b3103109990dfd9..bbfaf481454c7d32e95b8326b4c165f33573cab9 100644 --- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c +++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c @@ -151,9 +151,10 @@ void simple_decoder_parser_arc_eager(context *ctx) int index; float score; - double sumExp = -1; - double currentSumExp = 0.; + double sumExp = 0; + double currentSumExp = 0; double ScoreTranslation = -10.; + int FlagNotInitExp = 1; word* word_scored; @@ -195,11 +196,11 @@ void simple_decoder_parser_arc_eager(context *ctx) if(b1 && b2 && b3){ printf("\n*** %f %f %d %f \n",ScoreTranslation,vcode_array[i].score, i, sumExp); - if(sumExp + 0.5 < 0){ + if(FlagNotInitExp){ printf(" %f %f %d ",ScoreTranslation,vcode_array[i].score, i); ScoreTranslation += vcode_array[i].score; printf(" %f " ,ScoreTranslation); - sumExp = 0; + FlagNotInitExp = 0; } if(vcode_array[i].score - ScoreTranslation > 0){ sumExp += exp(vcode_array[i].score - ScoreTranslation);