def fit(self, dataset, epochs=10, dev=None): """ Trains a BIST model on an annotated dataset in CoNLL file format. Args: dataset (str): Path to input dataset for training, formatted in CoNLL/U format. epochs (int, optional): Number of learning iterations. dev (str, optional): Path to development dataset for conducting evaluations. """ if dev: dev = validate_existing_filepath(dev) dataset = validate_existing_filepath(dataset) validate((epochs, int, 0, None)) print("\nRunning fit on " + dataset + "...\n") words, w2i, pos, rels = utils.vocab(dataset) self.params = words, w2i, pos, rels, self.options from nlp_architect.models.bist.mstlstm import MSTParserLSTM self.model = MSTParserLSTM(*self.params) for epoch in range(epochs): print("Starting epoch", epoch + 1) self.model.train(dataset) if dev: ext = dev.rindex(".") res_path = dev[:ext] + "_epoch_" + str(epoch + 1) + "_pred" + dev[ext:] utils.write_conll(res_path, self.model.predict(dev)) utils.run_eval(dev, res_path)
def fit(self, dataset, epochs=10, dev=None): """ Trains a BIST model on an annotated dataset in CoNLL file format. Args: dataset (str): Path to input dataset for training, formatted in CoNLL/U format. epochs (int, optional): Number of learning iterations. dev (str, optional): Path to development dataset for conducting evaluations. """ if dev: dev = validate_existing_filepath(dev) dataset = validate_existing_filepath(dataset) validate((epochs, int, 0, None)) print('\nRunning fit on ' + dataset + '...\n') words, w2i, pos, rels = utils.vocab(dataset) self.params = words, w2i, pos, rels, self.options self.model = MSTParserLSTM(*self.params) for epoch in range(epochs): print('Starting epoch', epoch + 1) self.model.train(dataset) if dev: ext = dev.rindex('.') res_path = dev[:ext] + '_epoch_' + str(epoch + 1) + '_pred' + dev[ext:] utils.write_conll(res_path, self.model.predict(dev)) utils.run_eval(dev, res_path)