From aa5addef976495152c2cd52398faedbae392b8f6 Mon Sep 17 00:00:00 2001
From: Alexis Nasr <alexis.nasr@lif.univ-mrs.fr>
Date: Fri, 28 Apr 2017 14:26:01 +0200
Subject: [PATCH] prevent the parser to produce an EOS at one point when
 segmentation is given in input and there is no segmentation at this point

---
 CMakeLists.txt                                       |  1 +
 README                                               |  6 ++++++
 maca_tokenizer/src/fr_tok_rules.l                    |  2 +-
 maca_trans_parser/CMakeLists.txt                     | 12 ++++++------
 .../src/simple_decoder_parser_arc_eager.c            | 12 +++++++++++-
 5 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9c1ade7..d3313d3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.8.7)
 project(macaon2)
 
 find_package(FLEX)
+find_package(BLAS)
 
 add_definitions("-Wall" )
 SET(CMAKE_C_COMPILER g++)
diff --git a/README b/README
index bef7b3e..a1dae6b 100644
--- a/README
+++ b/README
@@ -1 +1,7 @@
+if you want to use a debugger
+
 cmake -DCMAKE_BUILD_TYPE=Debug ..
+
+if you want the binaries to be installed in a special directory
+
+cmake -DCMAKE_INSTALL_PREFIX:PATH=absolute_path_to_directory_where_binaries_will_be_copied ..
\ No newline at end of file
diff --git a/maca_tokenizer/src/fr_tok_rules.l b/maca_tokenizer/src/fr_tok_rules.l
index d0f391d..59b1909 100644
--- a/maca_tokenizer/src/fr_tok_rules.l
+++ b/maca_tokenizer/src/fr_tok_rules.l
@@ -13,7 +13,7 @@ extern int defait_amalgames;
 	BEGIN(state_defait_amalgames);
 	}
 
-[0-9]+,[0-9]* printf("%s", yytext);
+[0-9]+,[0-9]+ printf("%s", yytext);
 [ \t]+   printf("\n");
 [ ]*\.       printf("\n.");
 [ ]*\?       printf("\n?");
diff --git a/maca_trans_parser/CMakeLists.txt b/maca_trans_parser/CMakeLists.txt
index be494e5..409b893 100644
--- a/maca_trans_parser/CMakeLists.txt
+++ b/maca_trans_parser/CMakeLists.txt
@@ -4,7 +4,7 @@ set(SOURCES src/context.c
   src/movement_tagparser_arc_eager.c
   src/movement_tagger.c
   src/feat_fct.c
-  src/global_feat_vec.c
+#  src/global_feat_vec.c
   # src/oracle_parser.c
   src/oracle_parser_arc_eager.c
   src/oracle_tagparser_arc_eager.c
@@ -32,11 +32,11 @@ add_library(transparse STATIC ${SOURCES})
 target_link_libraries(transparse perceptron)
 
 #compiling, linking and installing executables
-add_executable(maca_trans_parser_nn ./src/maca_trans_parser_nn.cc)
-target_link_libraries(maca_trans_parser_nn perceptron)
-target_link_libraries(maca_trans_parser_nn transparse)
-target_link_libraries(maca_trans_parser_nn maca_common)
-install (TARGETS maca_trans_parser_nn DESTINATION bin)
+#add_executable(maca_trans_parser_nn ./src/maca_trans_parser_nn.cc)
+#target_link_libraries(maca_trans_parser_nn perceptron)
+#target_link_libraries(maca_trans_parser_nn transparse)
+#target_link_libraries(maca_trans_parser_nn maca_common)
+#install (TARGETS maca_trans_parser_nn DESTINATION bin)
 
 add_executable(maca_trans_tagger_mcf2cff ./src/maca_trans_tagger_mcf2cff.c)
 target_link_libraries(maca_trans_tagger_mcf2cff perceptron)
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 7c44a6b..9cb7a91 100644
--- a/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
+++ b/maca_trans_parser/src/simple_decoder_parser_arc_eager.c
@@ -186,7 +186,17 @@ void simple_decoder_parser_arc_eager(context *ctx)
 
       mvt_type = movement_parser_type(mvt_code);
       mvt_label = movement_parser_label(mvt_code);
-            
+
+      if((mvt_type == MVT_PARSER_EOS) && (word_get_sent_seg(stack_top(config_get_stack(c))) == 0)){
+	if(ctx->verbose)
+	  fprintf(stderr, "the classifier did predict EOS but this is not the case\n");
+	feature_table_argmax_1_2(fv, ft, &argmax1, &max1, &argmax2, &max2);
+	mvt_code = argmax2;
+	mvt_type = movement_parser_type(mvt_code);
+	mvt_label = movement_parser_label(mvt_code);
+	
+      }
+      
       result = 0;
       switch(mvt_type){
       case MVT_PARSER_LEFT :
-- 
GitLab