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 6c04ef932741c7dd18fd93b7506c78286abfda09..9fe73aa1cf2e4e34f6810e29dfc15e30ce1dbf62 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 = -1.; + double sumExp = -1; double currentSumExp = 0.; double ScoreTranslation = -10.; @@ -194,13 +194,13 @@ 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.5){ + if(sumExp + 0.5 < 0){ printf(" %f %f %d ",ScoreTranslation,vcode_array[i].score, i); ScoreTranslation += vcode_array[i].score; printf(" %f " ,ScoreTranslation); sumExp = 0.; } - if(vcode_array[i].score - ScoreTranslation >= 0){ + if(vcode_array[i].score - ScoreTranslation > 0){ sumExp += exp(vcode_array[i].score - ScoreTranslation); } } @@ -216,7 +216,7 @@ void simple_decoder_parser_arc_eager(context *ctx) int b2 = respect_stack_constraint(ctx->partial_mode, c, movement_parser_type(vcode_array[i].class_code), movement_parser_label(vcode_array[i].class_code)); 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(vcode_array[i].score - ScoreTranslation >= 0){ + if(vcode_array[i].score - ScoreTranslation > 0){ printf(" %f %f %f",sumExp, currentSumExp,ScoreTranslation); printf(" [%f-",currentSumExp/sumExp); currentSumExp += exp(vcode_array[i].score - ScoreTranslation);