From db89cdf49dc5609ae42f9d6d83f0f1a929d258e0 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 2 Apr 2013 12:47:57 +0800 Subject: update merge_k_mixture_model.cpp --- utils/training/merge_k_mixture_model.cpp | 33 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/utils/training/merge_k_mixture_model.cpp b/utils/training/merge_k_mixture_model.cpp index 72397ef..ab08010 100644 --- a/utils/training/merge_k_mixture_model.cpp +++ b/utils/training/merge_k_mixture_model.cpp @@ -28,6 +28,13 @@ void print_help(){ printf(" {}+\n"); } +static const gchar * result_filename = NULL; + +static GOptionEntry entries[] = +{ + {"result-file", 0, 0, G_OPTION_ARG_FILENAME, &result_filename, "merged result file", NULL}, + {NULL} +}; static bool merge_two_phrase_array( /* in */ FlexibleBigramPhraseArray first, /* in */ FlexibleBigramPhraseArray second, @@ -203,29 +210,23 @@ bool merge_two_k_mixture_model( /* in & out */ KMixtureModelBigram * target, int main(int argc, char * argv[]){ int i = 1; - const char * result_filename = NULL; setlocale(LC_ALL, ""); - while (i < argc) { - if ( strcmp("--help", argv[i]) == 0 ){ - print_help(); - exit(0); - } else if ( strcmp("--result-file", argv[i]) == 0 ){ - if ( ++i >= argc ){ - print_help(); - exit(EINVAL); - } - result_filename = argv[i]; - } else { - break; - } - ++i; + + GError * error = NULL; + GOptionContext * context; + + context = g_option_context_new("- merge k mixture model"); + g_option_context_add_main_entries(context, entries, NULL); + if (!g_option_context_parse(context, &argc, &argv, &error)) { + g_print("option parsing failed:%s\n", error->message); + exit(EINVAL); } KMixtureModelBigram target(K_MIXTURE_MODEL_MAGIC_NUMBER); target.attach(result_filename, ATTACH_READWRITE|ATTACH_CREATE); - while ( i < argc ){ + while (i < argc){ const char * new_filename = argv[i]; KMixtureModelBigram new_one(K_MIXTURE_MODEL_MAGIC_NUMBER); new_one.attach(new_filename, ATTACH_READONLY); -- cgit