美文网首页
可视化文本结构树

可视化文本结构树

作者: ltochange | 来源:发表于2021-07-15 19:52 被阅读0次

    通过现有的一些自然语言处理的工具,例如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
    
    tree_str = '(S (NP this tree) (VP (V is) (AdjP pretty)))'
    # 保存句法结构
    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

    相关文章

      网友评论

          本文标题:可视化文本结构树

          本文链接:https://www.haomeiwen.com/subject/enympltx.html