Exemplo n.º 1
0
    def match2key(cls, match):
        charspan_ref = cls.match2charspan_ref(match)
        charspan_hyp = cls.match2charspan_hyp(match)

        key = (
            -SpanTool.span2len(cls.match2tokenspan_ref(match)),
            -SpanTool.span2len(charspan_hyp),
            -SpanTool.span2len(charspan_ref),
            charspan_hyp,
            charspan_ref,
        )
        return key
Exemplo n.º 2
0
        def match2entity_list(match):
            span = match.span()
            assert_in(SpanTool.span2len(span), (2, 3))
            entity_list = []

            s, e = span
            span_nutmeg = (s, s + 1)
            entity_nutmeg = {
                FoxylibEntity.Field.SPAN:
                span_nutmeg,
                FoxylibEntity.Field.TEXT:
                StringTool.str_span2substr(text_in, span_nutmeg),
                FoxylibEntity.Field.VALUE:
                "Nutmeg",
                FoxylibEntity.Field.TYPE:
                TradegoodEntity.entity_type(),
            }
            entity_list.append(entity_nutmeg)

            span_mace = (s + 1, s + 2)
            entity_mace = {
                FoxylibEntity.Field.SPAN:
                span_mace,
                FoxylibEntity.Field.TEXT:
                StringTool.str_span2substr(text_in, span_mace),
                FoxylibEntity.Field.VALUE:
                "Mace",
                FoxylibEntity.Field.TYPE:
                TradegoodEntity.entity_type(),
            }
            entity_list.append(entity_mace)

            if SpanTool.span2len(span) == 3:
                span_clove = (s + 2, s + 3)
                entity_cloves = {
                    FoxylibEntity.Field.SPAN:
                    span_clove,
                    FoxylibEntity.Field.TEXT:
                    StringTool.str_span2substr(text_in, span_clove),
                    FoxylibEntity.Field.VALUE:
                    "Cloves",
                    FoxylibEntity.Field.TYPE:
                    TradegoodEntity.entity_type(),
                }
                entity_list.append(entity_cloves)

            return entity_list
Exemplo n.º 3
0
    def cospan2key(cls, cospan, token_list_ref, token_list_hyp):
        span_ref = Cospan.cospan2span_ref(cospan)
        charspan_ref = cls.Token.token_list_span2charspan(
            token_list_ref, span_ref)

        span_hyp = Cospan.cospan2span_hyp(cospan)
        charspan_hyp = cls.Token.token_list_span2charspan(
            token_list_hyp, span_hyp)

        key = (
            -SpanTool.span2len(span_ref),
            -SpanTool.span2len(charspan_hyp),
            -SpanTool.span2len(charspan_ref),
            charspan_hyp,
            charspan_ref,
        )
        return key
Exemplo n.º 4
0
 def match2len(cls, m):
     return SpanTool.span2len(cls.match2span(m))
Exemplo n.º 5
0
 def match2has_equal_token_span_len(cls, _match):
     span_hyp = cls.match2tokenspan_ref(_match)
     span_ref = cls.match2tokenspan_hyp(_match)
     return SpanTool.span2len(span_hyp) == SpanTool.span2len(span_ref)
Exemplo n.º 6
0
 def data2match_list_digit_2(cls, data):
     m_list_digit = cls.data2match_list_digit(data)
     return lfilter(lambda m: SpanTool.span2len(m.span()) == 2,
                    m_list_digit)