对于 iPython/Jupyter 中的 Matplotlib 绘图,您可以使笔记本绘图内联
%matplotlib inline
如何对树的 NLTK draw() 做同样的事情?这是文档http://www.nltk.org/api/nltk.draw.html http://www.nltk.org/api/nltk.draw.html
基于this https://stackoverflow.com/a/24748479/232371 answer:
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')
有点慢,但可以完成工作。如果您是远程执行此操作,请不要忘记使用以下命令运行 ssh 会话-X
键(如ssh -X [email protected] /cdn-cgi/l/email-protection
)以便 Tk 可以初始化自身(no display name and no $DISPLAY environment variable
- 某种错误)
UPD:似乎最新版本的 jupyter 和 nltk 可以很好地协同工作,所以你可以这样做IPython.core.display.display(tree)
将漂亮的树渲染嵌入到输出中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)