Визуализация текстовой классификации - PullRequest
0 голосов
/ 14 декабря 2018

Предположим, у меня есть предложение слов, где каждое слово (или символ) имеет соответствующее числовое значение или цвет.Например, это может исходить из классификатора настроений RNN , который будет производить что-то вроде:

enter image description here

I'mищу легкий способ визуализации слов / символов в предложениях в Jupyter с python.Есть ли элегантный способ сделать это встроенным в ноутбук?В основном я видел, как это делается с помощью дополнительного javascript, в отдельном html-файле.Обратите внимание, что я в порядке только со статической визуализацией.Я видел, как вы можете изменить цвет шрифта каждой буквы, но я бы предпочел просто манипулировать цветом фона (заливка?), Сохраняя текст черным.Я просто не уверен, к чему это относится.

1 Ответ

0 голосов
/ 14 декабря 2018

Не уверен, есть ли предпочтительный способ добиться этого;Вот быстрый подход, который использует крошечный шаблон html и IPython.display.display_html:

from IPython.display import display_html

def to_html(text, r, g, b):
    return "<var style='background-color:rgb({}, {}, {});'>{} </var>".format(
        r, g, b, text
    )

example = "A quick brown fox jumps over the lazy dog.".split()
res = ''.join(to_html(word, *np.random.randint(0,256,size=3)) for word in example)
display_html(res, raw=True)

В результате чего-то вроде этого:

<var style='background-color:rgb(144, 237, 221);'>A </var><var style='background-color:rgb(28, 208, 84);'>quick </var><var style='background-color:rgb(142, 241, 214);'>brown </var><var style='background-color:rgb(67, 199, 115);'>fox </var><var style='background-color:rgb(121, 120, 116);'>jumps </var><var style='background-color:rgb(251, 46, 48);'>over </var><var style='background-color:rgb(128, 147, 44);'>the </var><var style='background-color:rgb(48, 215, 5);'>lazy </var><var style='background-color:rgb(239, 90, 48);'>dog. </var>
...