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 8671b3869423f7a855c10e393f88dc22a28827bd..1458686673017d8e6ec77a90db48fd4d4b6eb5a3 100644 --- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c +++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c @@ -151,7 +151,7 @@ void simple_decoder_parser_arc_eager(context *ctx) int index; float score; - double sumExp = 0.; + double sumExp = -1.; double currentSumExp = 0.; double ScoreTranslation = -150.; @@ -194,8 +194,9 @@ void simple_decoder_parser_arc_eager(context *ctx) int b3 = respect_buffer_constraint(ctx->partial_mode, c, movement_parser_type(vcode_array[i].class_code), movement_parser_label(vcode_array[i].class_code)); if(b1 && b2 && b3){ - if(sumExp == 0.){ + if(sumExp < 0.){ ScoreTranslation += vcode_array[i].score; + sumExp = 0. } if(vcode_array[i].score - ScoreTranslation >= 0){ sumExp += exp(vcode_array[i].score - ScoreTranslation);