

def convert_iob_to_iobes(iob_tags):
    'Converts a sequence of IOB tags into IOBES tags.'
    iobes_tags = []
    for (tag, next_tag) in zip(iob_tags, (iob_tags[1:] + [None])):
        if (tag == 'O'):
            iobes_tags.append('O')
        elif next_tag.startswith('B'):
            if ((next_tag is not None) and next_tag.startswith('I')):
                iobes_tags.append(tag)
            else:
                iobes_tags.append(('S-%s' % tag[2:]))
        elif tag.startswith('I'):
            if (next_tag == tag):
                iobes_tags.append(tag)
            else:
                iobes_tags.append(('E-%s' % tag[2:]))
        else:
            raise ValueError(('Unknown tag: %s' % tag))
    return iobes_tags

dataset/ETHPy150Open erickrf/nlpnet/bin/nlpnet-test.py convert_iob_to_iobes/VarMisuse@61/112 `tag`->`next_tag`