class BEParsingModel: def __init__(self, model_path): with open(model_path, 'r') as f: self.beam_size = int(f.readline().strip()) label_hash_file = f.readline().strip() self.label_hash = load_hash_from_file(label_hash_file) weights_file_path = f.readline().strip() + ".FINAL" self.perceptron = MulticlassModel(weights_file_path) def get_scores(self, features): return self.perceptron.get_scores(features)
class TestModel(object): """ Model use to test """ def __init__(self, model_dir, beam_size, iter='FINAL'): self.feats_extractor = FeaturesExtractor() weight_name = 'weight.' + iter weight_path = os.path.join(model_dir, weight_name) # load already trained model self.perceptron = MulticlassModel(weight_path) self.beam_size = beam_size def featex(self, pending, deps, i): return self.feats_extractor.extract(pending, deps, i) def get_score(self, features): return self.perceptron.get_scores(features)