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 2ec35be91e18f1a291a37505f0c2c4de6e834a05..5e7f6248bb672f26c555f7e9f90540122689e1e2 100644
--- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
+++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
@@ -170,7 +170,7 @@ void simple_decoder_parser_arc_eager(context *ctx)
   double currentSumExp;
   double ScoreTranslation;
   int FlagNotInitExp;
- // double ProbaDivider = 100; // TO SETUP
+  double ProbaDivider = 15; // TO SETUP
   double randomFloat;
   
   srand(mix(clock(), time(NULL), getpid()));
@@ -186,7 +186,7 @@ void simple_decoder_parser_arc_eager(context *ctx)
     
     sumExp = 0;
     currentSumExp = 0;
-    ScoreTranslation = -60; // TO SETUP
+    ScoreTranslation = -5; // TO SETUP
     FlagNotInitExp = 1;
 
     if(ctx->debug_mode){
@@ -221,12 +221,11 @@ void simple_decoder_parser_arc_eager(context *ctx)
 
 	  if(b1 && b2 && b3){
       if(FlagNotInitExp){
-        ScoreTranslation += vcode_array[i].score;///ProbaDivider;
+        ScoreTranslation += vcode_array[i].score/ProbaDivider;
         FlagNotInitExp = 0;
       }
-//      if(vcode_array[i].score/ProbaDivider - ScoreTranslation > 0){
-        if(vcode_array[i].score - ScoreTranslation > 0){
-        sumExp += exp(ScoreTranslation - vcode_array[i].score );
+      if(vcode_array[i].score/ProbaDivider - ScoreTranslation > 0){
+        sumExp += exp(vcode_array[i].score/ProbaDivider - ScoreTranslation);
       }	  
 	  }
 	}
@@ -241,11 +240,10 @@ 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/ProbaDivider - ScoreTranslation > 0){
-        if(vcode_array[i].score - ScoreTranslation > 0){
+      if(vcode_array[i].score/ProbaDivider - ScoreTranslation > 0){
         printf(" %f %f %f",sumExp, currentSumExp,ScoreTranslation);
         printf(" [%f-",currentSumExp/sumExp);
-        currentSumExp += exp(ScoreTranslation - vcode_array[i].score);
+        currentSumExp += exp(vcode_array[i].score/ProbaDivider - ScoreTranslation);
         printf("%f[", currentSumExp/sumExp);
       }
       printf("\t<----");
@@ -285,8 +283,7 @@ 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){
-                //  currentSumExp += exp(vcode_array[i].score/ProbaDivider - ScoreTranslation);
-                    currentSumExp += exp(ScoreTranslation - vcode_array[i].score);
+                  currentSumExp += exp(vcode_array[i].score/ProbaDivider - ScoreTranslation);
                   if(currentSumExp/sumExp >= randomFloat){ 
                     printf("The %d th move has been selected by the probabilistic parser.\n",i);
                     mvt_code = vcode_array[i].class_code;