1. トップ
  2. 新着ニュース
  3. 国際
  4. 国際総合

「ネット言論のダークサイド」を計算機で解析する ── データ分析による報道の技術とその再現性 ──

ニューズウィーク日本版 / 2016年5月10日 22時31分

names.csv. KENという語で検索をかけた例

 さて、この時点で不明の1,268人分のデータの性別を判定するために、今度は以下の人名判定サービスにPerlスクリプト(この場合は、Perlというプログラミング言語で作業工程を記述した小さなプログラムのことです)で送信します:

・genderize.io: Determine the gender of a first name

 このサービスを利用した後の時点で何名ぐらいが性別不明だったかはわかりませんが、なんとか人力で判定、つまり人名辞典やネット検索で人間が一つ一つ判定するのも不可能ではない程度の量にまで不明の数が減っていたので、残りは実際にそういう作業で仕分けされています。「データサイエンス」という言葉の響きとは対極にあるような作業ですが、現実はこんなものです。

 ともあれ、この作業で一定のエラーは含まれているが、それなりに大きい数の男女別著者リストが得られたので、そのファイル(CSV)をAWSのS3というストレージサービスにアップロードしました。ここからはAWS上の計算機での作業になります。


Sparkでの分析

 ガーディアン社はかねてより、こういった比較的大きなデータを分析することによる調査報道をやりたかったらしく、大規模な分散処理ではスタンダードな地位にあるApache Sparkを実際に使うプロジェクトを探していました。今回の解析はテストケースとして丁度良いものだったため、実際に利用しています。

Sparkとは何か?
 Apache Sparkとはオープンソースで開発が続いている「並列分散処理のためのフレームワーク」です。これだけでは一体なんなのか分かりにくいと思いますが、要するに複数の計算機を利用して、巨大なデータを効率よく同時に処理するためのソフトウェアのことです。今日のデータ分析で巨大なデータを扱う時に高性能な計算機が必要な場合、一台の高性能なマシンに大きな投資をして使うことは稀で、基本的には比較的安価な計算機をたくさん集めて処理を分散させて行います。この作業を行う時には、一台の計算機で処理を行う際に比べてはるかに高度な技術が必要になります。この複雑な部分の面倒を見てくれるソフトウェアと考えてもらって概ね問題ないです。

 若干技術寄りの話になりますが、かつてこのソフトウェアを使う時にはScalaという言語でRDDと呼ばれる比較的抽象度の低いデータ構造を使う必要があったのですが、最近ではRとDataFrame(スプレッドシートのシートのような感覚で各種データを扱えるデータ構造)という、データ解析を行う人々には馴染み深い、かなり抽象度の高いものを利用できるようになってきました。現時点でもScalaを使える人がもっともこのソフトウェアを効率よく使いこなすことができますが、そうでない人にも今後は門戸を開いていくという方針のようなので、大規模データ分析の世界ではSparkのさらなる普及が予想されます。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください