예제 #1
0
    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))
예제 #2
0
 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)
예제 #3
0
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
예제 #4
0
 def test_find_top_spans_no_resuslts(self):
     v = [0.]
     topspans = find_top_spans(v, limit=100)
     print(topspans)
     self.assertEqual(0, len(topspans))
예제 #5
0
 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))
예제 #6
0
 def test_find_top_spans_empty(self):
     v = []
     topspans = find_top_spans(v, limit=100)
     print(topspans)
     self.assertEqual(0, len(topspans))