christopherの日記

2012-01-21

東大の図書館を可視化してみた(ネットワーク分析)

東大には学部学科管轄の図書館がある。ということは、1種類の本をいろんな図書館が持っているということが頻繁にある。そこで、「何冊の本を共有しているか」を指標としたネットワークから、学部学科の相互関係がわかったらおもしろいんじゃないかと思い、実際に可視化してみた。学問的な分野で言うと、ネットワーク分析とか図書館情報学みたいな感じ。時間がない人は下のPicasaにおいてあるネットワークの画像だけでも。
送信者 2012年1月22日

  • 動機
    • 東大OPAC機械学習の本を探している時、工2やら工6やら柏やら、工学系の図書館とともに、経済学図書館にも蔵書があることが多いことに気づいた。
    • ある図書に対して、どの図書館とどの図書館が共起しているかを調べれば、図書館同士、はたまたそれを持つ学部学科同士の関係がわかるのではないかと考えた。
    • 例えば、工学と経済学は両方数理計画法を使うから、数理計画法の図書についてこの2つの図書館は共起しやすいだろう。
    • 最近の図書について調べるだけでは常識的な傾向しか出てこない可能性もあるが、時系列で調べると、学部学科同士の関係の変遷が見えてくるかもしれない。

ということで、やってみた。

  • 方法
    • 東大図書館OPACには素晴らしいことに、図書インデックスの出力機能がある。これを使うと図書リストを500件ずつ.tsv形式(.csvのようなもの)で落とせる。
    • これを使って、2011年に出版された和書を、出版年月昇順で並べたものを出力してデータとする。本1冊を1件として、n=2500のサンプルをとった(複数の図書館に所蔵されている本は500冊程度で、サンプルとしては小さすぎるので、1万件以上のデータを使って後でもう一回やるかもしれません(それをやっていない理由は※のOPACの問題の部分を参照))。

送信者 2012年1月22日

  1. 図書館ノード(点)とし、図書館同士の共起関係をエッジ(線)とする。図書館は、表示されている限り最大限細かく分類して考える(工学系図書館としてひとつにはせず、工学部2号館図書館、などの単位で考える)。
  2. 2500冊すべての図書に関して、そこで共起すれば、エッジに重みを1付加する。例えば、経済学図書館工学部2号館図書館が2500冊のうち10冊同じ本を持っていたら、この2つの間のエッジの重みは10。
  3. 図書情報がシリーズの単位で表示されるので、シリーズの本のいずれかの巻を所蔵していれば(それが2011年出版のものでなくても)、共起していると見なす。共起回数のカウントは、1シリーズにつき最大1回とする。
  4. Cytoscapeで読み込める形でCSV出力する。

送信者 2012年1月22日
例:この本の場合、総図・工2、総図・工3、工2・工3それぞれの間のエッジ(線)の重みを1ずつ付加する。下巻だけが2011年出版で、仮に工2に上巻しかなくてもこの規則でエッジの重みづけを行う。

OPACの仕様なのか、キャンパスが違う図書館が共起している時、ひとつのキャンパス図書館分しかファイルに出力されないようです(現在東大図書館に問い合わせています)。なので、駒場キャンパスにある図書館本郷キャンパスにある図書館との間の関係は残念ながらわかりませんでした。データを見る限りでは、本郷キャンパスが優先して出力されているようなので、以下本郷キャンパス内の学部学科図書館ネットワークについて考えます。
(追記:東大図書館から返答が来ました。複数キャンパス図書館が共起していた場合、最初のキャンパスしか出力されていない状況になっていることが確認されたようで、変更を検討中とのこと。なので東大図書館マイニングをやろうとしている人は注意してください。)
※技術的なtipsはまた後で書きます。

  • 結果

※名前が全部英語で出力されているので、対応関係は↓で確認してください(ネーミングは勝手にしました。ちょいちょいタイプミスがあるのは目をつぶってください。IsramとかFrenceとか。。。)。Cytoscapeは日本語出力ができないので(実はこの対応表をつくるのが一番時間がかかってたりしますorz)。。。
http://d.hatena.ne.jp/christopher6/20120121/1327171531

  • Node DegreeとEdge Weightについて
    • 全体図

送信者 2012年1月22日
アルバムに飛ぶと拡大できます(拡大ボタンは、飛んだ先の右上にある虫眼鏡のところです。)

送信者 2012年1月22日

送信者
2012年1月22日
アルバムに飛ぶと拡大できます(拡大ボタンは、飛んだ先の右上にある虫眼鏡のところです。)

    • NodeはBetweeness Centrality(媒介中心性)で色付け(【大】赤→黄→緑【小】)
    • Betweeness Centrality(媒介中心性)はCytoscape PluginのNetwork Analysisを利用したもの*1。※Betweeness Centralityとは任意の2Node間の最短経路に含まれるほど大きくなる指標(最短経路上に来やすいかどうか、これが大きいほど「橋渡し」する点)。
    • EdgeはWeightで色付け(【大】赤→黄→緑【小】)
    • Spring Embedded Layout で描画※Weightが大きいほど(ともに所蔵している本が多いほど)近くなる。
    • 拡大したもの↓(Spring Embedded Layoutは毎回出力が違うので上の結果とはちがいます)

