Ejemplo n.º 1
0
    def test_not_remove_modifiers_overlap_target(self):
        """Test that a modifier which overlaps with a target is not pruned but does not modify itself."""
        doc = nlp("The patient has heart failure.")
        doc.ents = (Span(doc, 3, 5, "CONDITION"), )
        context_item = ConTextRule("failure", "MODIFIER")
        tag_object = ConTextModifier(context_item, 4, 5, doc)
        graph = ConTextGraph(remove_overlapping_modifiers=False)

        graph.modifiers = [tag_object]
        graph.targets = doc.ents
        graph.apply_modifiers()

        assert overlap_target_modifiers(tag_object.span, doc.ents[0])
        assert len(graph.modifiers) == 1
Ejemplo n.º 2
0
    def test_remove_modifiers_overlap_target(self):
        """Test that a modifier which overlaps with a target is removed when set to True."""
        doc = nlp("The patient has heart failure.")
        doc.ents = (Span(doc, 3, 5, "CONDITION"), )
        context_item = ConTextItem("failure", "MODIFIER")
        tag_object = TagObject(context_item, 4, 5, doc)
        graph = ConTextGraph(remove_overlapping_modifiers=True)

        graph.modifiers = [tag_object]
        graph.targets = doc.ents
        graph.prune_modifiers()
        graph.apply_modifiers()

        assert overlap_target_modifiers(tag_object.span, doc.ents[0])
        assert len(graph.modifiers) == 0