def train_test(self, model_type, compare=True): passages = [self.passage] scores = [] for mode in "train", "load": print("-- %sing %s" % (mode, model_type)) p = Parser(model_file="test_files/%s" % model_type, model_type=model_type) p.train(passages if mode == "train" else None) guess, ref = zip(*list(p.parse(passages))) print() self.assertSequenceEqual(ref, passages) score = evaluation.Scores.aggregate([evaluation.evaluate( g, r, verbose=False, units=False, errors=False) for g, r in zip(guess, ref)]) scores.append(score.average_f1()) if compare: self.assertEqual(*scores) print("-- average labeled f1: %.3f, %.3f" % tuple(scores))
def train_test(passages, *args, **kwargs): p = Parser(*args, **kwargs) p.train(passages) _, parsed = zip(*p.parse(passages)) return parsed