nlp - Using Stanford CoreNLP Python Parser for specific output -
i'm using scp parse cfg tree english sentences.
from corenlp import * corenlp = stanfordcorenlp() corenlp.parse("every cat loves dog")
my expected output tree this:
(s (np (det every) (nn cat)) (vp (vt loves) (np (det a) (nn dog))))
but got is:
(root (s (np (dt every) (nn cat)) (vp (vbz loves) (np (dt a) (nn dog)))))
how change pos tag expected , remove root node?
thanks
you can use nltk.tree module nltk.
from nltk.tree import * def traverse(t): try: # replace labels if t.label() == "dt": t.set_label("det") elif t.label() == "vbz": t.set_label("vt") except attributeerror: return child in t: traverse(child) output_tree= "(root (s (np (dt every) (nn cat)) (vp (vbz loves) (np (dt a) (nn dog)))))" tree = parentedtree.fromstring(output_tree) # remove root element if tree.label() == "root": tree = tree[0] traverse(tree) print tree # (s (np (det every) (nn cat)) (vp (vt loves) (np (det a) (nn dog))))
Comments
Post a Comment