むちゃむちゃ腹が痛え。ココアがうまい。
もう11月も終わりですよ。早くね?
45. 動詞の格パターンの抽出
今回用いている文章をコーパスと見なし,日本語の述語が取りうる格を調査したい. 動詞を述語,動詞に係っている文節の助詞を格と考え,述語と格をタブ区切り形式で出力せよ. ただし,出力は以下の仕様を満たすようにせよ.
- 動詞を含む文節において,最左の動詞の基本形を述語とする
- 述語に係る助詞を格とする
- 述語に係る助詞(文節)が複数あるときは,すべての助詞をスペース区切りで辞書順に並べる
「吾輩はここで始めて人間というものを見た」という例文(neko.txt.cabochaの8文目)を考える. この文は「始める」と「見る」の2つの動詞を含み,「始める」に係る文節は「ここで」,「見る」に係る文節は「吾輩は」と「ものを」と解析された場合は,次のような出力になるはずである.
始める で
見る は を
このプログラムの出力をファイルに保存し,以下の事項をUNIXコマンドを用いて確認せよ.
やることはだいたい分かった。ちょっと面白くなってきた感ある。
格と呼ぶからには、格助詞を選びたいけどなあ。まあええか。
この例、「始めて」は副詞ちゃう?って思うなあ。「初めて」は副詞で、同じやつやろ。IPA辞書でもUniDicでも、MeCab の解析では動詞になってまうから仕方ないんかなあ。
調べたことメモ
恥ずかしがらずに書く。
自作関数をモジュール化する
今更感あるけど、#040 で作った形態素解析結果を Morph クラスのオブジェクトにするやつを、別のファイルに書くことにした。
ファイル名の拡張子を除いた部分がモジュール名になる。最初に import モジュール
しておいて、呼び出すときは モジュール.クラス()
ってする。
リストの要素をタブ区切りでつなぐ
print() の中で処理できると効率良い。
'\t'.join([i for i in list])
前半完了(動詞と係る助詞を出力)
IPA辞書を使った。
# knock045.py # 結果ファイル20行目まで 生れる で つく が 泣く で する だけ は 始める で 見る は を 聞く で 捕える を 載せる に 持ち上げる と ある が 落ちつく で 見る を 見る の 思う と 残る が でも する をもって する が 逢う に も 出会う も
後半は第2章でやった気がしなくもないけど、だいぶ前やって忘れてまいましたわ。明日調べよう。