Ejemplo n.º 1
0
def main():
    args = docopt(__doc__)

    use_duration = True if args["-D"] else False
    window = int(args["-w"])

    models = model.extract_models(model.ZIPPED_MODELS)

    if args["-B"]:
        models = classification.binarize(models)

    for line in sys.stdin:
        splitted = line.strip().split("\t")

        if len(splitted) == 5:
            mid_terminal, uid, bid, aid, histories = splitted
            term = classification.terminal_name(mid_terminal)
            paths = stream.decode(histories)
            assert len(paths) == 1

            decision = classification.query(term, paths[0], models, use_duration=use_duration, window=window)

            if decision:
                forward(
                    mid_terminal,
                    uid,
                    bid,
                    aid,
                    decision.decision,
                    decision.prob,
                    decision.path,
                    decision.probs,
                    decision.principal,
                )
Ejemplo n.º 2
0
def main():
    args = docopt(__doc__)

    for line in sys.stdin:
        term, histories = history.build(line)

        if term and histories:
            assert len(histories) == 1

            if args['train']:
                mergers = int(args['-m'])
                reducers = int(args['-r'])

                key = term
                n = int(ceil(pow(reducers, 1.0 / mergers)))
                for i in xrange(mergers):
                    key += '-%d' % randint(0, n)

                forward(key, stream.encode(histories))
            elif args['classify']:
                fields = history.extract_fields(line)

                forward(fields.mid_terminal, fields.uid, fields.bid, fields.aid,
                        stream.encode(histories))