def test_find_top_spans_gap(self): GAP = 0.0 v = [GAP, 0.9, 0.6, GAP, GAP, 1., GAP, GAP, GAP] print(v) topspans = find_top_spans(v, maxgap=1) self.assertEqual(2, len(topspans)) topspans = find_top_spans(v, maxgap=3) self.assertEqual(1, len(topspans))
def test_find_top_spans_limit(self): v = [0., 0.9, 0.6, 0., 0., 0., 0., 0., 1.] topspans = find_top_spans(v, limit=1) print(topspans) self.assertEqual(1, len(topspans)) sp: slice = topspans[0] self.assertEqual(8, sp.start) self.assertEqual(9, sp.stop)
def nn_get_tag_value(tagname: str, textmap: TextMap, semantic_map: DataFrame, threshold=0.3) -> SemanticTag or None: att = semantic_map[tagname].values slices = find_top_spans(att, threshold=threshold, limit=1) # TODO: estimate per-tag thresholds if len(slices) > 0: span = slices[0].start, slices[0].stop value = textmap.text_range(span) tag = SemanticTag(tagname, value, span) tag.confidence = float(att[slices[0]].mean()) return tag return None
def test_find_top_spans_no_resuslts(self): v = [0.] topspans = find_top_spans(v, limit=100) print(topspans) self.assertEqual(0, len(topspans))
def test_find_top_spans(self): v = [0., 1., 0.6, 0., 0.] topspans = find_top_spans(v, limit=1) print(topspans) self.assertEqual(1, len(topspans))
def test_find_top_spans_empty(self): v = [] topspans = find_top_spans(v, limit=100) print(topspans) self.assertEqual(0, len(topspans))