From 022c82058d02d96aa24cd778876893ee045461b6 Mon Sep 17 00:00:00 2001 From: Ibtissem Benchikh LeHocine <ibtissem.benchikh@gmail.com> Date: Tue, 23 May 2017 18:25:36 +0200 Subject: [PATCH] code final --- Files/fm1.pos.txt | 1 + Files/fm1.posN.txt | 1 + Files/fm1.posNP.txt | 1 + Files/fm1.posNPG.txt | 1 + Files/fm1.txt | 1 + Files/fm2.pos.txt | 3 + Files/fm2.posN.txt | 3 + Files/fm2.posNP.txt | 3 + Files/fm2.posNPG.txt | 3 + Files/fm2.txt | 3 + Files/fm3.pos.txt | 5 ++ Files/fm3.posN.txt | 5 ++ Files/fm3.posNP.txt | 5 ++ Files/fm3.posNPG.txt | 5 ++ Files/fm3.txt | 5 ++ Files/fm4.pos.txt | 7 ++ Files/fm4.posN.txt | 7 ++ Files/fm4.posNP.txt | 7 ++ Files/fm4.posNPG.txt | 7 ++ Files/fm4.txt | 7 ++ Files/fm5.pos.txt | 9 +++ Files/fm5.posN.txt | 9 +++ Files/fm5.posNP.txt | 9 +++ Files/fm5.posNPG.txt | 9 +++ Files/fm5.txt | 9 +++ Files/fm6.pos.txt | 11 +++ Files/fm6.posN.txt | 11 +++ Files/fm6.posNP.txt | 11 +++ Files/fm6.posNPG.txt | 11 +++ Files/fm6.txt | 11 +++ Files/fm7.pos.txt | 13 ++++ Files/fm7.posN.txt | 13 ++++ Files/fm7.posNP.txt | 13 ++++ Files/fm7.posNPG.txt | 13 ++++ Files/fm7.txt | 13 ++++ maca_morpho/src/maca_morpho_context.c | 13 +--- maca_morpho/src/maca_morpho_context.h | 2 - maca_morpho/src/maca_morpho_feat_fct.c | 30 +------- maca_morpho/src/predict.h | 3 +- maca_morpho/src/predict_fct.c | 95 ++------------------------ 40 files changed, 254 insertions(+), 134 deletions(-) create mode 100644 Files/fm1.pos.txt create mode 100644 Files/fm1.posN.txt create mode 100644 Files/fm1.posNP.txt create mode 100644 Files/fm1.posNPG.txt create mode 100644 Files/fm1.txt create mode 100644 Files/fm2.pos.txt create mode 100644 Files/fm2.posN.txt create mode 100644 Files/fm2.posNP.txt create mode 100644 Files/fm2.posNPG.txt create mode 100644 Files/fm2.txt create mode 100644 Files/fm3.pos.txt create mode 100644 Files/fm3.posN.txt create mode 100644 Files/fm3.posNP.txt create mode 100644 Files/fm3.posNPG.txt create mode 100644 Files/fm3.txt create mode 100644 Files/fm4.pos.txt create mode 100644 Files/fm4.posN.txt create mode 100644 Files/fm4.posNP.txt create mode 100644 Files/fm4.posNPG.txt create mode 100644 Files/fm4.txt create mode 100644 Files/fm5.pos.txt create mode 100644 Files/fm5.posN.txt create mode 100644 Files/fm5.posNP.txt create mode 100644 Files/fm5.posNPG.txt create mode 100644 Files/fm5.txt create mode 100644 Files/fm6.pos.txt create mode 100644 Files/fm6.posN.txt create mode 100644 Files/fm6.posNP.txt create mode 100644 Files/fm6.posNPG.txt create mode 100644 Files/fm6.txt create mode 100644 Files/fm7.pos.txt create mode 100644 Files/fm7.posN.txt create mode 100644 Files/fm7.posNP.txt create mode 100644 Files/fm7.posNPG.txt create mode 100644 Files/fm7.txt diff --git a/Files/fm1.pos.txt b/Files/fm1.pos.txt new file mode 100644 index 0000000..cd1b0f4 --- /dev/null +++ b/Files/fm1.pos.txt @@ -0,0 +1 @@ +feat_pos s1 diff --git a/Files/fm1.posN.txt b/Files/fm1.posN.txt new file mode 100644 index 0000000..cc4bd34 --- /dev/null +++ b/Files/fm1.posN.txt @@ -0,0 +1 @@ +feat_pos feat_number s1 diff --git a/Files/fm1.posNP.txt b/Files/fm1.posNP.txt new file mode 100644 index 0000000..b3c2eae --- /dev/null +++ b/Files/fm1.posNP.txt @@ -0,0 +1 @@ +feat_pos feat_number feat_person s1 diff --git a/Files/fm1.posNPG.txt b/Files/fm1.posNPG.txt new file mode 100644 index 0000000..7ba7661 --- /dev/null +++ b/Files/fm1.posNPG.txt @@ -0,0 +1 @@ +feat_pos feat_number feat_person feat_gender s1 diff --git a/Files/fm1.txt b/Files/fm1.txt new file mode 100644 index 0000000..655c6e6 --- /dev/null +++ b/Files/fm1.txt @@ -0,0 +1 @@ +s1 diff --git a/Files/fm2.pos.txt b/Files/fm2.pos.txt new file mode 100644 index 0000000..a17f754 --- /dev/null +++ b/Files/fm2.pos.txt @@ -0,0 +1,3 @@ +feat_pos s1 +feat_pos s2 +feat_pos s1 s2 diff --git a/Files/fm2.posN.txt b/Files/fm2.posN.txt new file mode 100644 index 0000000..f6e2798 --- /dev/null +++ b/Files/fm2.posN.txt @@ -0,0 +1,3 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s1 s2 diff --git a/Files/fm2.posNP.txt b/Files/fm2.posNP.txt new file mode 100644 index 0000000..c91798b --- /dev/null +++ b/Files/fm2.posNP.txt @@ -0,0 +1,3 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s1 s2 diff --git a/Files/fm2.posNPG.txt b/Files/fm2.posNPG.txt new file mode 100644 index 0000000..2f91aa6 --- /dev/null +++ b/Files/fm2.posNPG.txt @@ -0,0 +1,3 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s1 s2 diff --git a/Files/fm2.txt b/Files/fm2.txt new file mode 100644 index 0000000..eb3fcaf --- /dev/null +++ b/Files/fm2.txt @@ -0,0 +1,3 @@ +s1 +s2 +s1 s2 diff --git a/Files/fm3.pos.txt b/Files/fm3.pos.txt new file mode 100644 index 0000000..78aa773 --- /dev/null +++ b/Files/fm3.pos.txt @@ -0,0 +1,5 @@ +feat_pos s1 +feat_pos s2 +feat_pos s3 +feat_pos s1 s2 +feat_pos s1 s2 s3 diff --git a/Files/fm3.posN.txt b/Files/fm3.posN.txt new file mode 100644 index 0000000..73d6978 --- /dev/null +++ b/Files/fm3.posN.txt @@ -0,0 +1,5 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s3 +feat_pos feat_number s1 s2 +feat_pos feat_number s1 s2 s3 diff --git a/Files/fm3.posNP.txt b/Files/fm3.posNP.txt new file mode 100644 index 0000000..25e41d5 --- /dev/null +++ b/Files/fm3.posNP.txt @@ -0,0 +1,5 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s3 +feat_pos feat_number feat_person s1 s2 +feat_pos feat_number feat_person s1 s2 s3 diff --git a/Files/fm3.posNPG.txt b/Files/fm3.posNPG.txt new file mode 100644 index 0000000..8dc9621 --- /dev/null +++ b/Files/fm3.posNPG.txt @@ -0,0 +1,5 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s3 +feat_pos feat_number feat_person feat_gender s1 s2 +feat_pos feat_number feat_person feat_gender s1 s2 s3 diff --git a/Files/fm3.txt b/Files/fm3.txt new file mode 100644 index 0000000..56a7191 --- /dev/null +++ b/Files/fm3.txt @@ -0,0 +1,5 @@ +s1 +s2 +s3 +s1 s2 +s1 s2 s3 diff --git a/Files/fm4.pos.txt b/Files/fm4.pos.txt new file mode 100644 index 0000000..281ac4d --- /dev/null +++ b/Files/fm4.pos.txt @@ -0,0 +1,7 @@ +feat_pos s1 +feat_pos s2 +feat_pos s3 +feat_pos s4 +feat_pos s1 s2 +feat_pos s1 s2 s3 +feat_pos s1 s2 s3 s4 diff --git a/Files/fm4.posN.txt b/Files/fm4.posN.txt new file mode 100644 index 0000000..28d6107 --- /dev/null +++ b/Files/fm4.posN.txt @@ -0,0 +1,7 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s3 +feat_pos feat_number s4 +feat_pos feat_number s1 s2 +feat_pos feat_number s1 s2 s3 +feat_pos feat_number s1 s2 s3 s4 diff --git a/Files/fm4.posNP.txt b/Files/fm4.posNP.txt new file mode 100644 index 0000000..9d43db3 --- /dev/null +++ b/Files/fm4.posNP.txt @@ -0,0 +1,7 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s3 +feat_pos feat_number feat_person s4 +feat_pos feat_number feat_person s1 s2 +feat_pos feat_number feat_person s1 s2 s3 +feat_pos feat_number feat_person s1 s2 s3 s4 diff --git a/Files/fm4.posNPG.txt b/Files/fm4.posNPG.txt new file mode 100644 index 0000000..33f53d5 --- /dev/null +++ b/Files/fm4.posNPG.txt @@ -0,0 +1,7 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s3 +feat_pos feat_number feat_person feat_gender s4 +feat_pos feat_number feat_person feat_gender s1 s2 +feat_pos feat_number feat_person feat_gender s1 s2 s3 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 diff --git a/Files/fm4.txt b/Files/fm4.txt new file mode 100644 index 0000000..9b8dc89 --- /dev/null +++ b/Files/fm4.txt @@ -0,0 +1,7 @@ +s1 +s2 +s3 +s4 +s1 s2 +s1 s2 s3 +s1 s2 s3 s4 diff --git a/Files/fm5.pos.txt b/Files/fm5.pos.txt new file mode 100644 index 0000000..44aeee5 --- /dev/null +++ b/Files/fm5.pos.txt @@ -0,0 +1,9 @@ +feat_pos s1 +feat_pos s2 +feat_pos s3 +feat_pos s4 +feat_pos s5 +feat_pos s1 s2 +feat_pos s1 s2 s3 +feat_pos s1 s2 s3 s4 +feat_pos s1 s2 s3 s4 s5 diff --git a/Files/fm5.posN.txt b/Files/fm5.posN.txt new file mode 100644 index 0000000..b69eeea --- /dev/null +++ b/Files/fm5.posN.txt @@ -0,0 +1,9 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s3 +feat_pos feat_number s4 +feat_pos feat_number s5 +feat_pos feat_number s1 s2 +feat_pos feat_number s1 s2 s3 +feat_pos feat_number s1 s2 s3 s4 +feat_pos feat_number s1 s2 s3 s4 s5 diff --git a/Files/fm5.posNP.txt b/Files/fm5.posNP.txt new file mode 100644 index 0000000..5d82319 --- /dev/null +++ b/Files/fm5.posNP.txt @@ -0,0 +1,9 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s3 +feat_pos feat_number feat_person s4 +feat_pos feat_number feat_person s5 +feat_pos feat_number feat_person s1 s2 +feat_pos feat_number feat_person s1 s2 s3 +feat_pos feat_number feat_person s1 s2 s3 s4 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 diff --git a/Files/fm5.posNPG.txt b/Files/fm5.posNPG.txt new file mode 100644 index 0000000..d312df3 --- /dev/null +++ b/Files/fm5.posNPG.txt @@ -0,0 +1,9 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s3 +feat_pos feat_number feat_person feat_gender s4 +feat_pos feat_number feat_person feat_gender s5 +feat_pos feat_number feat_person feat_gender s1 s2 +feat_pos feat_number feat_person feat_gender s1 s2 s3 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 diff --git a/Files/fm5.txt b/Files/fm5.txt new file mode 100644 index 0000000..227f3e3 --- /dev/null +++ b/Files/fm5.txt @@ -0,0 +1,9 @@ +s1 +s2 +s3 +s4 +s5 +s1 s2 +s1 s2 s3 +s1 s2 s3 s4 +s1 s2 s3 s4 s5 diff --git a/Files/fm6.pos.txt b/Files/fm6.pos.txt new file mode 100644 index 0000000..fce00f9 --- /dev/null +++ b/Files/fm6.pos.txt @@ -0,0 +1,11 @@ +feat_pos s1 +feat_pos s2 +feat_pos s3 +feat_pos s4 +feat_pos s5 +feat_pos s6 +feat_pos s1 s2 +feat_pos s1 s2 s3 +feat_pos s1 s2 s3 s4 +feat_pos s1 s2 s3 s4 s5 +feat_pos s1 s2 s3 s4 s5 s6 diff --git a/Files/fm6.posN.txt b/Files/fm6.posN.txt new file mode 100644 index 0000000..da0ef29 --- /dev/null +++ b/Files/fm6.posN.txt @@ -0,0 +1,11 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s3 +feat_pos feat_number s4 +feat_pos feat_number s5 +feat_pos feat_number s6 +feat_pos feat_number s1 s2 +feat_pos feat_number s1 s2 s3 +feat_pos feat_number s1 s2 s3 s4 +feat_pos feat_number s1 s2 s3 s4 s5 +feat_pos feat_number s1 s2 s3 s4 s5 s6 diff --git a/Files/fm6.posNP.txt b/Files/fm6.posNP.txt new file mode 100644 index 0000000..266ff66 --- /dev/null +++ b/Files/fm6.posNP.txt @@ -0,0 +1,11 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s3 +feat_pos feat_number feat_person s4 +feat_pos feat_number feat_person s5 +feat_pos feat_number feat_person s6 +feat_pos feat_number feat_person s1 s2 +feat_pos feat_number feat_person s1 s2 s3 +feat_pos feat_number feat_person s1 s2 s3 s4 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 s6 diff --git a/Files/fm6.posNPG.txt b/Files/fm6.posNPG.txt new file mode 100644 index 0000000..1731705 --- /dev/null +++ b/Files/fm6.posNPG.txt @@ -0,0 +1,11 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s3 +feat_pos feat_number feat_person feat_gender s4 +feat_pos feat_number feat_person feat_gender s5 +feat_pos feat_number feat_person feat_gender s6 +feat_pos feat_number feat_person feat_gender s1 s2 +feat_pos feat_number feat_person feat_gender s1 s2 s3 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 s6 diff --git a/Files/fm6.txt b/Files/fm6.txt new file mode 100644 index 0000000..980c9ad --- /dev/null +++ b/Files/fm6.txt @@ -0,0 +1,11 @@ +s1 +s2 +s3 +s4 +s5 +s6 +s1 s2 +s1 s2 s3 +s1 s2 s3 s4 +s1 s2 s3 s4 s5 +s1 s2 s3 s4 s5 s6 diff --git a/Files/fm7.pos.txt b/Files/fm7.pos.txt new file mode 100644 index 0000000..69e20c3 --- /dev/null +++ b/Files/fm7.pos.txt @@ -0,0 +1,13 @@ +feat_pos s1 +feat_pos s2 +feat_pos s3 +feat_pos s4 +feat_pos s5 +feat_pos s6 +feat_pos s7 +feat_pos s1 s2 +feat_pos s1 s2 s3 +feat_pos s1 s2 s3 s4 +feat_pos s1 s2 s3 s4 s5 +feat_pos s1 s2 s3 s4 s5 s6 +feat_pos s1 s2 s3 s4 s5 s6 s7 diff --git a/Files/fm7.posN.txt b/Files/fm7.posN.txt new file mode 100644 index 0000000..dc74260 --- /dev/null +++ b/Files/fm7.posN.txt @@ -0,0 +1,13 @@ +feat_pos feat_number s1 +feat_pos feat_number s2 +feat_pos feat_number s3 +feat_pos feat_number s4 +feat_pos feat_number s5 +feat_pos feat_number s6 +feat_pos feat_number s7 +feat_pos feat_number s1 s2 +feat_pos feat_number s1 s2 s3 +feat_pos feat_number s1 s2 s3 s4 +feat_pos feat_number s1 s2 s3 s4 s5 +feat_pos feat_number s1 s2 s3 s4 s5 s6 +feat_pos feat_number s1 s2 s3 s4 s5 s6 s7 diff --git a/Files/fm7.posNP.txt b/Files/fm7.posNP.txt new file mode 100644 index 0000000..e2e92d9 --- /dev/null +++ b/Files/fm7.posNP.txt @@ -0,0 +1,13 @@ +feat_pos feat_number feat_person s1 +feat_pos feat_number feat_person s2 +feat_pos feat_number feat_person s3 +feat_pos feat_number feat_person s4 +feat_pos feat_number feat_person s5 +feat_pos feat_number feat_person s6 +feat_pos feat_number feat_person s7 +feat_pos feat_number feat_person s1 s2 +feat_pos feat_number feat_person s1 s2 s3 +feat_pos feat_number feat_person s1 s2 s3 s4 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 s6 +feat_pos feat_number feat_person s1 s2 s3 s4 s5 s6 s7 diff --git a/Files/fm7.posNPG.txt b/Files/fm7.posNPG.txt new file mode 100644 index 0000000..4d9f923 --- /dev/null +++ b/Files/fm7.posNPG.txt @@ -0,0 +1,13 @@ +feat_pos feat_number feat_person feat_gender s1 +feat_pos feat_number feat_person feat_gender s2 +feat_pos feat_number feat_person feat_gender s3 +feat_pos feat_number feat_person feat_gender s4 +feat_pos feat_number feat_person feat_gender s5 +feat_pos feat_number feat_person feat_gender s6 +feat_pos feat_number feat_person feat_gender s7 +feat_pos feat_number feat_person feat_gender s1 s2 +feat_pos feat_number feat_person feat_gender s1 s2 s3 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 s6 +feat_pos feat_number feat_person feat_gender s1 s2 s3 s4 s5 s6 s7 diff --git a/Files/fm7.txt b/Files/fm7.txt new file mode 100644 index 0000000..ede6e21 --- /dev/null +++ b/Files/fm7.txt @@ -0,0 +1,13 @@ +s1 +s2 +s3 +s4 +s5 +s6 +s7 +s1 s2 +s1 s2 s3 +s1 s2 s3 s4 +s1 s2 s3 s4 s5 +s1 s2 s3 s4 s5 s6 +s1 s2 s3 s4 s5 s6 s7 diff --git a/maca_morpho/src/maca_morpho_context.c b/maca_morpho/src/maca_morpho_context.c index 0527a96..bef09d4 100644 --- a/maca_morpho/src/maca_morpho_context.c +++ b/maca_morpho/src/maca_morpho_context.c @@ -29,7 +29,6 @@ context *context_new(void) ctx->verbose = 0; ctx->debug_mode = 0; ctx->separate_classes = 0; - ctx->cascade = 0; ctx->program_name = NULL; ctx->fplm_filename = NULL; ctx->language = strdup("fr"); @@ -94,10 +93,6 @@ void context_separate_classes_help_message(context *ctx){ fprintf(stderr, "\t-s --separate <int> : separate the classes for tense and person if you enter 1\n"); } -void context_cascade_help_message(context *ctx){ - fprintf(stderr, "\t-c --cascade <int> : activate the cascade mode if you enter 1 (output fplm file)\n"); -} - context *context_read_options(int argc, char *argv[]) { int c; @@ -121,13 +116,12 @@ context *context_read_options(int argc, char *argv[]) {"target", required_argument, 0, 't'}, {"percent", required_argument, 0, 'p'}, {"code_class", required_argument, 0, 'y'}, - {"separate", required_argument, 0, 's'}, - {"cascade", required_argument, 0, 'c'} + {"separate", required_argument, 0, 's'} }; optind = 0; opterr = 0; - while ((c = getopt_long (argc, argv, "hvdf:L:M:D:F:y:x:w:t:p:s:c:", long_options, &option_index)) != -1){ + while ((c = getopt_long (argc, argv, "hvdf:L:M:D:F:y:x:w:t:p:s:", long_options, &option_index)) != -1){ switch (c) { case 'd': @@ -168,9 +162,6 @@ context *context_read_options(int argc, char *argv[]) break; case 's': ctx->separate_classes = atoi(optarg); - break; - case 'c': - ctx->cascade = atoi(optarg); break; } } diff --git a/maca_morpho/src/maca_morpho_context.h b/maca_morpho/src/maca_morpho_context.h index f2e6bf8..333e1a2 100644 --- a/maca_morpho/src/maca_morpho_context.h +++ b/maca_morpho/src/maca_morpho_context.h @@ -14,7 +14,6 @@ typedef struct { int debug_mode; int fplm_test_percent; int separate_classes; - int cascade; char *program_name; char *fplm_filename; char *language; @@ -43,5 +42,4 @@ void context_target_help_message(context *ctx); void context_fplm_test_percent_help_message(context *ctx); void context_code_class_help_message(context* ctx); void context_separate_classes_help_message(context *ctx); -void context_cascade_help_message(context *ctx); #endif diff --git a/maca_morpho/src/maca_morpho_feat_fct.c b/maca_morpho/src/maca_morpho_feat_fct.c index d78750e..01f91cc 100644 --- a/maca_morpho/src/maca_morpho_feat_fct.c +++ b/maca_morpho/src/maca_morpho_feat_fct.c @@ -165,31 +165,6 @@ int feat_pos(FPLM* fplm) return code; } -int lemma_s1(FPLM* fplm) -{ - char16* tmp = utf8tochar16(fplm->lemma); - int size = char16_strlen(tmp); - if(tmp == NULL || size - 1 < 0) - return -1; - return tmp[size - 1]; -} -int lemma_s2(FPLM* fplm) -{ - char16* tmp = utf8tochar16(fplm->lemma); - int size = char16_strlen(tmp); - if(tmp == NULL || size - 2 < 0) - return -1; - return tmp[size - 2]; -} -int lemma_s3(FPLM* fplm) -{ - char16* tmp = utf8tochar16(fplm->lemma); - int size = char16_strlen(tmp); - if(tmp == NULL || size - 3 < 0) - return -1; - return tmp[size - 3]; -} - feat_lib *feat_lib_build(void) { feat_lib *fl = feat_lib_new(); @@ -208,9 +183,6 @@ feat_lib *feat_lib_build(void) { feat_lib_add(fl, 1, (char *)"feat_person", feat_person); feat_lib_add(fl, 1, (char *)"feat_number", feat_number); feat_lib_add(fl, 1, (char *)"feat_gender", feat_gender); - feat_lib_add(fl, 1, (char *)"feat_tense", feat_tense); - feat_lib_add(fl, 1, (char *)"lemma_s1", lemma_s1); - feat_lib_add(fl, 1, (char *)"lemma_s2", lemma_s2); - feat_lib_add(fl, 1, (char *)"lemma_s3", lemma_s3); + feat_lib_add(fl, 1, (char *)"feat_tense", feat_tense); return fl; } diff --git a/maca_morpho/src/predict.h b/maca_morpho/src/predict.h index 90e9d32..9ef62d2 100644 --- a/maca_morpho/src/predict.h +++ b/maca_morpho/src/predict.h @@ -14,7 +14,6 @@ { FILE* f_error; FILE* f_predict; - FILE* new_fplm; FILE* morpho_predicted; }Output_files; @@ -37,7 +36,7 @@ void new_input_files (Input_files* in_files); void init_input_files (Input_files* in_files, char* fplm_name, char* code, char* all, char* c1, char* c2, char* c3, char* c4, char* p1, char* p2, char* p3, char* p4); void new_output_files (Output_files* out_files); - void init_output_files (Output_files* out_files, char* error_name, char* predict_name, char* fplm_name, char* morpho_name); + void init_output_files (Output_files* out_files, char* error_name, char* predict_name, char* morpho_name); void free_input_files (Input_files* in_files); void free_output_files (Output_files* out_files); diff --git a/maca_morpho/src/predict_fct.c b/maca_morpho/src/predict_fct.c index dd759fc..77308c2 100644 --- a/maca_morpho/src/predict_fct.c +++ b/maca_morpho/src/predict_fct.c @@ -13,7 +13,6 @@ void predict_help_message(context *ctx) context_weights_matrix_filename_help_message(ctx); context_features_model_help_message(ctx); context_code_class_help_message(ctx); - context_cascade_help_message(ctx); exit(1); } @@ -141,10 +140,9 @@ void new_output_files(Output_files* out_files) { out_files->f_error = NULL; out_files->f_predict = NULL; - out_files->new_fplm = NULL; out_files->morpho_predicted = NULL; } -void init_output_files(Output_files* out_files, char* error_name, char* predict_name, char* fplm_name, char* morpho_name) +void init_output_files(Output_files* out_files, char* error_name, char* predict_name, char* morpho_name) { new_output_files(out_files); if(error_name != NULL) @@ -165,15 +163,6 @@ void init_output_files(Output_files* out_files, char* error_name, char* predict_ exit(EXIT_FAILURE); } } - if(fplm_name != NULL) - { - out_files->new_fplm = fopen(fplm_name, "w"); - if(out_files->new_fplm==NULL) - { - fprintf(stderr,"Problem with the new fplm file.\n"); - exit(EXIT_FAILURE); - } - } if(morpho_name != NULL) { out_files->morpho_predicted = fopen(morpho_name, "w+"); @@ -205,7 +194,6 @@ void free_output_files(Output_files* out_files) { if(out_files->f_error != NULL) fclose(out_files->f_error); if(out_files->f_predict != NULL) fclose(out_files->f_predict); - if(out_files->new_fplm != NULL) fclose(out_files->new_fplm); if(out_files->morpho_predicted != NULL) fclose(out_files->morpho_predicted); free(out_files); } @@ -224,7 +212,7 @@ void predict_all_classes(context* ctx) int fields_nb; int errors = 0; - init_output_files(out_files, "error.txt", NULL, NULL, NULL); + init_output_files(out_files, "error.txt", NULL, NULL); init_input_files(in_files,ctx->fplm_filename,ctx->code_class_filename, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); while((fields_nb = read_line_fplm(in_files->f_fplm, fplm)) != -1) @@ -343,7 +331,6 @@ void predict_target(context* ctx) int fields_nb; int errors = 0; char target_name[10]; - char output_fplm_name[20]; char predict_name[50]; FPLM* fplm = new_fplm(); TARGET target; @@ -356,14 +343,8 @@ void predict_target(context* ctx) strcpy(predict_name,"predict_"); strcat(predict_name,target_name); target = choose_target(target_name); - if(ctx->cascade) - { - strcpy(output_fplm_name,"fplm_"); - strcat(output_fplm_name,target_name); - init_output_files(out_files, "predict_error", predict_name, output_fplm_name, NULL); - } - else - init_output_files(out_files, "predict_error", predict_name, NULL, NULL); + + init_output_files(out_files, "predict_error", predict_name, NULL); while((fields_nb = read_line_fplm(in_files->f_fplm, fplm)) != -1) { @@ -377,8 +358,6 @@ void predict_target(context* ctx) continue; } line_nb++; - if(ctx->cascade) - fprintf(out_files->new_fplm,"%s\t%s\t%s\t",fplm->form, fplm->pos, fplm->lemma); make_prediction(ctx, out_files, in_files->code_class, target, &errors, fplm, cfw, fv, dico_features, fm); } printf("Success rate : %lf %%\n", 100-((float)errors*100/line_nb)); @@ -401,70 +380,6 @@ void make_prediction(context* ctx, Output_files* out_files, FILE* code_class, TA errors_nb_separated(out_files->f_error, code_class, target, class_predicted, errors, fplm); else errors_nb_not_separated(out_files->f_error, code_class, target, fplm, class_predicted, errors); - - if(ctx->cascade) - write_new_fplm(fplm, target, out_files->new_fplm, code_class, class_predicted); - -} - -void write_new_fplm(FPLM* fplm, TARGET target, FILE* new_fplm, FILE* code_class, int class_predicted) -{ - int code; - int i=0; - int ok=1; - int cpt_diese = 0; - char tmp[20]; - char new_morpho[30]; //will contain the morpho feature with the prediction - int position_morpho = 0; - int position = extract_class_position(target); //position = the num of the diese we want - while(i<(int)strlen(fplm->morpho) && cpt_diese!=position) - { - new_morpho[i] = fplm->morpho[i]; - if(fplm->morpho[i]=='#') - cpt_diese++; - i++; - } - position = i; //position is now where we will include the class predicted - position_morpho = position; - while(position_morpho<(int)strlen(fplm->morpho) && fplm->morpho[position_morpho]!='#') - position_morpho++; //position_morpho is where we will copy the initial morpho feature in the new morpho feature - - if(class_predicted==0) - { - while(position_morpho<(int)strlen(fplm->morpho)) //writting the initial morpho feature's rest in the new morpho feature - { - new_morpho[position] = fplm->morpho[position_morpho]; - position++; - position_morpho++; - } - new_morpho[position]='\0'; - ok=0; - } - - rewind(code_class); - fscanf(code_class,"%s",tmp); //read the target name - while(ok && fscanf(code_class,"%d %s\n",&code,tmp)==2) //tmp = class - { - if(class_predicted==code && code!=0) //including the class predicted - { - i=0; - while(i<(int)strlen(tmp)) - { - new_morpho[position]=tmp[i]; - i++; - position++; - } - while(position_morpho<(int)strlen(fplm->morpho)) //writting the initial morpho feature's rest in the new morpho feature - { - new_morpho[position] = fplm->morpho[position_morpho]; - position++; - position_morpho++; - } - new_morpho[position]='\0'; - ok=0; - } - } - fprintf(new_fplm,"%s\n",new_morpho); } /**Fonctions for separated classes**/ @@ -522,7 +437,7 @@ void predict_each_and_all_targets(context* ctx) int global_error = 0; int line_nb = 0; FPLM* fplm = new_fplm(); - init_output_files(out_files, NULL, NULL, NULL, "morpho_predicted"); + init_output_files(out_files, NULL, NULL, "morpho_predicted"); init_input_files(in_files,ctx->fplm_filename, NULL, "code_class", "code_class_tense", "code_class_person", "code_class_gender", "code_class_number", "predict_tense", "predict_person", "predict_gender", "predict_number"); -- GitLab