.. Copyright (C) 2001-2023 NLTK Project .. For license information, see LICENSE.TXT ========================================================= Unit tests for nltk.tree.prettyprinter.TreePrettyPrinter ========================================================= >>> from nltk.tree import Tree, TreePrettyPrinter Tree nr 2170 from nltk.corpus.treebank: >>> tree = Tree.fromstring( ... '(S (NP-SBJ (PRP I)) (VP (VBP feel) (ADJP-PRD (RB pretty) ' ... '(JJ good)) (PP-CLR (IN about) (NP (PRP it)))) (. .))') >>> tpp = TreePrettyPrinter(tree) >>> print(tpp.text()) S __________________________|_____________________ | VP | | ____________________|___________ | | | | PP-CLR | | | | _____|_____ | NP-SBJ | ADJP-PRD | NP | | | _______|______ | | | PRP VBP RB JJ IN PRP . | | | | | | | I feel pretty good about it . >>> print(tpp.text(unicodelines=True)) S ┌──────────────────────────┼─────────────────────┐ │ VP │ │ ┌─────────────┬──────┴───────────┐ │ │ │ │ PP-CLR │ │ │ │ ┌─────┴─────┐ │ NP-SBJ │ ADJP-PRD │ NP │ │ │ ┌───────┴──────┐ │ │ │ PRP VBP RB JJ IN PRP . │ │ │ │ │ │ │ I feel pretty good about it . A tree with long labels: >>> tree = Tree.fromstring( ... '(sentence (plural-noun-phrase (plural-noun Superconductors)) ' ... '(verb-phrase (plural-verb conduct) ' ... '(noun-phrase (singular-noun electricity))))') >>> tpp = TreePrettyPrinter(tree) >>> print(tpp.text(abbreviate=8, nodedist=2)) sentence __________|__________ | verb-phr. | __________|__________ plural-n. | noun-phr. | | | plural-n. plural-v. singular. | | | Supercon. conduct electric. >>> print(tpp.text(maxwidth=8, nodedist=2)) sentence _________|________ | verb- | phrase | ________|_________ plural- | noun- noun- | phrase phrase | | | | | plural- plural- singular- noun verb noun | | | Supercon conduct electric ductors ity A discontinuous tree: >>> tree = Tree.fromstring( ... '(top (punct 8) (smain (noun 0) (verb 1) (inf (verb 5) (inf (verb 6) ' ... '(conj (inf (pp (prep 2) (np (det 3) (noun 4))) (verb 7)) (inf (verb 9)) ' ... '(vg 10) (inf (verb 11)))))) (punct 12))', read_leaf=int) >>> sentence = ('Ze had met haar moeder kunnen gaan winkelen ,' ... ' zwemmen of terrassen .'.split()) >>> tpp = TreePrettyPrinter(tree, sentence) >>> print(tpp.text()) top _____|______________________________________________ smain | | _______________________________|_____ | | | | inf | | | | _____|____ | | | | | inf | | | | | ____|_____ | | | | | | conj | | | | _____ | ___ | _________|______ | __________________ | | | inf | | | | | | | | | _________|_____ | ___ | _________ | | | | | | | pp | | | | | | | | | | ____|____ | | | | | | | | | | | np | | | | inf | inf | | | | ____|____ | | | | | | | | noun verb prep det noun verb verb verb punct verb vg verb punct | | | | | | | | | | | | | Ze had met haar moeder kunnen gaan winkelen , zwemmen of terrassen . >>> print(tpp.text(unicodelines=True)) top ┌─────┴──────────────────┬───────────────────────────┐ smain │ │ ┌────┬──────────────────────────┴─────┐ │ │ │ │ inf │ │ │ │ ┌─────┴────┐ │ │ │ │ │ inf │ │ │ │ │ ┌────┴─────┐ │ │ │ │ │ │ conj │ │ │ │ ┌───── │ ─── │ ─────────┴────── │ ─────┬─────┬──────┐ │ │ │ inf │ │ │ │ │ │ │ │ │ ┌─────────┴───── │ ─── │ ─────────┐ │ │ │ │ │ │ │ pp │ │ │ │ │ │ │ │ │ │ ┌────┴────┐ │ │ │ │ │ │ │ │ │ │ │ np │ │ │ │ inf │ inf │ │ │ │ ┌────┴────┐ │ │ │ │ │ │ │ │ noun verb prep det noun verb verb verb punct verb vg verb punct │ │ │ │ │ │ │ │ │ │ │ │ │ Ze had met haar moeder kunnen gaan winkelen , zwemmen of terrassen . Importing TreePrettyPrinter --------------------------- First of all, a simple tree will be constructed:: >>> from nltk.tree import Tree >>> tree = Tree.fromstring('(S (NP Mary) (VP walks))') We'll use this sample tree to show that the method of importing `TreePrettyPrinter` work correctly: - Recommended:: >>> from nltk.tree import TreePrettyPrinter >>> print(TreePrettyPrinter(tree).text()) S ____|____ NP VP | | Mary walks - Alternative but valid options:: >>> from nltk import TreePrettyPrinter >>> print(TreePrettyPrinter(tree).text()) S ____|____ NP VP | | Mary walks >>> from nltk.tree.prettyprinter import TreePrettyPrinter >>> print(TreePrettyPrinter(tree).text()) S ____|____ NP VP | | Mary walks - Deprecated, do not use:: >>> from nltk.treeprettyprinter import TreePrettyPrinter >>> print(TreePrettyPrinter(tree).text()) S ____|____ NP VP | | Mary walks This method will throw a DeprecationWarning:: Import `TreePrettyPrinter` using `from nltk.tree import TreePrettyPrinter` instead.