的documentation提供了pprint()
方法,以展树成一行。
解析这句话:
string = "My name is Ross and I am cool. What's going on world? I'm looking for friends."
,然后调用pprint()
产生如下:
u"(NP+SBAR+S\n (S\n (NP (PRP$ my) (NN name))\n (VP\n (VBZ is)\n (NP (NNP Ross) (CC and) (PRP I) (JJ am) (NN cool.))\n (SBAR\n (WHNP (WP What))\n (S+VP (VBZ 's) (VBG going) (NP (IN on) (NN world)))))\n (. ?))\n (S\n (NP (PRP I))\n (VP (VBP 'm) (VBG looking) (PP (IN for) (NP (NNS friends))))\n (. .)))"
从这一点来说,如果你想删除的标签和换行,你可以使用下面的split
和join
(see here):
splitted = tree.pprint().split()
flat_tree = ' '.join(splitted)
执行该得到这对我来说:
u"(NP+SBAR+S (S (NP (PRP$ my) (NN name)) (VP (VBZ is) (NP (NNP Ross) (CC and) (PRP I) (JJ am) (NN cool.)) (SBAR (WHNP (WP What)) (S+VP (VBZ 's) (VBG going) (NP (IN on) (NN world))))) (. ?)) (S (NP (PRP I)) (VP (VBP 'm) (VBG looking) (PP (IN for) (NP (NNS friends)))) (. .)))"
为什么你想这样做?这只是使它很难处理。树木很容易,并提供很多结构,你可以从文本中重新发明。 – 2015-03-15 09:29:57