読者です 読者をやめる 読者になる 読者になる

日経電子版xクックパッド データハッカソンの開催報告

検索・編成部の兼山です。

3/7に日経電子版xクックパッド データハッカソンが開催されました。

今回はデータハッカソンの報告をさせていただこうと思います。

開催概要: 日経電子版×クックパッド データハッカソン for students

f:id:code46:20150307094043j:plain

公開されたデータ

日経電子版

  • 記事テキストデータ
  • 紙面画像データ
  • 株式数値データ
  • 他にも多くのデータにアクセスできました

クックパッド

  • レシピデータ
  • 献立データ
  • 検索ログデータ(1ヶ月分)

参加してくれた学生

  • 18人
  • 人気だったツール: R, Python, word2vec

成果

7チームに分かれて取り組んで頂きました。

3つの賞を設けた都合、3つプロジェクトを紹介させていただきます。

ハッカソン実施後に両社の主催者で話しましたが、どのチームも我々の期待値を超えていて大変面白かったです。

最優秀賞

食材のつながりについての分析:

このチームは食材のつながりについて分析した結果を可視化して発表してくれました。

「食材の組み合わせは無限にあるのに一部だけがレシピになっている。」

この点に注目して、以下の様な仮説から「あまり知られていないおいしい」を発見しようというプロジェクトでした。

  • レシピが多くある組み合わせ(人参に対してじゃがいもなど)はおいしい
  • レシピが少なくとも、そのレシピが人気であれば、それは「あまり知られていないおいしい」なのではないか。

着眼点が興味深く、可視化の手法もワクワクするものでとても勉強になりました。

日経電子版賞

日経のデータとクックパッドのデータの相関について分析:

このチームは日経の記事データとクックパッドの検索ログデータなどを組み合わせて、

いくつかの対象を決めて、世間の関心を記事や検索ボリュームから確認する分析に取り組みました。

全く違うデータに接点などあるのかなと思っていたのですが、

コーヒーとか話題の食材などいくつかは存在しているそうで着眼点自体が既に興味深かったです。

クックパッド賞

代替食材の獲得:

誰かが書いたレシピを使って料理を作るとき、全くその通りに作る人は意外と少ないようです。

この際、食材Aが食材Bで代用できるなどの知識が豊富にあると、美味しさを損なわずに家にある食材で料理ができたりします。

この代用食材の知識を言語処理やクックパッドのデータを組み合わせて獲得するプロジェクトでした。

当日公開されたデータの中でも「クックパッドにしか存在しないデータ」に注目し有用な知識を引き出すことに挑戦されていて、

評価方法なども納得性の高いものでとても勉強になりました。

当日の気付き

slack連絡網:

開催週にslackを開設して、事前に連絡網を構築しました。

チームを決めたり自由に話してもらえればと思っていたのですが、あまり使われませんでした。

しかし当日に全体向けのアナウンスやチームを超えたサンプルコードのやりとり、 チーム内での相談やコードのやりとりに活用されていました。

R, Pythonが人気、jqが便利:

R, Pythonの勢いを感じました。共通言語があるのはとても良いことだと思います。

JSONデータからフィールドをしぼったり、データを小さくしたり整形したりするのにjqが便利でした。

まとめ

当日の様子やアンケートなどからほとんど全員の学生に楽しんでもらえたと感じ安心しました。

開催するかどうか検討していた時、

「1日(作業は半日以下)のハッカソンで大きなデータを十分に扱えるのか。当日楽しんでもらえるのか。」という心配があり楽しんでもらえる確率を上げる工夫を考えました。

  • データのクレンジング
    • フィールドごとに取りうる値をまとめたり、例外的なデータは思い切って消すなど
  • データのサンプリング
    • 全部入りと少ボリューム版をあらかじめ用意
  • サンプルコードを準備
    • 参加者の普段使うツールをアンケートで聞いて使われそうな言語で書く
  • リハーサルと称して社内のエンジニアが実際に取組む
    • 問題点の洗い出しに有効

また、短い期間でのハッカソンを企画する場合、簡単な概要のみでも開催前に使えるデータについてアナウンスして、

学生の皆さんに想像をふくらませてもらうのが必須です。

今回は参加者皆さんが好奇心を持って取り組んでくれてとても楽しかったです。

協力してくださった方々、参加してくださった方々ありがとうございました。

@yoshiori、有賀(@chezou)、原島、星(@kani_b)、青木(@mineroaoki)、小室、兼山

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/