From 42009916cf8f6d7bd31419f0e1b40b073d022833 Mon Sep 17 00:00:00 2001 From: Alexis Nasr <alexis.nasr@lif.univ-mrs.fr> Date: Mon, 22 Jan 2018 18:18:24 +0100 Subject: [PATCH] added feature s0seg that cheks wheter s0 is eos, this feature helps discriminate between EOS and REDUCE --- maca_trans_parser/src/feat_fct.c | 2 ++ maca_trans_parser/src/maca_tm_decoder.c | 4 ++-- maca_trans_parser/src/movements.c | 2 +- maca_trans_parser/src/simple_decoder_tagparser_arc_eager.c | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/maca_trans_parser/src/feat_fct.c b/maca_trans_parser/src/feat_fct.c index f8277fb..80c7836 100644 --- a/maca_trans_parser/src/feat_fct.c +++ b/maca_trans_parser/src/feat_fct.c @@ -14,6 +14,7 @@ int s0g(void *c) {return (word_get_gov(stack_s0(config_get_stack((config *) c))) == WORD_INVALID_GOV) ? 0 : 1;} int s0sf(void *c) {return word_get_label(stack_s0(config_get_stack((config *) c)));} +int s0seg(void *c) {return word_get_sent_seg(stack_s0(config_get_stack((config *) c)));} int s0f(void *c) {return word_get_form(stack_s0(config_get_stack((config *) c)));} int s0l(void *c) {return word_get_lemma(stack_s0(config_get_stack((config *) c)));} int s0c(void *c) {return word_get_cpos(stack_s0(config_get_stack((config *) c)));} @@ -856,6 +857,7 @@ feat_lib *feat_lib_build(void) feat_lib_add(fl, FEAT_TYPE_LABEL, (char *)"s0sf", s0sf); feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0g", s0g); + feat_lib_add(fl, FEAT_TYPE_INT, (char *)"s0seg", s0seg); feat_lib_add(fl, FEAT_TYPE_FORM, (char *)"s0f", s0f); feat_lib_add(fl, FEAT_TYPE_LEMMA, (char *)"s0l", s0l); feat_lib_add(fl, FEAT_TYPE_CPOS, (char *)"s0c", s0c); diff --git a/maca_trans_parser/src/maca_tm_decoder.c b/maca_trans_parser/src/maca_tm_decoder.c index 4ed0c12..4c9458e 100644 --- a/maca_trans_parser/src/maca_tm_decoder.c +++ b/maca_trans_parser/src/maca_tm_decoder.c @@ -253,9 +253,9 @@ void maca_tm_decoder(context *ctx) } /* horrible trick : when at the end of buffer, skip tagger mode stay in parser mode */ - if((c->current_state_nb == tagger_state_nb) && word_buffer_end(config_get_buffer(c))) + if((c->current_state_nb == tagger_state_nb) && word_buffer_end(config_get_buffer(c))){ c->current_state_nb = parser_state_nb; - + } current_state = ctx->machine->state_array[c->current_state_nb]; classif = current_state->classif; mvt_code = classifier_argmax(classif, c); diff --git a/maca_trans_parser/src/movements.c b/maca_trans_parser/src/movements.c index 9a37cdc..585818c 100644 --- a/maca_trans_parser/src/movements.c +++ b/maca_trans_parser/src/movements.c @@ -205,7 +205,7 @@ int movement_root(config *c, int root_code) s0->is_root = 1; /*---- ajout 19/12/17 ----------*/ - word_set_sent_seg(word_buffer_get_word_n(config_get_buffer(c), s0->rspan), 1); + // word_set_sent_seg(word_buffer_get_word_n(config_get_buffer(c), s0->rspan), 1); /*-----------------------------*/ stack_pop(config_get_stack(c)); diff --git a/maca_trans_parser/src/simple_decoder_tagparser_arc_eager.c b/maca_trans_parser/src/simple_decoder_tagparser_arc_eager.c index 611173c..63ed941 100644 --- a/maca_trans_parser/src/simple_decoder_tagparser_arc_eager.c +++ b/maca_trans_parser/src/simple_decoder_tagparser_arc_eager.c @@ -121,9 +121,9 @@ void simple_decoder_tagparser_arc_eager(context *ctx) add_signature_to_words_in_word_buffer(c->bf, ctx->f2p); /* horrible trick : when at the end of buffer, skip tagger mode stay in parser mode */ - if((c->current_state_nb == 0) && word_buffer_end(config_get_buffer(c))) + if((c->current_state_nb == 0) && word_buffer_end(config_get_buffer(c))){ c->current_state_nb = 1; - + } classif = ctx->machine->state_array[c->current_state_nb]->classif; mvt_code = classifier_argmax(classif, c); if(ctx->debug_mode){ -- GitLab