mik*_*305 7 ipython draw nltk jupyter
对于iPython/Jupyter中的Matplotlib图,您可以使笔记本绘图内联
%matplotlib inline
Run Code Online (Sandbox Code Playgroud)
如何为树木的NLTK draw()做同样的事情?这是文档http://www.nltk.org/api/nltk.draw.html
根据这个答案:
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')
Run Code Online (Sandbox Code Playgroud)
有点慢,但做的工作.如果您正在远程执行此操作,请不要忘记使用-X密钥(例如ssh -X user@server.com)运行ssh会话,以便Tk可以自行初始化(no display name and no $DISPLAY environment variable-kind of error)
UPD:似乎jupyter和nltk的最新版本很好地协同工作,所以你可以做IPython.core.display.display(tree)一个漂亮的树渲染嵌入到输出中.
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |