簡體   English   中英

不使用 nltk.tree 打印句子樹

[英]Print sentence tree without using nltk.tree

我有一個像這樣的句子樹:

[{'ROOT': ['S']}, {'S': ['VPS']}, {'VPS': ['N', 'VP']}, {'N': ['#']}, {'VP': ['PP', 'MV']}, {'PP': ['PREP_EZ', 'N']}, {'PREP_EZ': ['#']}, {'N': ['#']}, {'MV': ['N', 'V']}, {'N': ['#']}, {'V': ['#']}]

如何在不使用 nltk.tree 的情況下打印其對應的樹? (由於某些原因,我不能使用 nltk 庫)

我期待這樣的事情:所需的 output

好的,讓我們看看這是否可以幫助您:

class Node:

    def __init__(self, value, children=[]):
        self.value = value
        self.children = children

    def __str__(self, level=0):
        str = "    " * level + "  |--" + self.value + "\n"
        for child in self.children:
            str += child.__str__(level + 1)
        return str


tree = Node('ROOT', children=[
    Node('S', children=[
        Node('VPS', children=[
            Node('N'),
            Node('VP', children=[
                Node('PP', children=[
                    Node('PREP_EZ')
                ]),
                Node('MV', children=[
                    Node('N'),
                    Node('V')
                ])
            ])
        ])
    ])
])
    
>>> print(tree)
  |--'ROOT'
      |--'S'
          |--'VPS'
              |--'N'
              |--'VP'
                  |--'PP'
                      |--'PREP_EZ'
                  |--'MV'
                      |--'N'
                      |--'V'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM