如何阅读基于选区的解析树
How to read constituency based parse tree
我有一个由斯坦福 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 中)可以正确阅读?
谢谢
NLTK
有一个 class 用于读取解析树:nltk.tree.Tree
。相关方法称为fromstring
。然后你可以迭代它的子树、叶子等...
顺便说一句:您可能想要删除 sent28:
的位,因为它会混淆解析器(它也不是句子的一部分)。您得到的不是完整的解析树,而是一个句子片段。
您可以像这样使用斯坦福解析器:
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()***
我有一个由斯坦福 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 中)可以正确阅读? 谢谢
NLTK
有一个 class 用于读取解析树:nltk.tree.Tree
。相关方法称为fromstring
。然后你可以迭代它的子树、叶子等...
顺便说一句:您可能想要删除 sent28:
的位,因为它会混淆解析器(它也不是句子的一部分)。您得到的不是完整的解析树,而是一个句子片段。
您可以像这样使用斯坦福解析器:
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()***