Exemplo n.º 1
0
    def reset(self, params, rep):
        logging.info("Resetting experiment, parameters: %s", str(params))
        datadir = params['datadir']
        dataset_path = os.path.join(datadir, params['dataset'] + '.json')
        random.seed(abs(hash(str(params))))
        with open(dataset_path) as dataset_file:
            dataset = json.load(dataset_file)

        vectors_path = os.path.join(datadir, params['vectors'])
        print "DB path: ", vectors_path
        vectors = TermDB(vectors_path)
        terms = set(x[0] for x in dataset) | set(x[1] for x in dataset)
        vectors.nouns.load(terms)

        maker = ClassifierMaker(vectors, params)
        classifier = maker.make(params['classifier'])

        num_folds = params['repetitions']
        self.experiment = EntailmentExperiment(dataset, classifier, num_folds)
Exemplo n.º 2
0
class EntailmentSuite(PyExperimentSuite):
    def __init__(self, **options):
        self.additional_options = options
        logging.info("Additional options: %s", str(options))
        super(EntailmentSuite, self).__init__()

    def reset(self, params, rep):
        logging.info("Resetting experiment, parameters: %s", str(params))
        datadir = params['datadir']
        dataset_path = os.path.join(datadir, params['dataset'] + '.json')
        random.seed(abs(hash(str(params))))
        with open(dataset_path) as dataset_file:
            dataset = json.load(dataset_file)

        vectors_path = os.path.join(datadir, params['vectors'])
        print "DB path: ", vectors_path
        vectors = TermDB(vectors_path)
        terms = set(x[0] for x in dataset) | set(x[1] for x in dataset)
        vectors.nouns.load(terms)

        maker = ClassifierMaker(vectors, params)
        classifier = maker.make(params['classifier'])

        num_folds = params['repetitions']
        self.experiment = EntailmentExperiment(dataset, classifier, num_folds)

    def iterate(self, params, rep, n):
        logging.info("Beginning iteration %d, repetition %d", n, rep)
        assert n == 0
        confusion, time, info, classparams, predictions, target = self.experiment.runFold(
            rep)

        return {
            'rep': rep,
            'iter': n,
            'confusion': confusion,
            'time': time.total_seconds(),
            'classifier': params['classifier'],
            'info': info,
            'params': classparams,
            'predictions': predictions,
            'target': target
        }

    def parse_opt(self):
        """ parses the command line options for different settings. """
        options, args = super(EntailmentSuite, self).parse_opt()
        self.options.__dict__.update(self.additional_options)
Exemplo n.º 3
0
    def reset(self, params, rep):
        logging.info("Resetting experiment, parameters: %s", str(params))
        datadir = params['datadir']
        dataset_path = os.path.join(datadir, params['dataset'] + '.json')
        random.seed(abs(hash(str(params))))
        with open(dataset_path) as dataset_file:
            dataset = json.load(dataset_file)

        vectors_path = os.path.join(datadir, params['vectors'])
        print "DB path: ", vectors_path
        vectors = TermDB(vectors_path)

        maker = ClassifierMaker(vectors, params)
        classifier = maker.make(params['classifier'])

        num_folds = params['repetitions']
        self.experiment = EntailmentExperiment(dataset, classifier, num_folds)
Exemplo n.º 4
0
class EntailmentSuite(PyExperimentSuite):
    def __init__(self, **options):
        self.additional_options = options
        logging.info("Additional options: %s", str(options))
        super(EntailmentSuite, self).__init__()

    def reset(self, params, rep):
        logging.info("Resetting experiment, parameters: %s", str(params))
        datadir = params['datadir']
        dataset_path = os.path.join(datadir, params['dataset'] + '.json')
        random.seed(abs(hash(str(params))))
        with open(dataset_path) as dataset_file:
            dataset = json.load(dataset_file)

        vectors_path = os.path.join(datadir, params['vectors'])
        print "DB path: ", vectors_path
        vectors = TermDB(vectors_path)
        terms = set(x[0] for x in dataset) | set(x[1] for x in dataset)
        vectors.nouns.load(terms)

        maker = ClassifierMaker(vectors, params)
        classifier = maker.make(params['classifier'])

        num_folds = params['repetitions']
        self.experiment = EntailmentExperiment(dataset, classifier, num_folds)
        
    def iterate(self, params, rep, n):
        logging.info("Beginning iteration %d, repetition %d", n, rep)
        assert n == 0
        confusion, time, info, classparams, predictions, target = self.experiment.runFold(rep)
        
        return {'rep':rep,
                'iter':n,
                'confusion':confusion,
                'time':time.total_seconds(),
                'classifier':params['classifier'],
                'info': info,
                'params': classparams,
                'predictions': predictions,
                'target': target}

    def parse_opt(self):
        """ parses the command line options for different settings. """
        options, args = super(EntailmentSuite, self).parse_opt()
        self.options.__dict__.update(self.additional_options)