Сохранение nltk рисованного дерева разбора в файл изображения

введите описание изображения здесь

Есть ли способ сохранить обратное изображение из файла tree.draw () в файл изображения программно? Я попытался просмотреть документацию, но ничего не нашел.

3 Solutions collect form web for “Сохранение nltk рисованного дерева разбора в файл изображения”

У меня была такая же потребность, и я nltk.draw.tree исходный код 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 

Я думаю, что это быстрое и грязное решение; он может быть неэффективным, поскольку он отображает холст и уничтожает его позже (возможно, есть возможность отключить отображение, которого я не смог найти). Пожалуйста, дайте мне знать, если есть лучший способ.

Использование объекта 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]:

введите описание изображения здесь

Чтобы добавить ответ Minjoon, вы можете изменить шрифты и цвета дерева, чтобы больше походить на .draw() следующим образом:

 tc['node_font'] = 'arial 14 bold' tc['leaf_font'] = 'arial 14' tc['node_color'] = '#005990' tc['leaf_color'] = '#3F8F57' tc['line_color'] = '#175252' 

До (слева) и после (справа):

до после

 
Interesting Posts for Van-Lav

Сериализация вывода на JSON – ValueError: обнаружено круговое задание

Определите, является ли список каталогом или файлом в Python через FTP

Индексы фиксированных размерных подматриц матрицы numpy

Вставка фигуры matplotlib внутри панели WxPython

Получение подмножеств набора в Python

Python Chord Diagram (Plotly) – Интерактивные подсказки

Создание Pandas Dataframe между двумя массивами Numpy, затем нарисуйте график разброса

Только производство: иногда получается 403 проверка CSRF

Использование numpy.take для более быстрой причудливой индексации

Таймаут Pull с помощью google-api-python-client

Изменение поведения модели Django с помощью __getattr__

Как построить диаграммы ошибок в полярных координатах в python?

Запрос с функцией в модели Flask-SQLAlchemy дает объекту BaseQuery не вызываемую ошибку

Асинхронно перенаправлять stdout / stdin из встроенного python в c ++?

Curl как данные POST multipart / form-data и как читать данные multipart / form-data в запросе колбы

Python - лучший язык программирования в мире.