%load_ext rpy2.ipython
%matplotlib inline
import numpy as np; X = np.array(zip([u'動画' for x in range(1,6)], [u'静画',u'大百科',u'生放送',u'チャンネル',u'ブロマガ']))
%Rpush X
%R library(igraph); plot(graph.edgelist(X) ,vertex.size=50);
発表者:
@nezuq
仕事:
VB.NET, VBA, VB6
趣味:
R, Python
最近の活動:
データジャーナリズム・キャンプ&アワード2013で共同制作した作品が、
LODChallenge2013 ビジュアライゼーション部門 最優秀賞を受賞しました。
BADデータの共有ネットワークDB。通称、人間の為のインターネット。
全てのHTMLドキュメントはURIにより一意に特定され、リンクされる。
データの関係性が曖昧に定義され、その出現順も不定である為、解析しづらい。
ただし、データ数は多い。
「タイトル 、メタ情報、文書(自然言語)」
(例)
<p>
<a>花子</a>は<a>太郎</a>の知り合いです。<br/>
花子のメールアドレス:hanako@xxx.co.jp
</p>
GOODデータの共有ネットワークDB。通称、機械の為のインターネット。
全てのRDFデータはURIにより一意に特定され、リンクされる。
データの関係性が厳密に定義され、その出現順も一定である為、解析しやすい。
ただし、データ数は少ない。
「主語→述語→目的語、主語→述語→目的語、主語→述語→目的語」
(例)
PREFIX ex: <http://example.org/resource/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
ex:太郎 foaf:knows ex:花子
ex:花子 foaf:mbox <mailto:hanako@xxx.co.jp>
"データのWeb"と"ドキュメントのWeb"のコラボが望まれる。
"ドキュメントのWeb"を解析・整形する技術が必要だ。
その為の技術として、「Webスクレイピング」がある。
手元にあるRで始めてみよう。
※ただし、Firefoxユーザーに限る。
#Relenium依存パッケージのインストール
install.packages("rJava")
install.packages("devtools")
library(devtools)
install_github('seleniumJars', 'LluisRamon')
install_github('relenium', 'LluisRamon')
#Releniumの使用宣言
library(relenium)
これであなたのRはクローラーになりました。
Firefoxを介して、データを集めます。
firefox <- firefoxClass$new()
firefox$get("http://www.nicovideo.jp/")
#CSSセレクタで要素指定。※XPathで指定するfindElementsByXPath関数もある。
elms <- firefox$findElementsByCssSelector("#topic > ul > li")
elms[[1]]$getText()
firefox$close()
Webスクレイピングの知識をShareする場を設けたい。
「東京スクラッパー(仮)」
BADデータ・ダイビングを一緒に楽しみませんか?
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
matplotlib.rcParams['font.family'] = 'TakaoPGothic'
X, Y = np.meshgrid(np.arange(-3, 3, 0.2), np.arange(-3, 3, 0.2))
Axes3D(plt.figure()).plot_wireframe(X,Y,np.sin(X) + np.cos(Y))
title(u'<span>Enjoy BADデータ・ダイビング!</span>', fontsize=48)
plt.show()