我正在寻找处理Penn Treebank结构的Python数据结构。这是一个什么样的树库看起来像一个示例:Treebank的Python数据结构?
((S
(NP-SBJ (PRP He))
(VP (VBD shouted))
(. .)))
从本质上讲,我想一个数据结构,我可以问喜欢的东西“是什么主题NP的孩子吗?”或者“什么类型的短语支配代名词?”,最好在Python中。有人有线索吗?
我正在寻找处理Penn Treebank结构的Python数据结构。这是一个什么样的树库看起来像一个示例:Treebank的Python数据结构?
((S
(NP-SBJ (PRP He))
(VP (VBD shouted))
(. .)))
从本质上讲,我想一个数据结构,我可以问喜欢的东西“是什么主题NP的孩子吗?”或者“什么类型的短语支配代名词?”,最好在Python中。有人有线索吗?
NLTK modules可能是一个很好的开始在Python中实现Penn Treebank和其他NLP相关的东西。
我仍然建议使用NLTK来读取树库(请参阅,例如this blog post),但我可以想象它不支持这种常规查询。 “
”主题NP的孩子是什么?
这将是一个dict
,说children
,映射非终结符要么终结符号或子节点的sets
。 “
”什么类型的短语支配代名词?“
这将是另一个dict
,说parents
,映射到非终结符非终结符的sets
。
您可能想要构建树节点的关系数据库。确切的模式将取决于你想问什么样的查询,但一定要查看Python sqlite3
模块。
或者,您可以使用XML和use XPath to query it重新编码树库。 LXML是适用于Python的最佳XML/XPath库,恕我直言。
谢谢Praveen。我之前已经处理过NLTK,但我似乎无法找到任何能够帮助我的东西。想想我将不得不编写我自己的结构,这实际上本身并没有什么大不了的,我只是在努力解决正确的语料库,即识别节点的孩子等等。 – Joko