【问题标题】:JupyterLab output doesnt show visualizationJupyterLab 输出不显示可视化
【发布时间】:2026-01-24 08:00:01
【问题描述】:

在 2 个不同的可视化库中遇到了这个问题。 PYLDAVIS 和 DISPLACY (spacy)。 在 jupyterlab(内核为 python3)中执行代码时,预期的输出应该是 Jupyter Notebook 以显示图形或 Web 内容。但是我的 Jupyter 没有显示任何带有图形/依赖图像的输出。我只在 JupyterLab 中看到文本输出。

例如。

displacy.serve(doc, style='dep')  

我正在使用具有 JUPYTERLAB 的 KAGGLE docker 映像,除此之外,我还更新了最新的软件包。

如果这是 JUPYTERLAB 相关或底层包,有任何指针吗?

【问题讨论】:

    标签: spacy kaggle jupyter-lab


    【解决方案1】:

    我只能真正评论其中的 spaCy 部分,但我注意到的一件事是您使用 displacy.serve 而不是 displacy.render,这将是从 Jupyter 环境中调用的正确方法 (@987654321 @获取完整示例和更多详细信息)。这背后的原因是displacy.serve 将启动一个 Web 服务器以在浏览器中显示可视化效果——如果您已经在 J​​upyter Notebook 中,那么所有这些都不是必需的。因此,当您调用displacy.render 时,它会检测您的 Jupyter 环境,并相应地包装可视化。您也可以设置jupyter=True 来强制执行此行为。

    【讨论】:

    • 太棒了,现在可以看到。如果没有 jupyter=True 我可以看到输出小部件以 html 格式显示 SVG 标签。
    • 我正在浏览文档spacy.io/usage/visualizers#ent,然后在文档中进一步了解spacy.io/usage/visualizers#jupyter。我们在这里很好。
    • 附带问题 - 我在 displacy.render /opt/conda/lib/python3.6/runpy.py:193 上看到一条警告消息:DeprecationWarning:不推荐使用 Doc.merge 的位置参数。而是使用关键字参数,例如 tag=、lemma= 或 ent_type=。
    • 谢谢——顺便说一句,我是 spaCy 的维护者之一,所以我刚刚在 master 上修复了这个问题。看起来 displaCy 仍在使用旧的、现已弃用的方式调用 Doc.merge
    • 设置 displacy.render(doc, jupyter=True) 对我来说效果很好!
    【解决方案2】:

    试试

    from spacy import displacy
    displacy.render(doc, style="dep", jupyter=True, options={'distance': 140})
    

    displacy.render(doc, style="ent", jupyter=True, options={'distance': 140})
    

    【讨论】: