Gephiで夢野久作「ドグラ・マグラ」の可視化

はじめに

最近,グラフ理論入門書を読みました.
入門書では用語が頻出するため,式を展開して計算して...というよりは,用語を覚えたり,概念を理解したりする部分が多い印象を受けました.
個人的には彩色問題,世界地図の塗り分け問題のあたりが読んでいて楽しかったです.(東野圭吾著「容疑者Xの献身」でも登場します)

Web上ですと長崎大学の講義資料に用語がまとまっていました.

ここでいうグラフというのは,2次関数のグラフ,のようなグラフではなく,頂点(ノード)と辺(エッジ)からなるグラフです.ネットワークともいうらしいですが,上記の本によると,辺に重み等の機能があるグラフをネットワークと呼ぶそうです.
ブログではグラフということとします.

また,ソーシャルネットワークTwitterのフォロー/フォロワーの関係)など関係をグラフに落としこむことで把握しやすくなることがあります.

Rでもigraphというライブラリがありますが,日本語の表示ができず,Gephiを使いました.
Gephiはオープンソースのグラフ描画を行うソフトです.

Gephiの(ごくごく簡単な)操作練習をかねて簡単な可視化をしてみました.

データ概略

夢野久作著「ドグラ・マグラ」の冒頭200文を使用します.
青空文庫で公開されている本文をMecab形態素解析し,同じ文中で出現する[名詞,形容詞,動詞]をノードとします.よって共起関係がエッジになります.
抽出した単語を文ごとにカンマで区切り,CSVファイルとします.

具体的にはこんな感じです.

兄,さま,兄,さま,兄,さま
妾,貴方,あなた,もの
貴方,もの
早く,早く,兄,様,手,抱き取っ,私,掌,てのひら,顔,烈しく,コスリ,まわし
違う,違う,違い,違い
貴女,あなた,思い違い,し,いる,の
僕,貴女,知ら,の

本題

GephiにCSVファイルを読み込ませることで,グラフを描画してくれます.(他にもいくつかのフォーマットに対応しています)

200文でもノードが970個になります.(単語数が970種と等価です)
エッジの重みが共起の頻度になります.大抵のエッジの重みは1でごみごみしてしまうので,今回は2よりも大きい重みを持つエッジだけを描画させました.
f:id:another16javac:20141203003314p:plain

グラフの形をきれいにする機能があるので,見通しがよくなります.

中心にあるノードの集合にアップすると以下のようになります.
f:id:another16javac:20141203003309p:plain


思い返すと冒頭は妹と名乗る女性が主人公を兄様兄様連呼するので,納得できます.

まとめ

同じ文以外にも主語,述語,目的語の関係など別の関係があります.
ノードとエッジのサイズが大きくなるとどうしても機能が悪くなってしまうので,用途に応じて予めノードを削除してから描画する必要があるかもしれません.
面白い結果が得られたら,記事を書こうと思います.