依存構造解析済みコーパス
入門自然言語処理、12章を読み進め中。p.475にて。文字コード関係のことで少し詰まったこと。
>>> print '\n\n'.join( '%s' % tree for tree in knbc.parsed_sents()[0:2] )
で出力するものが文字化けしてしまう。nltk.tree.Treeクラスとやらは%sに文字列として渡されるとき、shift-jis以外のエンコードで8ビット文字列となっていると見た。(windows環境なのでコマンドプロンプトではshift-jisで日本語を出力しないといけない)
すこし調べるとTreeクラスのインスタンス→文字列と変換するとエンコードが'utf-8'になっていた。以下のようにunicode文字列に逐一デコードするように変更
print '\n\n'.join(str(tree).decode('utf-8') for tree in knbc.parsed_sents()[0:5])
よし、文字化け修正完了。素人考えでutf-8の方がやっぱりpythonと相性が良いのかな、と思う。mac欲しい。shift-jisって名前はなんか垢抜けていないイメージ。