ブラケット表記された句構造木をtikz-qtree形式に変換するツールを作った

img

 

ブラケット表記された句構造木を tikz-qtree 形式 (正確には Qtree 形式) に変換するツールを作りました。ネーミングが微妙ですが...。出力された LaTeX ファイルを pdflatex などでコンパイルすると上図のような構文木が得られます。

 

https://github.com/tetsuok/bracket-to-tikz-qtree

 

使い方は

$ ./bracket_to_tikz_qtree.py [options] FILE

または

$ ./bracket_to_tikz_qtree.py [options] [FILE] -

入力となる FILE はブラケット表記された構文木を含むテキストファイルです。なお、出力された LaTeX ファイルをコンパイルするには tikz-qtree をインストールしておく必要があります。

 

また、`--enable-pdf` オプションを指定すると、入力ファイルに複数の文の解析結果が含まれている時に、各構文木ごとに pdf ファイルを直接出力できるようにすることができます。注意点として、python から subprocess モジュールを使って `pdflatex` を実行するので、pdflatex がインストールされていないと動きません。

$ ./bracket_to_tikz_qtree.py --enable-pdf FILE

 

品詞のタグや句構造木の詳細については Penn Treebank のマニュアルをご参照下さい。

なぜこれを作ったか?

最近よく句構造木を眺める機会が増えてきました。Penn Treebank や Stanford parser, Berkeley parser の解析結果はブラケット表記であり、個人的には上図の木構造の方が分かりやすく、またスライド作成や論文に載せる時に便利だと思い作りました。別に括弧の嵐が嫌いではないのですが、長い文の解析結果を見るときはさすがにシンドイので。