22
33import  argparse 
44import  json 
5+ import  logging 
56import  os 
7+ import  sys 
68from  random  import  randint 
79
810from  train  import  (
@@ -24,6 +26,12 @@ def __call__(self, parser, namespace, values, option_strings):
2426        setattr (namespace , self .dest , json .loads (values ))
2527
2628
29+ LOGGING_LEVEL  =  {
30+     0 : logging .INFO ,
31+     1 : logging .DEBUG ,
32+ }
33+ 
34+ 
2735if  __name__  ==  "__main__" :
2836    parser  =  argparse .ArgumentParser (
2937        description = "Train a CRF model to parse label token from recipe \  
@@ -85,6 +93,13 @@ def __call__(self, parser, namespace, values, option_strings):
8593        action = "store_true" ,
8694        help = "Plot confusion matrix of token labels." ,
8795    )
96+     train_parser .add_argument (
97+         "-v" ,
98+         help = "Enable verbose output." ,
99+         action = "count" ,
100+         default = 0 ,
101+         dest = "verbose" ,
102+     )
88103
89104    multiple_parser_help  =  "Average CRF performance across multiple training cycles." 
90105    multiple_parser  =  subparsers .add_parser ("multiple" , help = multiple_parser_help )
@@ -149,6 +164,13 @@ def __call__(self, parser, namespace, values, option_strings):
149164        type = int ,
150165        help = "Number of processes to spawn. Default to number of cpu cores." ,
151166    )
167+     multiple_parser .add_argument (
168+         "-v" ,
169+         help = "Enable verbose output." ,
170+         action = "count" ,
171+         default = 0 ,
172+         dest = "verbose" ,
173+     )
152174
153175    gridsearch_parser_help  =  (
154176        "Grid search over all combinations of model hyperparameters." 
@@ -255,6 +277,13 @@ def __call__(self, parser, namespace, values, option_strings):
255277        action = ParseJsonArg ,
256278        default = dict (),
257279    )
280+     gridsearch_parser .add_argument (
281+         "-v" ,
282+         help = "Enable verbose output." ,
283+         action = "count" ,
284+         default = 0 ,
285+         dest = "verbose" ,
286+     )
258287
259288    featuresearch_parser_help  =  "Grid search over all sets of model features." 
260289    featuresearch_parser  =  subparsers .add_parser (
@@ -311,6 +340,13 @@ def __call__(self, parser, namespace, values, option_strings):
311340        type = int ,
312341        help = "Seed value used for train/test split." ,
313342    )
343+     featuresearch_parser .add_argument (
344+         "-v" ,
345+         help = "Enable verbose output." ,
346+         action = "count" ,
347+         default = 0 ,
348+         dest = "verbose" ,
349+     )
314350
315351    utility_help  =  "Utilities to aid cleaning training data." 
316352    utility_parser  =  subparsers .add_parser ("utility" , help = utility_help )
@@ -343,6 +379,12 @@ def __call__(self, parser, namespace, values, option_strings):
343379
344380    args  =  parser .parse_args ()
345381
382+     logging .basicConfig (
383+         stream = sys .stdout ,
384+         level = LOGGING_LEVEL [args .verbose ],
385+         format = "[%(levelname)s] (%(module)s) %(message)s" ,
386+     )
387+ 
346388    if  args .command  ==  "train" :
347389        train_single (args )
348390    elif  args .command  ==  "multiple" :
0 commit comments