「平成27年8月14日 内閣総理大臣談話」をRMeCabで形態素解析
今日の夕方18時、おそらく将来の日本史(または、現代史に力を入れるという歴史総合)の教科書に載るであろう出来事の1つとして「談話」が示された。
いわゆる戦後70年談話として、どの文言を使う、誰に配慮する、など話題になった内容。テキストデータとしてみるとどんな特徴があるだろう?と、以前に構築、使用したRMeCabの環境を久々に使って見てみた。
さまざまな箇所に歴史/外交/政治的な意味や配慮を感じつつ、評価は他の方に任せるとして、文章の特徴が垣間見えてけっこうおもしろかった。
環境
- Mac OS X 10.10.4
- Xcode 6.4 (Build 6E35b) - from
$ xcodebuild -version
- MeCab 0.996
- IPA辞書 mecab-ipadic-2.7.0-20070801.tar.gz
- R 3.2.0
- RMeCab 0.9999 for R-3.2.0
データ準備
使用テキスト
- 前述の首相官邸サイトからテキストをコピーして保存
- 冒頭に挙げた首相官邸のページから、テキストをそのままはりつけたファイルを(めったに使っていない)GitHubにおきました。必要でしたら「20150814_original」をどうぞ
RMeCabで処理
以降は主にRMeCabの入出力を示す
(Markdown、コードブロック部分と上下の部分がアンバランス。方法を調べて多少調整するかも)
# 形態素解析の結果をデータフレームresへ > res <- RMeCabFreq("20150814_danwa_original.txt") file = ./20150814_danwa_original.txt length = 578 # 例として最初の10データを表示。Info1/2は品詞情報、Freqは登場頻度 > res[1:10,] Term Info1 Info2 Freq 1 え フィラー * 1 2 いかほど 副詞 一般 1 3 ただただ 副詞 一般 1 4 ひたすら 副詞 一般 1 5 もう 副詞 一般 1 6 より 副詞 一般 1 7 二度と 副詞 一般 2 8 今や 副詞 一般 1 9 何ら 副詞 一般 1 10 共に 副詞 一般 1
78文
読んでいて、「談話」と呼ぶにはかなり長いなと感じた。文章はいくつだろう?
# resの2列目が"記号"であるデータを抽出。res[,2]で"Info1"列を参照 # 「。」78個。つまり78文 > res[res[,2]=="記号",] Term Info1 Info2 Freq 565 ・ 記号 一般 1 566 。 記号 句点 78 567 」 記号 括弧閉 4 568 「 記号 括弧開 4 569 記号 空白 30 570 、 記号 読点 220
あとはRMeCabさまさま、データフレームresの内容を好きな切り口で見ていく
注記
- 厳密には、形態素解析器の種類、使用する辞書の種類によって、下記の分割結果は多少異なる。今回はMeCab+IPA辞書での結果
- kuromoji.jsなど他の形態素解析器、and/or 他の辞書を用いた場合はどうなるか?等を比較したい場合は、この談話はいい題材かもしれない
まず名詞に着目
# 名詞だけを取り出してデータフレームres_nounへ > res_noun <- res[res[,2]=="名詞",] # 登場する名詞は352個 > nrow(res_noun) [1] 352 # とりあえず10個表示 > res_noun[1:10,] Term Info1 Info2 Freq 185 お詫び 名詞 サ変接続 1 186 リード 名詞 サ変接続 1 187 一貫 名詞 サ変接続 1 188 侵略 名詞 サ変接続 1 189 共有 名詞 サ変接続 1 190 再建 名詞 サ変接続 1 191 創設 名詞 サ変接続 1 192 努力 名詞 サ変接続 3 193 反省 名詞 サ変接続 1 194 和解 名詞 サ変接続 1 # 多く登場する順に並べる。res_nounをFreqで降順ソート > res_noun[rev(order(res_noun$Freq)),] Term Info1 Info2 Freq 498 たち 名詞 接尾 21 460 日本 名詞 固有名詞 14 430 私 名詞 代名詞 14 524 十 名詞 数 13 258 世界 名詞 一般 12 528 こと 名詞 非自立 10 294 国際 名詞 一般 10 209 戦争 名詞 サ変接続 10 506 年 名詞 接尾 9 480 平和 名詞 形容動詞語幹 9 443 戦後 名詞 副詞可能 9 325 我が国 名詞 一般 8 265 人々 名詞 一般 8 529 ため 名詞 非自立 7 (以下省略)
元の文脈次第だけれど、
- 「私」や「たち」を多く使っている
- 「日本」「世界」「国際」「戦争」「平和」「戦後」と続く
あの語は?
どうやら「これらの語を盛り込むかどうか?」が事前のトピックだったようなので、調べてみた
# 指定したTermは何回登場するか # res[,1] は、1列目Termを指す > res[res[,1]=="お詫び",] Term Info1 Info2 Freq 185 お詫び 名詞 サ変接続 1 > res[res[,1]=="侵略",] Term Info1 Info2 Freq 188 侵略 名詞 サ変接続 1 > res[res[,1]=="反省",] Term Info1 Info2 Freq 193 反省 名詞 サ変接続 1 > res[res[,1]=="支配",] Term Info1 Info2 Freq 218 支配 名詞 サ変接続 5 > res[res[,1]=="植民",] Term Info1 Info2 Freq 223 植民 名詞 サ変接続 6
- 念のため、名詞だけのres_nounでなく、全品詞のresから拾った
- 「お詫び」「侵略」「反省」1箇所、「支配」5箇所、「植民地」6箇所
- もちろん、どのような文脈で登場するかは前後の語とあわせてみる必要がある
- ターミナル上でgrepすると、たとえば「侵略」は:
$ grep -n --color=always "侵略" 20150814_danwa_original.txt 25: 事変、侵略、戦争。いかなる武力の威嚇や行使も、国際紛争を解決する手段としては、もう二度と用いてはならない。植民地支配から永遠に訣別し、すべての民族の自決の権利が尊重される世界にしなければならない。 (実際は「侵略」が色表示されて出力される)
「植民」or「植民地」
ちなみに「植民」で検索した理由は、単に「植民地」だと以下のように0件だったため
> res[res[,1]=="植民地",] [1] Term Info1 Info2 Freq <0 行> (または長さ 0 の row.names)
実際は「植民+地」と分割されていたことに気づいた。辞書に「植民地」を追加して形態素解析を再度行えばよいのだろうけど、今回は割愛
固有名詞
# res[,3] は、3列目Info2を指す > res[res[,3]=="固有名詞",] Term Info1 Info2 Freq 448 アジア 名詞 固有名詞 6 449 アフリカ 名詞 固有名詞 1 450 インドネシア 名詞 固有名詞 1 451 オランダ 名詞 固有名詞 1 452 フィリピン 名詞 固有名詞 1 453 中国 名詞 固有名詞 3 454 台湾 名詞 固有名詞 1 455 太平洋 名詞 固有名詞 2 456 安倍 名詞 固有名詞 1 457 平成 名詞 固有名詞 1 458 広島 名詞 固有名詞 1 459 日 名詞 固有名詞 1 460 日本 名詞 固有名詞 14 461 晋 名詞 固有名詞 1 462 東京 名詞 固有名詞 1 463 東南アジア 名詞 固有名詞 2 464 欧州 名詞 固有名詞 1 465 欧米 名詞 固有名詞 1 466 沖縄 名詞 固有名詞 1 467 満州 名詞 固有名詞 1 468 米国 名詞 固有名詞 2 469 英国 名詞 固有名詞 1 470 豪州 名詞 固有名詞 2 471 長崎 名詞 固有名詞 1 472 露 名詞 固有名詞 1 473 韓国 名詞 固有名詞 1
- 固有名詞(あくまでMeCab+IPA辞書がそう判定したもの)を全て示した
- 分け隔てなく?言及されているようだ
- 細かく言うと、「中華(民国)」はなく「台湾」があるな、「中国」3で「韓国」1か、などが確認できる
次は動詞
# 108個 > nrow(res_verb <- res[res[,2]=="動詞",]) [1] 108 # 登場頻度降順でソート > res_verb[rev(order(res_verb$Freq)),] Term Info1 Info2 Freq 85 する 動詞 自立 31 81 ある 動詞 自立 11 179 なる 動詞 非自立 10 90 なる 動詞 自立 9 180 まいる 動詞 非自立 8 80 れる 動詞 接尾 8 173 いく 動詞 非自立 6 98 刻む 動詞 自立 6 114 尽くす 動詞 自立 5 89 できる 動詞 自立 5 184 続ける 動詞 非自立 4 109 失う 動詞 自立 4 79 られる 動詞 接尾 4 176 くる 動詞 非自立 3 174 いる 動詞 非自立 3 164 超える 動詞 自立 3 95 傷つける 動詞 自立 3 172 願う 動詞 自立 2 168 進む 動詞 自立 2 160 誓う 動詞 自立 2 156 表す 動詞 自立 2 155 苦しむ 動詞 自立 2 150 繰り返す 動詞 自立 2 149 続ける 動詞 自立 2 143 知れる 動詞 自立 2 135 歩む 動詞 自立 2 117 広がる 動詞 自立 2 116 巻き込む 動詞 自立 2 102 受ける 動詞 自立 2 99 創る 動詞 自立 2 88 つなぐ 動詞 自立 2 78 せる 動詞 接尾 2 185 行く 動詞 非自立 1 (以降も登場頻度1,省略)
- 高頻度な「する」「ある」「なる」は、おそらくどんな文書にも頻出するものだろう
- 「まいる」「刻む」「尽くす」「続ける」が特徴的
- 意味解析を加えると、ポジティブ/ネガティブ表現の分類もおそらくできるのだろうけれど、自分の知見を越えるので割愛(試された方おられたら教えてください)
n-gram
2-gram
名詞と動詞に絞り、形態素の連なりを2-gramと3-gramでみてみた。前述はいわゆる「単語だけ」で見ていたけれど、その前後の表現はどうなのか?がある程度わかる
# データフレームtextgramへ格納 > text_2gram <- Ngram("20150814_danwa.txt", N = 2, type = 1, pos = c("名詞", "動詞")) file = ./20150814_danwa.txt Ngram = 2 length = 834 # Freq降順でソート > text_2gram_ordered <- text_2gram[rev(order(text_2gram$Freq)),] # 先頭30個を表示 > head(text_2gram_ordered, 30) Ngram Freq 687 [私-たち] 14 730 [胸-刻む] 6 599 [植民-地] 6 304 [十-年] 6 175 [七-十] 5 811 [過去-胸] 4 711 [続ける-我が国] 4 353 [国際-社会] 4 285 [力-尽くす] 4 278 [刻む-続ける] 4 263 [先-大戦] 4 231 [二-十] 4 51 [する-まいる] 4 30 [こと-できる] 4 768 [解決-する] 3 429 [平和-繁栄] 3 389 [女性-たち] 3 363 [地-支配] 3 259 [傷つける-られる] 3 135 [まいる-私] 3 97 [ため-力] 3 84 [たち-心] 3 52 [する-れる] 3 33 [こと-私] 3 792 [責任-ある] 2 753 [行き詰まり-力] 2 737 [自由-民主] 2 724 [者-なる] 2 705 [経済-ブロック] 2 688 [秩序-挑戦] 2
- だいぶ文脈が見えてくる
- 「植民-地」という分割にはここで気づいた
- 「私-たち」14回。前述の名詞で「私」が14だったので、「私」を単独で使うことはなく、常に「私たち」で使われていることがわかる。IでなくWe
- 「胸-刻む」「刻む-続ける」が複数回登場するあたりは、明らかに書き手の意図がでているように思う
3-gram
> text_3gram <- Ngram("20150814_danwa.txt", N = 3, type = 1, pos = c("名詞", "動詞")) file = ./20150814_danwa.txt Ngram = 3 length = 917 > text_3gram_order <- text_3gram[rev(order(text_3gram$Freq)),] > head(text_3gram_order, 20) Ngram Freq 894 [過去-胸-刻む] 4 809 [胸-刻む-続ける] 4 300 [刻む-続ける-我が国] 4 188 [七-十-年] 4 652 [植民-地-支配] 3 147 [まいる-私-たち] 3 109 [ため-力-尽くす] 3 36 [こと-私-たち] 3 875 [責任-ある-私] 2 778 [経済-ブロック-化] 2 761 [秩序-挑戦-者] 2 753 [私-たち-心] 2 580 [挑戦-者-なる] 2 554 [戦後-七-十] 2 391 [国際-秩序-挑戦] 2 248 [二-十-世紀] 2 218 [世界-平和-繁栄] 2 8 [ある-私-たち] 2 917 [飢え-病-苦しむ] 1 916 [食糧難-多く-無辜] 1
- 「胸-刻む」のうち4回は「過去を胸に刻む」だった
- 登場箇所は別かもしれないけど、「刻み続ける」主体は「我が国」
次の興味
- 村山談話との比較
- 当時と今回、与党体制も外交情勢も大きく異なる中、首相官邸(談話者本人+スタッフ+スピーチライター)が相当詰めて仕上げた文章に変わりない。何か文章の特徴に差はあるのか、ないのか、それが見つかったらおもしろいかなと
- 段落分けの意図
- 今回は「。」で区切られた文章の連なりとして見た。段落を意味する空行がけっこうあるが、一切見ていない。この意味や意図をなんらかの方法で見られたら
- 形態素解析器 and/or 使用辞書を変えるとどうなる?
- 使われる単語は平易、シンプルな文章なのでそれほど差は出なさそうだけど
ただし、2.は方法を、3.は環境を持っておらず、誰かに教わるか、他の方の結果を待つか、としたいところ