Change language

NLP | Making a small tree

| |

We flattened the Deep Tree, keeping only the lowest level subtrees. But here we can save the highest level subtrees.

Code # 1: Let’s shallow_tree()

from nltk.tree import Tree

 

def shallow_tree (tree):

children = []

 

for t in tree:

if t.height () & lt;  3 :

children.extend (t.pos ())

else :

children.append ( Tree (t.label (), t.pos ()))

 

return Tree (tree.label (), children)

Code # 2: Rating

from transforms import shallow_tree

from nltk.corpus import treebank

  

print ( "Deep Tree:" , treebank.parsed_sents () [ 0 ])

 

print ( " Shallow Tree: " , shallow_tree (treebank.parsed_sents () [ 0 ] ))

Output:

 Deep Tree: (S (NP-SBJ (NP (NNP Pierre) (NNP Vinken)) (,,) (ADJP (NP (CD 61) (NNS years)) (JJ old)) (, ,)) (VP (MD will) (VP (VB join) (NP (DT the) (NN board)) (PP-CLR (IN as) (NP (DT a) (JJ nonexecutive) (NN director))) (NP-TMP (NNP Nov.) (CD 29)))) (. .)) Shallow Tree: Tree (’S’, [Tree (’ NP-SBJ’, [(’Pierre’,’ NNP’), (’Vinken’,’ NNP’), (’,’, ’,’ ), (’61’,’ CD’), (’years’,’ NNS’), (’old’,’ JJ’), (’,’, ’,’)]), Tree (’VP’, [(’will’,’ MD’), (’join’,’ VB’), (’the’,’ DT’), (’board’,’ NN’), (’as’,’ IN’) , (’a’,’ DT’), (’nonexecutive’,’ JJ’), (’director’,’ NN’), (’Nov.’,’ NNP’), (’29’,’ CD’ )]), (’.’,’ .’)]) 

How does it work?

  • The shallow_tree () function creates new children trees by iterating over each of the top-level subtrees.
  • The subtree is replaced with a list of its child tags if the height () of the subtree is less than 3.
  • If the children of the tree are tagged part-of-speech leaves, all the rest of the subtrees are replaced by the new tree.
  • This removes all nested subtrees while keeping the top-level subtrees.

Code # 3: height

print ( "height of tree:"

treebank.parsed_sents () [ 0 ]. height ())

 

print ( "height of shallow tree: "

  shallow_tree (treebank. parsed_sents () [ 0 ]). height ())

Output:

 height of tree: 7 height of shallow tree: 3 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically