Example #1
0
    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)
Example #2
0
    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()
Example #3
0
'''
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)