Exemplo n.º 1
0
def create_output_handlers():
    """Creates the output handlers defined in the ``io`` module.
    These handlers create output files in different formats from the
    decoding results.

    Args:
        args: Global command line arguments.

    Returns:
        list. List of output handlers according --outputs
    """
    if not args.outputs:
        return []
    trg_map = {} if utils.trg_cmap else utils.trg_wmap
    outputs = []
    start_sen_id = 0
    if args.range:
        idx, _ = args.range.split(":")
        start_sen_id = int(idx) - 1  # -1 because --range indices start with 1
    for name in utils.split_comma(args.outputs):
        if '%s' in args.output_path:
            path = args.output_path % name
        else:
            path = args.output_path
        if name == "text":
            outputs.append(TextOutputHandler(path, trg_map))
        elif name == "delay":
            outputs.append(DelayOutputHandler(path))
        elif name == "nbest":
            outputs.append(
                NBestOutputHandler(path, utils.split_comma(args.predictors),
                                   start_sen_id, trg_map))
        elif name == "ngram":
            outputs.append(
                NgramOutputHandler(path, args.min_ngram_order,
                                   args.max_ngram_order, start_sen_id))
        elif name == "timecsv":
            outputs.append(
                TimeCSVOutputHandler(path, utils.split_comma(args.predictors),
                                     start_sen_id))
        elif name == "fst":
            outputs.append(
                FSTOutputHandler(path, start_sen_id, args.fst_unk_id))
        elif name == "sfst":
            outputs.append(
                StandardFSTOutputHandler(path, start_sen_id, args.fst_unk_id))
        else:
            logging.fatal("Output format %s not available. Please double-check"
                          " the --outputs parameter." % name)
    return outputs
Exemplo n.º 2
0
def create_output_handlers():
    """Creates the output handlers defined in the ``io`` module. 
    These handlers create output files in different formats from the
    decoding results.
    
    Args:
        args: Global command line arguments.
    
    Returns:
        list. List of output handlers according --outputs
    """
    if not args.outputs:
        return []
    outputs = []
    for name in utils.split_comma(args.outputs):
        if '%s' in args.output_path:
            path = args.output_path % name
        else:
            path = args.output_path
        if name == "text":
            outputs.append(TextOutputHandler(path))
        elif name == "nbest":
            outputs.append(NBestOutputHandler(path, 
                                              utils.split_comma(args.predictors)))
        elif name == "ngram":
            outputs.append(NgramOutputHandler(path,
                                              args.min_ngram_order,
                                              args.max_ngram_order))
        elif name == "timecsv":
            outputs.append(TimeCSVOutputHandler(path, 
                                                utils.split_comma(args.predictors)))
        elif name == "fst":
            outputs.append(FSTOutputHandler(path,
                                            args.fst_unk_id))
        elif name == "sfst":
            outputs.append(StandardFSTOutputHandler(path,
                                                    args.fst_unk_id))
        else:
            logging.fatal("Output format %s not available. Please double-check"
                          " the --outputs parameter." % name)
    return outputs
Exemplo n.º 3
0
def create_output_handlers():
    """Creates the output handlers defined in the ``io`` module. 
    These handlers create output files in different formats from the
    decoding results. This method reads out the global variable
    ``args.outputs``.
    
    Returns:
        list. List of output handlers according --outputs
    """
    if not args.outputs:
        return []
    trg_map = {} if utils.trg_cmap else utils.trg_wmap
    outputs = []
    start_sen_id = 0
    if args.range:
        idx,_ = args.range.split(":")
        start_sen_id = int(idx)-1 # -1 because --range indices start with 1
    for name in args.outputs.split(","):
        if '%s' in args.output_path:
            path = args.output_path % name
        else:
            path = args.output_path
        if name == "text":
            outputs.append(TextOutputHandler(path, trg_map))
        elif name == "nbest":
            outputs.append(NBestOutputHandler(path, args.predictors.split(","),
                                              start_sen_id,
                                              trg_map))
        elif name == "fst":
            outputs.append(FSTOutputHandler(path,
                                            start_sen_id,
                                            args.fst_unk_id))
        elif name == "sfst":
            outputs.append(StandardFSTOutputHandler(path,
                                                    start_sen_id,
                                                    args.fst_unk_id))
        else:
            logging.fatal("Output format %s not available. Please double-check"
                          " the --outputs parameter." % name)
    return outputs