tagged_words

「入門自然言語処理」素人の読み進めシリーズです。
p.476にて

genpaku_tfd = FreqDist(t[2] for (w, t) in genpaku.tagged_words())

と言う箇所。このままだと品詞タグがちゃんと表示されなかった。あれれ。tagged_words()メソッドで返ってくるlistの形式を調べてみると、

(   u'まずしい',
    u'マズシイ\tまずしい\t形容詞-自立\t形容詞・イ段\t基本形')
(u'王子', u'オウジ\t王子\t名詞-一般')
(u'さま', u'サマ\tさま\t名詞-接尾-人名')
(u'が', u'ガ\tが\t助詞-格助詞-一般')
(u'おり', u'オリ\tおる\t動詞-自立\t五段・ラ行\t連用形')
(u'まし', u'マシ\tます\t助動詞\t特殊・マス\t連用形')
(u'た', u'タ\tた\t助動詞\t特殊・タ\t基本形')

(w,t)のtにあたる部分ではタブ区切りで読み、原形、品詞1、品詞2と入っている。ってことは\tでsplitしてindex2にあたる品詞1を取り出して...

と考えて以下のコードでO.K. 本が書かれた時点とでコーパスの形式が変わってたのかな?まっいっか。
FreqDistはプログラムはじめでimport nltkしているのでnltk.FreqDistで呼び出す形式にしてみました。

genpaku_tfd = nltk.FreqDist(t.split('\t')[2] for (w,t) in genpaku.tagged_words())

genpaku_tfd.tabulate(10)

出力は、

助動詞 動詞-自立 名詞-一般 助詞-格助詞-一般 記号-読点 記号-句点 助詞-接続助詞 助
詞-係助詞 助詞-連体化 名詞-代名詞-一般
 350  335  305  240  132  125  123  117   82   66

ちなみに教科書では沢山のコーパスを読み込んでいますが、逐一読み込みの時間が掛かるので、g0005.chasenというものだけ読み込んでいます。適当に選んだけどこれは何の話だろう。。童話っぽいが。

jeitaディレクトリ内にあった_copyright.htmlより調べると、そのタイトルは、、

なんと「ブタ飼い王子」でした。聞いたことないな。作者はアンデルセン。息抜きに今度読もう。