def test_IsSystemRunningThroughWithAllFeatures(self): system = System(self.testdata) # Turn on features system.use_dependency_is_root() system.use_dependency_order() system.use_aspect() system.use_tense() system.use_same_tense() system.use_same_aspect() system.use_dependency_type() system.use_dct() system.use_type() system.use_same_polarity() system.use_polarity() system.use_class() system.use_entity_distance() system.use_textual_order() system.use_duration() system.use_duration_difference() system.use_same_pos() system.use_pos() system.use_temporal_signal() system.create_features() system.train() system.eval() self.assertTrue(True)
def _run(self): data = Data() data.training = self.training system = System(data) system.use_best_feature_set() system.create_features() system.train() system.eval(quiet=True) self.result_event_event = system.evaluation_accuracy_event_event self.result_event_timex = system.evaluation_accuracy_event_timex
def measure_time(data): start = time.time() system = System(data) system.use_all_features() system.use_feature_selection() system.create_features() system.train() system.save_classifiers() system.eval() system.create_confidence_scores() system.apply_global_model() end = time.time() return end-start
def _run_systems(self): for k in range(1, self.max_len+1): features = list(set(self._feature_series(k, self.features_event_event) + self._feature_series(k, self.features_event_timex))) print features data = Data() data.training = TrainingSet(False, False, "data/training/TBAQ-cleaned/TimeBank/") system = System(data, features) system.create_features() system.cross_validation() now = list(set(self._feature_series(k, self.features_event_event))) if k > 1: prev = list(set(self._feature_series(k-1, self.features_event_event))) if k > 1: if now != prev: self.accuracies_event_event.append(system.crossval_accuracy_event_event) print system.crossval_accuracy_event_event else: self.accuracies_event_event.append(system.crossval_accuracy_event_event) print system.crossval_accuracy_event_event now = list(set(self._feature_series(k, self.features_event_timex))) if k > 1: prev = list(set(self._feature_series(k-1, self.features_event_timex))) if k > 1: if now != prev: self.accuracies_event_timex.append(system.crossval_accuracy_event_timex) print system.crossval_accuracy_event_timex else: self.accuracies_event_timex.append(system.crossval_accuracy_event_timex) print system.crossval_accuracy_event_timex print
# Leave out i for testing train_X, test_X = leave_out(pieces_X, i) train_y, test_y = leave_out(pieces_y, i) # Transform back to sparse train_X = transform_to_sparse_matrix(train_X) test_X = transform_to_sparse_matrix(test_X) clf.fit(train_X, train_y) predicted = clf.predict(test_X) accs.append(accuracy_score(test_y, predicted)) return np.mean(accs) data = Data() data.training = TrainingSet(False, False, "data/training/TBAQ-cleaned/TimeBank/") system = System(data, ["lemma", "token"]) system.create_features() X_event_event, y_event_event = system.training_event_event X_event_timex, y_event_timex = system.training_event_timex X_event_event = transform_to_list(X_event_event) X_event_timex = transform_to_list(X_event_timex) print kfold(X_event_event, y_event_event, 5) print kfold(X_event_timex, y_event_timex, 5)
class Distance: def __init__(self): self.data = Data() self.system = System(self.data) self.system.use_all_features() self.system.use_feature_selection() self.system.create_features() self.system.train() self.system.save_predictions_to_relations() self.relations = self._get_relations() same_sentence, not_same_sentence = self._sort_relations_after_in_same_sentence() print "Same sentence event-event:" truth, predicted = self._get_truth_and_prediction(same_sentence) print Result(truth, predicted) print "Same sentence event-timex:" truth, predicted = self._get_truth_and_prediction(same_sentence, event_event=False) print Result(truth, predicted) print "Not same sentence event-event:" truth, predicted = self._get_truth_and_prediction(not_same_sentence) print Result(truth, predicted) print "Not same sentence event-timex:" truth, predicted = self._get_truth_and_prediction(not_same_sentence, event_event=False) print Result(truth, predicted) def _get_truth_and_prediction(self, rels, event_event=True): prediction = [] truth = [] for rel in rels: if event_event and rel.is_event_event(): prediction.append(rel.predicted_class) truth.append(rel.relation_type) elif not event_event and rel.is_event_timex(): prediction.append(rel.predicted_class) truth.append(rel.relation_type) return truth, prediction def _get_relations(self): rels = [] for text_obj in self.data.test.text_objects: for relation in text_obj.relations: if relation.is_event_event(): rels.append(relation) elif relation.is_event_timex(): rels.append(relation) return rels def _sort_relations_after_in_same_sentence(self): same_sentence = [] not_same_sentence = [] for rel in self.relations: if rel.source.sentence == rel.target.sentence: same_sentence.append(rel) else: not_same_sentence.append(rel) return (same_sentence, not_same_sentence)