我有一套由斯坦福大学的CoreNLP系统预处理过的句子。它提供的一件事是句子的Parse Tree(基于选区)。虽然我可以在绘制时理解解析树(如树),但我不确定如何以这种格式阅读它:
E.g:
(ROOT
(FRAG
(NP (NN sent28))
(: :)
(S
(NP (NNP Rome))
(VP (VBZ is)
(PP (IN in)
(NP
(NP (NNP Lazio) (NN province))
(CC and)
(NP
(NP (NNP Naples))
(PP (IN in)
(NP (NNP Campania))))))))
(. .)))
原句是:
sent28: Rome is in Lazio province and Naples in Campania .
我应该如何阅读这棵树,或者是否有正确的代码(在python中)? 感谢。
答案 0 :(得分:10)
NLTK
有一个用于阅读解析树的类:nltk.tree.Tree
。相关方法称为fromstring
。然后你可以迭代它的子树,树叶等......
顺便说一句:您可能希望删除sent28:
位,因为它会混淆解析器(它也不是句子的一部分)。你没有得到一个完整的解析树,只是一个句子碎片。
答案 1 :(得分:-3)
你可以使用stanford解析器,如:
sentences = parser.raw_parse_sents(["Hello, My name is Melroy.", "What is your name?"]) #probably raw_parse(just a string) or parse_sents(list but has been splited)
for line in sentences:
for sentence in line:
***sentence.draw()***