13
A
回答
9
我有完全一樣的需求,並尋找到的nltk.draw.tree
源代碼,我發現了一個解決方案:
from nltk import Tree
from nltk.draw.util import CanvasFrame
from nltk.draw import TreeWidget
cf = CanvasFrame()
t = Tree.fromstring('(S (NP this tree) (VP (V is) (AdjP pretty)))')
tc = TreeWidget(cf.canvas(),t)
cf.add_widget(tc,10,10) # (10,10) offsets
cf.print_to_file('tree.ps')
cf.destroy()
輸出文件是一個後記,你可以將其轉換爲使用ImageMagick的圖像文件終端:
$ convert tree.ps tree.png
我認爲這是一個快速和骯髒的解決方案;它可能效率低下,因爲它顯示畫布並在以後銷燬(可能有禁用顯示的選項,這是我無法找到的)。請讓我知道是否有更好的方法。
3
爲了增加Minjoon的回答,您可以更改樹的字體和顏色看起來更像NLTK .draw()
版本如下:
tc['node_font'] = 'arial 14 bold'
tc['leaf_font'] = 'arial 14'
tc['node_color'] = '#005990'
tc['leaf_color'] = '#3F8F57'
tc['line_color'] = '#175252'
前(左)後(右):
+0
這很有幫助,不僅用於設置樣式以匹配'draw()'版本,還用於顯示通常如何定製樣式。 – alexis
+0
是的,文檔很渺茫,你需要通過源代碼真的很難看出哪些選項可用。實際上,我很驚訝。 –
8
使用nltk.draw.tree.TreeView
對象來自動創建畫布幀:
>>> from nltk.tree import Tree
>>> from nltk.draw.tree import TreeView
>>> t = Tree.fromstring('(S (NP this tree) (VP (V is) (AdjP pretty)))')
>>> TreeView(t)._cframe.print_to_file('output.ps')
然後:
>>> import os
>>> os.system('convert output.ps output.png')
[output.png]:
相關問題
- 1. 將python NLTK解析樹保存到映像文件
- 2. 繪製並保存圖像
- 3. 如何將圖像保存到解析?
- 4. 解析YML文件到樹
- 5. 保存圖像到文件
- 6. 解析NLTK塊串,形成樹
- 7. 如何正確導航NLTK解析樹?
- 8. Phplot繪製圖像並將其保存在文件中
- 9. android圖像保存爲res /可繪製文件夾
- 10. 將grid.arrange()繪圖保存到文件
- 11. 在PictureBox中保存繪製的圖像
- 12. 如何在繪製後保存圖像
- 13. 保存圖像繪製之後
- 14. 我無法保存繪製的圖像
- 15. 得到存儲卡和存儲圖像中繪製文件夾
- 16. 圖像捕捉,保存文件... Android /解析
- 17. 查詢圖像被保存在解析
- 18. 將圖像保存爲解析
- 19. 將繪圖保存到圖像上,然後在繪圖上繪製其他線條並再次保存。
- 20. 無法解析XML文件繪製
- 21. 將解析圖像文件轉換爲base64以保存在zip文件中
- 22. MonoDroid的保存繪製位圖到JPG
- 23. 如何繪製/覆蓋圖像文件到位圖圖像?
- 24. Java將圖像像素保存到數組中並繪製圖像
- 25. 保存圖像保存在解析後端
- 26. 將圖像從位圖保存到jpeg而不保存文件
- 27. 繪製並保存圖形
- 28. Android:將圖像保存到文件夾
- 29. C#:將圖像保存到文件夾
- 30. 讀取/保存圖像到R文件
也許'print_to_file',用於'CanvasFrame's。 – keyser