Example #1
0
 def _get_token_distance(self, doc: Document, e1: Entity, e2: Entity):
     if 'entities_token_distance_in_classifier' not in self.classifier_converters:
         return {}
     return {
         'entities_token_distance_in_classifier':
         self.classifier_converters['entities_token_distance_in_classifier']
         [e1.token_distance_to(e2)]
     }
Example #2
0
    def _get_relation_features(doc, e1: Entity, e2: Entity, converters,
                               name_postfix):
        features = {}

        feature_name = "rel_args_in_{}".format(name_postfix)
        converter = converters.get(feature_name, None)
        if converter is not None:
            features[feature_name] = converter[(e1.type, e2.type)]

        feature_name = "entities_token_distance_in_{}".format(name_postfix)
        converter = converters.get(feature_name, None)
        if converter is not None:
            features[feature_name] = converter[e1.token_distance_to(e2)]

        feature_name = "entities_token_log_distance_in_{}".format(name_postfix)
        converter = converters.get(feature_name, None)
        if converter is not None:
            features[feature_name] = converter[e1.token_distance_to(e2)]

        feature_name = "entities_sent_distance_in_{}".format(name_postfix)
        converter = converters.get(feature_name, None)
        if converter is not None:
            features[feature_name] = converter[
                get_sentence_distance_between_entities(doc, e1, e2)]

        feature_name = "rel_dir_in_{}".format(name_postfix)
        converter = converters.get(feature_name, None)
        if converter is not None:
            features[feature_name] = converter[
                RelExtFeatureExtractor._get_direction_feature(e1, e2)]

        for ent_num, ent in enumerate((e1, e2)):
            feature_name = "entities_types_in_{}_{}".format(
                name_postfix, ent_num)
            converter = converters.get(feature_name, None)
            if converter is not None:
                features[feature_name] = converter[ent.type]

        return features