gpt4 book ai didi

python - 使用 tkinter 在 jupyter 笔记本内部进行 nltk 绘制

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:20 26 4
gpt4 key购买 nike

我正在尝试在 jupyter-notebook 内部绘制 nltk 的图形(内联)。但出现错误:

TclError: no display name and no $DISPLAY environment variable

我尝试将 $DISPLAY 设置为不同的值:

$env DISPLAY=0.0
# or
$env DISPLAY=inline
# or
$env DISPLAY=

但出现错误(或类似错误):

TclError: couldn't connect to display "0.0"

这是我的代码 https://github.com/hyzhak/nltk-experiments/blob/master/main.ipynb最后一个单元格。

环境:官方anaconda3 docker -- continuumio/anaconda3:4.4.0 https://github.com/ContinuumIO/docker-images 。里面有nltk==3.2.3

Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58) 
Type "copyright", "credits" or "license" for more information.

IPython 5.3.0 -- An enhanced Interactive Python.

如何解决此错误以及 jupyter Notebook 内的内联 nltk 图表?

更新 1

http://www.nltk.org/_modules/nltk/draw/tree.html#draw_trees根据nltk树绘制的来源,它使用tkinter

更新2

我在官方 nltk github 存储库 https://github.com/nltk/nltk/issues/1765 中问了同样的问题

更新3

我认为错误的原因可能是 headless 主机(docker)。我已经安装了 xvfb 但似乎它已经足够注意了。

RUN apt-get install -y xvfb

解决方案

我认为xvfb是默认启动的,但它应该显式运行。因此,在启动它后,我可以制作 nltk 树形图的屏幕截图。

最佳答案

import os
import nltk
from IPython.display import Image

chunkGram = r"""Chunk: {<RB.?>*<VB.?>*<NNP>+<NN>?}"""
chunkParser = nltk.RegexpParser(chunkGram)

tagged = [('Tonight', 'NN'), ('we', 'PRP'), ('are', 'VBP'), ('comforted', 'VBN'), ('by', 'IN'), ('the', 'DT'), ('hope', 'NN'), ('of', 'IN'), ('a', 'DT'), ('glad', 'JJ'), ('reunion', 'NN'), ('with', 'IN'), ('the', 'DT'), ('husband', 'NN'), ('who', 'WP'), ('was', 'VBD'), ('taken', 'VBN'), ('so', 'RB'), ('long', 'RB'), ('ago', 'RB'), (',', ','), ('and', 'CC'), ('we', 'PRP'), ('are', 'VBP'), ('grateful', 'JJ'), ('for', 'IN'), ('the', 'DT'), ('good', 'JJ'), ('life', 'NN'), ('of', 'IN'), ('Coretta', 'NNP'), ('Scott', 'NNP'), ('King', 'NNP'), ('.', '.')]
chunked = chunkParser.parse(tagged)
nltk.draw.tree.TreeView(chunked)._cframe.print_to_file('output.ps')
os.system('convert output.ps output.png')

Image(filename='output.png')

[输出]:

enter image description here

关于python - 使用 tkinter 在 jupyter 笔记本内部进行 nltk 绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44880337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com