树库的Python数据结构?

树库的Python数据结构?,python,nltk,corpus,nlp,Python,Nltk,Corpus,Nlp,我正在寻找处理Penn树库结构的Python数据结构。这是树库外观的示例: ( (S (NP-SBJ (PRP He) ) (VP (VBD shouted) ) (. .) )) 本质上,我想要一个数据结构,我可以问一些问题,比如“什么是主语NP的子项?”或者“什么类型的短语支配代词?”最好是在Python中。有人有线索吗 可能是在Python中实现Penn Treebank和其他NLP相关内容的良好开端 我仍然建议使用NLTK阅读树库(参见示例),但我可以想象它不支

我正在寻找处理Penn树库结构的Python数据结构。这是树库外观的示例:

( (S
    (NP-SBJ (PRP He) )
    (VP (VBD shouted) )
    (. .) ))

本质上,我想要一个数据结构,我可以问一些问题,比如“什么是主语NP的子项?”或者“什么类型的短语支配代词?”最好是在Python中。有人有线索吗

可能是在Python中实现Penn Treebank和其他NLP相关内容的良好开端

我仍然建议使用NLTK阅读树库(参见示例),但我可以想象它不支持这种一般查询

“受试者NP的子女是什么?”

这将是一个
dict
,比如
子节点
,将非终端映射到非终端或子节点的
集合

“什么类型的短语支配代词?”

这将是另一个
dict
,比如说
parents
,将非终端映射到非终端的
集合

您可能需要构建树节点的关系数据库。确切的模式将取决于您想要询问的查询类型,但请务必查看Python模块


或者,您可以用XML和XML重新编码树库。是Python最好的XML/XPath库,IMHO。

谢谢Praveen。我以前确实处理过NLTK,但我似乎找不到任何真正有帮助的东西。我想我必须写我自己的结构,实际上这本身没什么大不了的,我只是在努力正确解析语料库,也就是识别一个节点的子节点等等。