5

我有一个由斯坦福大学的CoreNLP预处理的句子语料库系统预处理的句子语料库。它提供的其中一件事是句子的解析树(基于选区)。虽然我可以在绘制解析树(如树)时理解它,但我不确定如何以这种格式阅读它:

例如:

          (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 中)?谢谢。

4

2 回答 2

11

NLTK有一个用于读取解析树的类:nltk.tree.Tree. 调用相关方法fromstring。然后,您可以迭代它的子树、叶子等...

顺便说一句:您可能希望删除那些sent28:混淆解析器的位(它也不是句子的一部分)。您没有得到完整的解析树,而只是一个句子片段。

于 2015-02-23T13:14:37.277 回答
-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()***
于 2017-04-21T13:40:04.363 回答