def show_markup(recipe, tags): mapper = lambda tag: tag[2:] if tag != 'OTHER' else tag tags = [mapper(tag) for tag in tags] text = ' '.join(recipe) spans = [] start, end, tag = 0, len(recipe[0]), tags[0] for word, ttag in zip(recipe[1:], tags[1:]): if tag == ttag: end += 1 + len(word) else: span = (start, end, tag) spans.append(span) start = 1 + end end += 1 + len(word) tag = ttag span = (start, end, tag) spans.append(span) show_box_markup(text, spans, palette=PALETTE)
def rasa_nlu_vis(sents, host_and_port: Text = 'http://localhost:5005'): from ipymarkup import show_box_markup result = rasa_nlu_parse(sents, host_and_port=host_and_port) if len(result) > 0: ents = result['entities'] spans = [(w['start'], w['end'], w['entity']) for w in ents] show_box_markup(sents, spans)
def highlight_text(tokens: List[str], tags: List[str]): """ Выводит на печать текст с подсветкой тегов :param tokens: список токенов :param tags: список тегов :return: """ assert len(tokens) == len(tags) spans = [] start = 0 for i in range(len(tokens)): len_token = len(tokens[i]) spans.append((start, start + len_token, tags[i])) start += len_token + 1 text = ' '.join(tokens) show_box_markup(text, spans)
def ner_jieba_vis(text): from ipymarkup.palette import palette, BLUE, RED, GREEN from ipymarkup import show_box_markup spans = [(w['start'], w['end'], w['entity']) for w in ner_jieba(text)] show_box_markup(text, spans, palette=palette(PER=BLUE, ORG=RED, LOC=GREEN))
def show_markup(text, spans): show_box_markup(text, spans, palette=PALETTE)