SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

HadoopでTwitterを分析してみた

Mahout使って分析しちゃいました。

004

大変お待たせしました。最終回となる今回は、ついにあの象使い、「Mahout」に手を出してさらなる分析を進めます。いよいよデータサイエンティストっぽくなる今回ですが、小難しい理屈はとりあえず置いておき、とにかくMahoutを使ってみましょう。 

Mahoutって何?

 本題に入る前にまず宣伝を。データベースエンジニアの祭典「db tech showcase」が、この春(5月29日~31日)、いよいよ大阪でも開催されます!参加したいが東京は遠い、と思っていた関西のDBエンジニアの皆様、ぜひこの機会を逃さずご参加ください! 私も登壇します! 詳細は弊社Webサイトよりご確認ください。

  さて、これまではHadoopの基本機能であるMapReduceフレームワークのみを使ってツイートの分析を行ってきました。具体的にはツイートを単語ごとに区切り(形態素解析をし)、区切った単語や使われているハッシュタグを数え、件数を降順で並べてランキングしました。これだけでも、分析した時期におけるツイートの傾向が何となくわかり、ふむふむといった気分になることができます。

 でも、これだけではちょっと物足りないですよね。何せ世間では「ビッグデータ」が花盛り。「○○を分析することで売上高が急上昇!」といった話の裏側が、単に件数を数えていました、であることはほとんどないでしょう。データの整形・集計を行った先にどんな知見を得ることができるのか。そのための武器となるのが、今回使ってみるMahout(マハウトと読みます)です。 

 Mahoutを一言で説明すると、「機械学習のアルゴリズムが詰まったJavaのライブラリ」です。とはいっても、「で、機械学習ってなに?」という疑問がすぐにわくことでしょう。では機械学習とは、なんて話を始めると、本題(Twitterの内容を分析する!)からどんどんずれていってしまうので、主な「Mahoutでできること」をざっくりと紹介しましょう。

 Mahoutで出来ることは大きく分けて3つあります。まず一つ目は「レコメンド」。これはある一つのもの(商品など)を選ぶと、そのものと性質が似ている別のものを選び出してくれる機能です。Amazonなどのネットショッピングにある「おすすめ」機能としておなじみですね。

図1: レコメンド
図1: レコメンド

 二つ目は「クラスタリング」と呼ばれる機能です。これは、多数のものの集まりを、それぞれが持つ様々な特徴を元にグループ分けする機能です。クラスタリングを使うと、雑多なものの集まりで、一見してどのようにグループ分けして良いのかわからないような集合をうまくグループ分けすることができます。

図2: クラスタリング
図2: クラスタリング

 三つ目は「クラシフィケーション」という機能です。これは事前にサンプルとなるもののグループ分けを行いそのグループの特徴を整理しておき、次にグループ分けが不明なものがやってきた際に、その特徴からどのグループに所属するのかを判定する機能です。メールサーバのスパムフィルタなどに使われています。あらかじめスパムメールの特徴を学習しておき、新たなメールがスパムかどうかを判断するという仕組みですね。

図3: クラシフィケーション
図3: クラシフィケーション

 さて、ここまでHadoopの話が一切出てきていませんが、MahoutとHadoopとの関係はどのようになっているのでしょうか。Mahoutは元々、Apache Luceneというテキスト全文検索エンジンを作成するプロジェクトで生まれたものです。Luceneの成果の中で、機械学習に関するものがMahoutというサブプロジェクトとして分離し、それがApacheのトップレベルプロジェクトに昇格しました。一方、Hadoopも同じく、Luceneプロジェクトの中のNutchというWeb検索エンジンのサブプロジェクトから派生したものです。HadoopとMahoutはいわば兄弟なのですね。

 もちろん、単に出自が同じだというだけではありません。Mahoutが扱う機械学習には大量の演算処理が必要となるものが多々あります。また、大量のデータを分析する必要がある用途に使われることが想定されています。「大量のデータ X 大量の演算処理」、これはまさしくHadoopが得意とする領域です。そのためMahoutにはHadoopを使用して処理がこなせるよう、MapReduceを使って処理が書かれたものが多くあります。またMahoutの各種機能を実行することができるランチャースクリプトも、自分の環境でHadoopが動作しているか否かを判別し、Hadoopが動いていれば自動的にHadoop上で処理を実行してくれる機能を持っています。

 このように、HadoopとMahoutを連携させることで、ビッグデータの分析が手軽に行えるようになるのです。ちなみに、「Mahout」とはヒンズー語で「象使い」を表す単語です。象(Hadoop)をうまく使いこなし、ビッグデータの分析の旅へと出て行きましょう。

次のページ
Mahoutを使ってツイートをクラスタリング!

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
HadoopでTwitterを分析してみた連載記事一覧

もっと読む

この記事の著者

平間大輔(ヒラマダイスケ)

株式会社インサイトテクノロジー 
ビッグデータ・ソリューション開発部 外資系ITアウトソーシング会社を経て2011年にインサイトテクノロジー入社。
Oracle大好き、SQLのコーディング大好き人間だったが、気づけばSSD, InfiniBand, Hadoopといった旬のハー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/4727 2013/04/24 00:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング