マイタン開発合宿@真鶴行ってきました

気がつけばもう三ヶ月以上前の出来事ではありますが、一応ご報告。
7/30〜8/1、マイニング探検会の開発合宿@真鶴に参加してました。

「マイタン」は図書館系(特に大学図書館系)の人が比較的多く、図書館関係者どころか出版社の中の人ですらないワタクシなどは異端中の異端なんですが、どういうわけかお声がかかったのでホイホイ参加させてもらっているのですが、毎回カルチャーの違いにとまどうことしきりです。この報告記は、そういう部外者が書いているので、ところどころとんでもないズレっぷりを発揮していると思いますが、まあそこら辺はニヤニヤしながらスルーしてください。

●マイニング探検会ってナニ?

マイニング探検会(マイタン) – 図書館の未来を探る勉強会 –

によれば、

…マイタンでは、狭義のマイニング技術(データマイニング、テキストマイニング)だけでなく、
マイニングを「利用者と膨大なデータを結びつけること」と広くとらえ、
Webサービスをプロデュースするのに必要となるさまざまな要素技術についても押さえていきます。

ということで、ネクストグループ・リッテル研究所 所長の清田氏を講師に迎え、講義&メンバーによる、現在興味関心を持っているテーマについて発表、ということを一年続けてきたわけです。

……のですが、やはり月に一度顔を合わせるだけではなかなか、自発的にあちこちでプロジェクトが立ち上がる、ということもなく、気がつけば一年経っていたという。

ここらで「マイタン発」の成果物を出すべく、主宰の岡本さんよりハッパ&提案ぶち上げとして、

  • 図書館総合展を発表の場に、なにかしらのアウトプットを出そう
  • 開発合宿をやろう

ということになったわけです。

●開発合宿の目的

「開発合宿」なるものはあちこちで行われており、カリカリのギークがひたすらノートPCに向かう、という光景が浮かぶのですが、今回は「どうやって図書館仕事の現場の人がエンジニアに現場発の意図を伝え、利用者の期待に応えるものを作ってもらうか」というのがテーマ。

ハイパーネットワーク2011ワークショップ

こちらで紹介されている、「共生プログラミング」を意識しているそうです。

# 今回の報告書くにあたって、
# あらためて「今なぜ共生プログラミングなのか?」を読んだけど、
# やっぱり、正直ピンとこなかったなあ。。
# 「計算機界隈こんなに簡単になっているんだから
# 自分で手ェ動かさなけりゃ先人に申し訳が立たない」
# というスタンスで生きてきた自分にとっては、
# ま、最初から噛み合わない議論なんだけど……。
# 「アジャイル」「ソフトウェアプロトタイピング」みたいなギーク語を
# スーツにもわかるように超訳しましたよ、ってことなのかな?

とはいえ、開発合宿、はSDをはじめた頃からいつかはやりたいのう、と思っていたところなので、これはチャンス、と思ってその場(合宿前のマイタン)で企画をでっちあげ(やや誇張あり)、まんまと一チーム立ち上げることに。

●初日

「俺CiNiiチーム(この時点では「俺Niiチーム」って言ってたけど、よく考えたらちょっとおかしいので「俺CiNiiチーム」に後日改称)」の日高・岡田・山田は電車のボックス席をキープして、東京駅からの車中、早くも議論モードに。ヒダカが(例によって)前日に泣きながら仕上げた「コンセプト図のような何か」と、事前にskypeのグループチャットの出力を叩き台に、わきあいあいwと。

[資料]さいしょの資料
システム概要(pdf)

真鶴の合宿会場にメンバーが揃い、各チームプレゼン開始。
我がチーム(ほぼ思い付きの「国文学論文サイト」の自動生成)は移動中の議論のテンションのまま、じゃあもうサイト作る準備を、ということで議論をさらに進めるが、話を煮詰める段階で、徐々に

  • 分類手法の追求
  • 手段はなんでもいいんで、とにかくサイトをカンタンに作りたい

