如何使用corenlp使用python提取语法特征?

如何使用corenlp使用python提取语法特征?,python,nlp,stanford-nlp,Python,Nlp,Stanford Nlp,我想从一个句子中提取句法信息。我试过的是 corenlp_dir = "/home/corenlp-python/stanford-corenlp-full-2013-11-12/" parser = corenlp.StanfordCoreNLP(corenlp_path=corenlp_dir) result_json = json.loads(parser.parse("I am Alice.")) #pprint.pprint(result_json) for sentence in

我想从一个句子中提取句法信息。我试过的是

corenlp_dir = "/home/corenlp-python/stanford-corenlp-full-2013-11-12/"
parser = corenlp.StanfordCoreNLP(corenlp_path=corenlp_dir)

result_json = json.loads(parser.parse("I am Alice."))
#pprint.pprint(result_json)
for sentence in result_json["sentences"]:
    pprint.pprint(sentence["parsetree"]) 
    print type(sentence["parsetree"])
我只有

--># u'(ROOT (S (NP (PRP I)) (VP (VBP am) (NP (NNP Alice))) (. .)))'
<type 'unicode'>
-->#u'(根(S(NP(PRP I))(VP(VBP-am)(NP(NNP-Alice)))(…)'
结果是一个字符串,而不是parsertree。 然而,我真正想要的是一个可以用来进行文本分类的语法特征。如何从上述结果中提取特定的句法特征?
我不知道怎么做。有谁能帮助我或给我一些建议吗?

您最好先了解结果的格式,如果需要,编写自己的代码来演示/绘制结果

以你的结果为例, 一个最小的单位可以是(PRP I),这意味着“I”在这个句子中扮演“代词”的角色,如果你看一下当前的括号,(NP(PRP I))意味着这个代词是一个名词短语(NP)。等
这就是如何从下到上得到解析树,最后到达“根”。

谢谢你的回答。我是NLP的新手。我已经理解了“parsetree”的含义。但是我真的不知道如何在句法上标记这个词,例如“I”,它与POS不一样。你能告诉我一些想法吗?“I”的POS标记是“PRP”,在最近的括号内。这个过程称为词性标注。然后你会发现PRP是一个名词短语,NP可以是一个单词,但通常是一个短语。现在你得到了一些更大的单位,把句子分成几个部分叫做组块。从单元中你构造了一个树状结构,整个过程就是分析这个句子的语法。谢谢你的回答,但是ROOT的功能是什么?例如,在产生式规则中,例如S->NP+PRP,我们不需要根,对吗?根是句子开始的地方,我想你可以这样忽略它。当你写S->NP+PRP时,我真的很困惑,PRP是NP的组成部分,它使“+”无意义,如果只有一个NP加上一个PRP,一个句子S怎么可能是完整的?谢谢你的回答。现在我想提取句子“我是爱丽丝”的句法特征,你的意思是我只能得到S->NP+VP+NP?这个解析树中的PRP,VBP,NNP是胡说八道吗?