可视化文本结构树

通过现有的一些自然语言处理的工具,例如spacy,coernlp可以得到句子的结构,为了便于观看,需要可视化句法结构树

(1)利用nltk中的Tree类来可视化解析结果

tree_str = '(S (NP this tree) (VP (V is) (AdjP pretty)))'
# 直接显示句法结构
Tree.fromstring(tree_str).draw()

在这里插入图片描述

(2)利用CanvasFrame和print_to_file保存句法结构

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()

利用在线的ps工具查看,文件 tree.ps

在这里插入图片描述
(3)利用nltk.draw.tree.TreeView保存篇章结构

from nltk import Tree
from nltk.draw.tree import TreeView

# 保存篇章结构
tree_str = "( NS-elaboration ( NS-elaboration ( SN-circumstance ( EDU 1 )  ( EDU 2 )  )  ( NS-elaboration ( EDU 3 )  ( NS-purpose ( EDU 4 )  ( NN-list ( EDU 5 )  ( EDU 6 )  )  )  )  )  ( NS-elaboration ( EDU 7 )  ( NN-list ( EDU 8 )  ( EDU 9 )  )  )  ) "
t = Tree.fromstring(tree_str)
TreeView(t)._cframe.print_to_file('output.ps')

利用在线的ps工具查看文件 output.ps

在这里插入图片描述

来自问题
https://stackoverflow.com/questions/23429117/saving-nltk-drawn-parse-tree-to-image-file

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺棒棒冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值