gpt4 book ai didi

ipython - 如何制作 iPython/Jupyter 中内联的 NLTK draw() 树

转载 作者:行者123 更新时间:2023-12-02 12:13:11 26 4
gpt4 key购买 nike

对于 iPython/Jupyter 中的 Matplotlib 绘图,您可以使笔记本绘图内联

%matplotlib inline

如何对树的 NLTK draw() 做同样的事情?这是文档 http://www.nltk.org/api/nltk.draw.html

最佳答案

基于this答案:

import os
from IPython.display import Image, display
from nltk.draw import TreeWidget
from nltk.draw.util import CanvasFrame

def jupyter_draw_nltk_tree(tree):
cf = CanvasFrame()
tc = TreeWidget(cf.canvas(), tree)
tc['node_font'] = 'arial 13 bold'
tc['leaf_font'] = 'arial 14'
tc['node_color'] = '#005990'
tc['leaf_color'] = '#3F8F57'
tc['line_color'] = '#175252'
cf.add_widget(tc, 10, 10)
cf.print_to_file('tmp_tree_output.ps')
cf.destroy()
os.system('convert tmp_tree_output.ps tmp_tree_output.png')
display(Image(filename='tmp_tree_output.png'))
os.system('rm tmp_tree_output.ps tmp_tree_output.png')

有点慢,但可以完成工作。如果您是远程执行此操作,请不要忘记使用 -X 键运行 ssh session (例如 ssh -X user@server.com),以便 Tk 可以初始化自身(没有显示名称,也没有 $DISPLAY 环境变量 - 一种错误)

UPD:似乎最新版本的 jupyter 和 nltk 可以很好地协同工作,因此您只需执行 IPython.core.display.display(tree) 即可获得漂亮的树渲染嵌入到输出中。

关于ipython - 如何制作 iPython/Jupyter 中内联的 NLTK draw() 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779707/

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