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, )
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))