2011-11-14 15 views
3

私は、Penn Treebank構造を扱うPythonデータ構造を探しています。これは、ツリーバンクがどのように見えるかのサンプルです:基本的にTreebankのPythonデータ構造

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

、私はのようなものを求めることができ、データ構造たい「対象NPの子供たちは何を?」 「どのような種類のフレーズが代名詞を支配していますか?」、好ましくはPythonで書かれています。誰かが手掛かりを持っていますか?

答えて

2

NLTK modulesはPythonでペンツリーバンクおよびその他のNLP関連のものを実装するための良いスタートかもしれません。

+0

ありがとうPraveen。以前は実際にNLTKを扱っていましたが、ここで本当に役立つものは見つけられません。私自身の構造を書く必要があると思っていますが、それは実際にはそれほど重要ではありません。私はコーパスを正しく解析する方法、つまりノードの子どもを識別する方法に苦しんでいます。 – Joko

0

NLTKを使用してツリーバンクを読み取ることをお勧めします(たとえばthis blog postを参照)。しかし、このような一般的なクエリはサポートされていないと思います。

"対象NPの子供たちは何ですか?"

これはdictなり、非終端または子ノードのいずれかのsetschildren、マッピング非終端記号を言います。

「どのような種類のフレーズが代名詞を支配していますか?」

これは別のdictだろうが、非終端のsetsparents、マッピング非終端記号を言います。

ツリーノードのリレーショナルデータベースを構築することができます。厳密なスキーマは、どのような種類の質問をしたいかによって異なりますが、Python sqlite3モジュールを必ずチェックしてください。

また、あなたはXMLとuse XPath to query itにツリーバンクを再コーディングすることができます。 LXMLは、Pythonのための最高のXML/XPathライブラリ、IMHOです。