help= 'Check if the utterance is true given the KB. Only work for simulated data.' ) add_scenario_arguments(parser) add_lexicon_arguments(parser) add_dataset_arguments(parser) add_neural_system_arguments(parser) add_heuristic_system_arguments(parser) args = parser.parse_args() logstats.init(args.stats_file) if args.random_seed: random.seed(args.random_seed) np.random.seed(args.random_seed) schema = Schema(args.schema_path) scenario_db = ScenarioDB.from_dict(schema, read_json(args.scenarios_path)) lexicon = Lexicon(schema, args.learned_lex, stop_words=args.stop_words) if args.inverse_lexicon: realizer = InverseLexicon(schema, args.inverse_lexicon) else: realizer = None if args.train_max_examples is None: args.train_max_examples = scenario_db.size if args.test_max_examples is None: args.test_max_examples = scenario_db.size def get_system(name): if name == 'simple': return SimpleSystem(lexicon, realizer=realizer)
kbs = [KB(scenario_attributes, items) for items in agent_items] scenarios = [] for style in styles: scenario = Scenario(generate_uuid('S'), scenario_attributes, kbs, style, [alphas[attr] for attr in scenario_attributes]) scenarios.append(scenario) return scenarios # Generate scenarios schema = Schema(args.schema_path, args.domain) scenario_list = [] while len(scenario_list) < args.num_scenarios * args.num_styles: s_list = generate_scenario(schema) for s in s_list: if s is not None: scenario_list.append(s) scenario_db = ScenarioDB(scenario_list) write_json(scenario_db.to_dict(), args.scenarios_path) # Output a sample of what we've generated for i in range(min(100, len(scenario_db.scenarios_list))): print '---------------------------------------------------------------------------------------------' print '---------------------------------------------------------------------------------------------' scenario = scenario_db.scenarios_list[i] print "Scenario id: %s" % scenario.uuid print "Alphas: [%s]" % ", ".join(["%2.1f" % alpha for alpha in scenario.alphas]) for agent in (0, 1): kb = scenario.kbs[agent] kb.dump()
''' Output all scenarios in a chat transcript. ''' import sys import argparse from src.basic.util import read_json, write_json from src.basic.scenario_db import Scenario, ScenarioDB from src.basic.schema import Schema parser = argparse.ArgumentParser() parser.add_argument('--chats') parser.add_argument('--scenarios') parser.add_argument('--schema-path') args = parser.parse_args() chats = read_json(args.chats) schema = Schema(args.schema_path) scenarios = [] for chat in chats: scenarios.append(Scenario.from_dict(schema, chat['scenario'])) scenario_db = ScenarioDB(scenarios) write_json(scenario_db.to_dict(), args.scenarios)