また機械学習分野で最近話題のディープラーニングについてもPythonはライブラリが充実している。例えばこの6月に登場したChainerというフレームワークはGPU(画像処理に特化させたプロセッサ)による演算をサポートしており、GPU演算を用いることで他のライブラリよりも効率の良い計算が可能になっている。
そして、グラフの描画についてはmatplotlibというライブラリがある。静的なグラフだけではなく、動的なグラフを描画することも可能だ。詳細については参考文献のギャラリーをみるとイメージしやすいだろう。
さらに、Pythonは自然言語処理分野で最もよく利用されている言語の1つである。テキストマイニング(文字列を対象としたデータマイニング)に挑戦するなら、Pythonと下記のツールを一通りインストールして挑戦するのがお勧めである。
ライブラリ名 | 詳細 |
---|---|
NLTK | 自然言語処理を行うための総合的なライブラリ。日本語を取り扱う際にはいくつか注意点があるので、参考文献の「Pythonによる日本語自然言語処理」を参照のこと |
MeCab | 形態素解析器。文書を形態素に分割するためのツール |
CaboCha | 日本語係り受け解析器。各単語の係り受け情報を出力してくれる |

CaboChaの動作例

MeCab の動作例
MeCabとCabochaのPython用のライブラリを利用することで、Pythonからこれらの結果を容易に取り扱うことが可能になる。
さらにウェブアプリケーションフレームワークも充実しているので、分析結果を利用し、社内・社外サービスとして展開することも可能だ。RubyにおけるRailsに該当するDjangoや必要最小限の要素から構成された軽量のフレームワークであるFlaskなどがある。
Bash+MCMD(エムコマンド)
次に紹介するのはLinuxなどで使用可能なシェルスクリプトとMCMDの組み合わせである。MCMDはNYSOLが開発した大規模な表構造データを効率よく処理する目的で開発されたコマンド群である。MCMDはメモリ量が少ないマシンでも動作し、Rと比較するとより大規模なデータに対応できる。
例えば、手元のマシンで1億行を超える表構造データのJOIN処理も可能になる。BashとMCMDの組み合わせは分析サーバ環境などが充実していないチーム立ち上げ時に適している組み合わせだ。
MCMDはデータの集約処理、結合処理、列間の演算等を、UNIX系シェルのコマンド+パイプ処理で記述する。普段の情シス業務において、サーバ管理等にシェルスクリプトを使用していれば、学習コストも低く、中間データ作成のためのバッチ処理をMCMDで行うのもよい選択肢となるだろう。
視覚化やレポート作成については、他のツールと組み合わせる必要があるが、必要最小限のデータに集計してしまえば、Excelなどでも十分扱える場合が多い。
前編では、情シス部門に向けて、エンジニアの視点からデータ分析に有用な統計言語のRやそれにひもづくライブラリ、Pythonなどを説明した。後編でも情シス部門に向けて、エンジニアの視点からデータ分析において役立つさまざまな技術やツールを紹介する。
- 戸嶋龍哉(DATUM STUDIO株式会社 データエンジニア)
- 現在26才。DATUM STUDIO株式会社にてデータエンジニアとして、様々な業種の企業におけるデータ分析活用基盤の構築、テキストマイニングによる分析、機械学習アルゴリズムの整備に従事。株式会社ドリコムにて、ソーシャルゲームのデータ分析業務にも従事していた。 最近、多種多様なデータを前処理する楽しさに目覚めた。データ分析を活用し1円でも多くの収益を上げるべく、がんばっている。