という二つのテーマの折り合いがつかず、夕食後あたりから微妙なノッキングを起こしはじめる。
もう夜だし、方向性決めないとアブハチになるのう、ということでおとしどころを模索。文字どおり空中分解寸前のチームではありましたが、やはり分類の自動化、という部分はゆずれないので、「とにかく分類手法の実証実験」というラインでやりましょう、ということで強引に合意する

# なんだかんだ言って「マイニング探検会」の趣旨に
# 最も忠実なテーマを選んでしまったような

このテーマならば、やはりマイニング手法についてオーソリチーである清田先生を召喚すべきだろう、ということで、我がチームはここで四名、に。

この後、みんなでニコ生観たりしつつも手は動かしてたんだけど、なんかあんまり記憶がない。SVMLightのインスコ(正確にはAlgorighm::SVMLightのインスコ、だな)で清田先生の鮮やかな手つきに感動したりしてたような。山田さんはCiNii論文(のrdfファイル)大量ダウンロードをゴニョっていたはず。

●二日目

方向性はなんとか決定できたので、作業作業。主に清田先生のターン。SVMLightのPerlバインディングを使って、人間が仕分けた
・条件にマッチ(positive)する論文群
・条件にマッチしない(negative)論文群
から特徴を抜き出し(合間にMecabで形態素解析もかます)、「モデル」を作成(ここまでが学習(learn)モード)。次に
・なんだかよくわかってない論文群
を処理させて、スコアリングさせる(ここが仕分け(classify)モード)。
たしか、夕方くらいには完成していたはず。(は、はええ。。)

この間にニンゲン(岡田さん)が仕分けておいた論文群を喰わせて、処理。結果の解析は山田さんがやってくれた。結果を見るに、なかなか高性能じゃないの? ということで資料作成モードに。というわけで、夜からはずっと漏れのターン!

SVMについてはWeb上に大量の資料があるものの、言及されてるみなさんはどうやら学術クラスタに属しているようで書いてあることが難しすぎ。合宿までほぼ予備知識のなかったワタシは「ちょっと何言ってるかわかんないですけど(半笑い)」状態。チーム内で、「何をやるか?」についての議論が二転三転腸捻転した上での発表、なので、経過をアタマの中で一本道に整理して、さらに仕組みを理解した上で資料をまとめるのは半端なく苦労しました。

明け方には他のチームがじたばたしているのに余計なちょっかいw を出しつつも、一応資料完成。数時間寝落ち(結局三日間、「開発部屋」から一歩も出なかったような。ブラック企業か)。

●三日目

さすがに食欲がない。。が、気力でプレゼン。成果物、といっても地味なレポート一本なんで周囲の反応はいまひとつでしたが、個人的には非常に収穫の多い三日間でした。チームの四名はもちろん、主宰のARG岡本さん、アテンドのARGインターン三津石さんはじめ、皆さんに感謝感謝であります。

●おまけ1・その他の資料など

[資料]三日目の発表スライド

[資料]判定結果、のエクセルの生ファイル

svmresult(xlsxファイル)

●おまけ2 ・合宿で使用した主な機材・アプリ等

  • MacBookPro 15″ (early2011)/core i5 2.4GHz
  • iTerm2
  • Firefox
  • mi
  • InDesign CS4
  • skype(公式の連絡場所はfacebookだったんですが、メンバー内の延々としたやりとりはグループチャットがメインでした)
  • WiMAX端末(UD03SS)(行き帰りでは大活躍。真鶴では電波入らなかったけど。。)
  • iPhone 3GS
  • ドリップバッグ式のコーヒー(お湯はポットごと、宿の人にめぐんでもらった。時間を問わず、安価かつそこそこの品質のカフェインをキメられるのでおススメです)
  • ラムネ(ブドウ糖を補給。コストパフォーマンスを考えると森永ラムネが最適とのウワサ)
  • naxos music library(BGMに欠かせません。。)

関連してそうなエントリ

日高崇