第1回  複雑ネットワーク輪輪読会




      NetworkXによる
    語彙ネットワークの可視化

                      Shintaro	
  TAKEMURA	
  
                           d.hatena.ne.jp/taos	
   	
  
                              twi9er.com/stakemura	
  
                    facebook.com/shintaro.takemura
NetworkXとは?
•  Python製のネットワーク分析ライブラリ	
  
•  基本的なグラフ操作ができる	
  
  –  基本的なグラフ⽣生成・最短距離離算出・クリーク抽出	
  
  –  ⾚赤本	
  2.5の中⼼心性の計算もばっちり	
  
  –  とはいえ何でもできるわけではない(2.6など)	
  
•  可視化・出⼒力力機能も充実	
  
  –  matplotlib(各種画像フォーマット)	
  
  –  Graphviz(dot形式やpygraphviz)	
  
  –  GML(CytoscapeやGephiと連携できる)	
  
  –  GraphML(CytoscapeやGephiと連携できる)	
  
WordNet
•  データベース化された辞書	
  
 –  ⽇日本語WordNetだと⽇日英辞書としても使える	
  
 –  同義語関係をNetworkXで可視化	
  
NetworkX+matplotlib

•  メリット	
  
  –  Pythonだけで完結	
  
•  デメリット	
  
  –  レイアウト機能が
     専⽤用ツールに⽐比べ
     て乏しい	
  
NetworkX+GraphViz(dot経由)
•  メリット	
  
  –  描画機能がとにかく強⼒力力	
  
  –  様々なツールでの動作実績	
  
•  デメリット	
  
  –  意図通りにレイアウトされなかった	
  
     (調整なしの状態)	
  
NetworkX+CytoScape(gml経由)
•  メリット	
  
  –  豊富なレイアウト	
  
  –  後から編集も可能	
  
•  デメリット	
  
  –  Unicodeが使えない	
  
     (⽇日本語が駄⽬目)
NetworkX+CytoScape(GraphML経由)
•  メリット	
  
  –  豊富なレイアウト	
  
  –  GUIによる編集	
  
  –  UnicodeもOK	
  
•  デメリット	
  
  –  プラグインにバグを
     確認	
  
     →翌⽇日、開発者の⽅方
     から修正します、と
     のコメントを頂く	
  
  –  今後に期待!	
  
NetworkX+Gephi(GraphML)
•  メリット	
  
  –  GraphMLの標準サポート	
  
  –  GUIによる編集	
  
  –  データテーブル	
  
  –  UnicodeもOK	
  
•  デメリット	
  
  –  特になさそう	
  
  –  あえて⾔言えばCytoScapeに
     ⽐比べると⾃自動レイアウト
     機能は弱い	
  
考察
•  結論論	
  
    –  グラフ可視化はGraphML+Gephiが良良さそう	
  
•  課題	
  
    –  NetworkXを使ったアルゴリズムの実装	
  
•  参考⽂文献	
  
    –  Girvan-­‐Newman	
  algorithmによるコミュニティ抽出
       (@tsubosakaさん)	
  
•  WordNet可視化のソースコードは後⽇日公開します	
  
    –  github	
  -­‐	
  stakemura	
  

NetworkXによる語彙ネットワークの可視化

  • 1.
    第1回  複雑ネットワーク輪輪読会 NetworkXによる 語彙ネットワークの可視化 Shintaro  TAKEMURA   d.hatena.ne.jp/taos     twi9er.com/stakemura   facebook.com/shintaro.takemura
  • 2.
    NetworkXとは? •  Python製のネットワーク分析ライブラリ   • 基本的なグラフ操作ができる   –  基本的なグラフ⽣生成・最短距離離算出・クリーク抽出   –  ⾚赤本  2.5の中⼼心性の計算もばっちり   –  とはいえ何でもできるわけではない(2.6など)   •  可視化・出⼒力力機能も充実   –  matplotlib(各種画像フォーマット)   –  Graphviz(dot形式やpygraphviz)   –  GML(CytoscapeやGephiと連携できる)   –  GraphML(CytoscapeやGephiと連携できる)  
  • 3.
    WordNet •  データベース化された辞書   –  ⽇日本語WordNetだと⽇日英辞書としても使える   –  同義語関係をNetworkXで可視化  
  • 4.
    NetworkX+matplotlib •  メリット   –  Pythonだけで完結   •  デメリット   –  レイアウト機能が 専⽤用ツールに⽐比べ て乏しい  
  • 5.
    NetworkX+GraphViz(dot経由) •  メリット   –  描画機能がとにかく強⼒力力   –  様々なツールでの動作実績   •  デメリット   –  意図通りにレイアウトされなかった   (調整なしの状態)  
  • 6.
    NetworkX+CytoScape(gml経由) •  メリット   –  豊富なレイアウト   –  後から編集も可能   •  デメリット   –  Unicodeが使えない   (⽇日本語が駄⽬目)
  • 7.
    NetworkX+CytoScape(GraphML経由) •  メリット   –  豊富なレイアウト   –  GUIによる編集   –  UnicodeもOK   •  デメリット   –  プラグインにバグを 確認   →翌⽇日、開発者の⽅方 から修正します、と のコメントを頂く   –  今後に期待!  
  • 8.
    NetworkX+Gephi(GraphML) •  メリット   –  GraphMLの標準サポート   –  GUIによる編集   –  データテーブル   –  UnicodeもOK   •  デメリット   –  特になさそう   –  あえて⾔言えばCytoScapeに ⽐比べると⾃自動レイアウト 機能は弱い  
  • 9.
    考察 •  結論論   –  グラフ可視化はGraphML+Gephiが良良さそう   •  課題   –  NetworkXを使ったアルゴリズムの実装   •  参考⽂文献   –  Girvan-­‐Newman  algorithmによるコミュニティ抽出 (@tsubosakaさん)   •  WordNet可視化のソースコードは後⽇日公開します   –  github  -­‐  stakemura