def get_system(name, args, schema, model_path=None, timed=False): lexicon = Lexicon.from_pickle(args.lexicon) templates = Templates.from_pickle(args.templates) if name == 'rulebased': templates = Templates.from_pickle(args.templates) generator = Generator(templates) manager = Manager.from_pickle(args.policy) return RulebasedSystem(lexicon, generator, manager, timed) elif name == 'cmd': return CmdSystem() else: raise ValueError('Unknown system %s' % name)
nargs='*', help='JSON transcripts to extract templates') parser.add_argument('--max-examples', default=-1, type=int) parser.add_argument('--templates', help='Path to load templates') parser.add_argument('--reviews', help='Path to load templates') parser.add_argument('--templates-output', help='Path to save templates') parser.add_argument('--model', help='Path to load model') parser.add_argument('--model-output', help='Path to save the dialogue manager model') args = parser.parse_args() examples = read_examples(args.transcripts, args.max_examples, Scenario) parsed_dialogues = [] templates = Templates() lexicon = Lexicon.from_pickle(args.lexicon) for example in examples: utterances = parse_example(example, lexicon, templates) parsed_dialogues.append(utterances) # Train n-gram model sequences = [] for d in parsed_dialogues: sequences.append([u.lf.intent for u in d]) manager = Manager.from_train(sequences) manager.save(args.model_output) if args.reviews: print 'read reviews from', args.reviews templates.read_reviews(args.reviews)