送信者 2012年1月22日


  • 結果について
    • 農学部(AG Agriculture)の媒介中心性の高さが際立っていた。なにか操作を間違っているかな、と思って、農学部と他の学部図書館との間で共起しているような図書のリストを確認したが、やはりそうであった(参考:「農学部図書館と共起している本のリスト」http://d.hatena.ne.jp/christopher6/20120121/1327174066)。経済分野の本がおいてあったりするのを確認して納得。
    • 工学部建築(En14 Architecture)や都市工学(En1B UrbanEngineering)、社会基盤(En1A CivilEngineering)などは文系の図書館に近い。
    • 一方で、医学、薬学は文系の図書館から遠い。例えば医療政策や医療マネジメント医療経済学、あるいは薬事法などの本があるはずだが、相対的には少ないのかもしれない。
    • 工2や工6のようにいろんな学科が混じっている図書館が多くあり、図書館単位での分析には限界がある。
    • ノード粒度が影響してしまうので、それを考慮しなければいけない。例えば農学部は3つしか図書館がないが、工学部は10以上図書館があり、単純な数の指標においては分割されていない図書館が有利な傾向にある。従って、DegreeやBetweeness Centralityで上位にきていることが必ずしもすごいわけではない。ただし、図書館同士の近さについてはある程度うまく可視化されたのではないかと思う。
    • この場合の媒介中心性をどう解釈していいかわからない。勉強不足。ネットワークである以上そこを切るとQ値は必ず増えるので、Newman法によるクラスタリングの指標にはなるとは思う。
    • 理系学部学科の名誉のために補足しておくと、日本語文献しか検索にかけていないので、英語文献が相対的に多いと思われる理系の図書館はDegreeやBetweeness Centralityでは不利。また理系の図書館は学科ごとに分散している傾向にあるので、その点でも不利。

  • 補足とか
    • 時系列分析したら面白いと思うが、まだ時間がなくてやっていない。
    • データサンプルは1万くらいは欲しい。特に共起している図書が500ちょいなので(つまり2500冊のうち2000冊は、上述のようにシリーズを考慮しても1つの図書館にしかない)、データ規模が少し小さいのは否めない。ただ、手作業で20回もファイル出力させるのはつらい。。。
    • はじめCiNii BooksのAPIをつかってやろうとしたが、詳細な情報が出力されないため無理だった。徹夜でCiNii BooksのAPI叩くライブラリつくったのにorz...
    • 好きな社会科学研究所の図書館が上位だったから個人的に満足。我が経済学図書館法学部図書館に負けているのは遺憾。
    • 専門科目の試験前なのにさぼって何やって(ry

  • ネットワーク分析をやっている人にむけて
    • ISI Web of Knowledgeで論文情報が同様に提供されているので、論文ネットワークを研究したい人はそれがいいかもしれません(後述するゼミのテーマがそれで、自分はゲーム理論論文についてやりました)。大学の学内アクセスのみですが。
    • CiNii Books やArticles(両方とも要developer登録)でこれをやる場合には、ランダムサンプリングが若干面倒です。最初CNID(CiNiiの図書コード)やISBNコードをランダムに生成することを考えましたがうまくいかず、結局検索キーワードなしで、出版年や言語などを指定して、その検索結果をhtmlパーサで解析してやりました(結局上述の通り無駄になったわけですが)。ただし、15件しかhtmlパーサでひっかからなかったので(なぜだかは不明)、1000件近く一度に検索結果を出力できるのも関わらず、15件ずつ叩いてやりました。
    • CiNii Books APIは秒あたりリクエスト5回程度で5分くらい叩いていたら一時的に停止されたので、秒1回か2回くらいのリクエストにしたほうがいいかもしれません。
    • 日本の図書館可視化は、ネットワーク分析ソフトの文字化けの問題であまりおすすめできません。英語名称の変換表をつくるのが面倒なので。単純に学術的な近さを調べたいなら、英語圏論文や図書を解析したほうがいいと思います。
    • 可視化した時の美しさとか分析プラグインの充実度を考えるとpajekなどよりもCytoscapeがよいです。生物系のソフトなので社会系には不向きな部分もありますが(例えばクラスタリングプラグインにNewmanアルゴリズムがなかったりする(訂正:ClusterMakerというプラグインでサポートされているようです))基本的には事足りる気がします。ただし、日本語情報が少ないです(バージョンが最新だとなぜかテーブルから読み込めなかったりとか、そういう情報がわからない)。

  • 謝辞
    • 去年の駒場の「イノベーション政策」という全学ゼミネットワーク分析に出会いました。そこで教えてくださった梶川先生、森先生に感謝。その時はコードが書けず、全部ツールにおんぶに抱っこでやっていたのを考えると感慨深いです。

工学部イノベーション政策研究センター
http://ipr-ctr.t.u-tokyo.ac.jp/jp/index.html

*1:WeightをInteractionとして設定しているが、このアプリケーション内の計算でそれが考慮されているかについては現在確認中

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/christopher6/20120121/1327164340