可视化文本分类

时间:2018-12-13 23:51:47

标签: python deep-learning jupyter-notebook data-visualization visualization

假设我有一个单词句子,其中每个单词(或字符)都有一个关联的数值或颜色。例如,这可能来自RNN sentiment classifier,它将产生类似以下内容的

enter image description here

我正在寻找一种轻量级的方式来使用python可视化Jupyter中句子中的单词/字符。是否有一种优雅的方式可以在笔记本中进行内联?我大多数情况下是在单独的html文件中使用其他JavaScript完成此操作的。请注意,我只需要静态可视化就可以了。我见过您每个字母can change the color of the font,但我希望只操作背景颜色(填充?),同时使文本保持黑色。我只是不确定这是指什么。

1 个答案:

答案 0 :(得分:1)

不确定是否有实现此目的的首选方法;这是一种使用小型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>