From 9e910111bfb85e34284413a9e377497ee18fa5a2 Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 2 Apr 2013 12:39:28 +0800 Subject: update import_k_mixture_model.cpp --- utils/training/import_k_mixture_model.cpp | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/utils/training/import_k_mixture_model.cpp b/utils/training/import_k_mixture_model.cpp index 1e62889..f842764 100644 --- a/utils/training/import_k_mixture_model.cpp +++ b/utils/training/import_k_mixture_model.cpp @@ -20,10 +20,20 @@ */ #include +#include #include "pinyin_internal.h" #include "utils_helper.h" #include "k_mixture_model.h" +static const gchar * k_mixture_model_filename = NULL; + +static GOptionEntry entries[] = +{ + {"k-mixture-model-file", 0, 0, G_OPTION_ARG_FILENAME, &k_mixture_model_filename, "k mixture model file", NULL}, + {NULL} +}; + + enum LINE_TYPE{ BEGIN_LINE = 1, END_LINE, @@ -50,9 +60,6 @@ bool parse_bigram(FILE * input, PhraseLargeTable2 * phrase_table, FacadePhraseIndex * phrase_index, KMixtureModelBigram * bigram); -void print_help(){ - printf("Usage: import_k_mixture_model [--k-mixture-model-file ]\n"); -} static ssize_t my_getline(FILE * input){ ssize_t result = getline(&linebuf, &len, input); @@ -250,25 +257,18 @@ bool parse_bigram(FILE * input, PhraseLargeTable2 * phrase_table, } int main(int argc, char * argv[]){ - int i = 1; - const char * k_mixture_model_filename = NULL; FILE * input = stdin; - while ( i < argc ){ - if ( strcmp ("--help", argv[i]) == 0 ){ - print_help(); - exit(0); - } else if ( strcmp ("--k-mixture-model-file", argv[i]) == 0 ){ - if ( ++i > argc ){ - print_help(); - exit(EINVAL); - } - k_mixture_model_filename = argv[i]; - } else { - print_help(); - exit(EINVAL); - } - ++i; + setlocale(LC_ALL, ""); + + GError * error = NULL; + GOptionContext * context; + + context = g_option_context_new("- import 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); } PhraseLargeTable2 phrase_table; -- cgit