きょうはJubatusカジュアルもくもく会 #1 Jubatusにまつわる何かを作る会に参加してきました。参加者にはもれなくJubatusのぬいぐるみが配られました。
今回はスタッフではなく、普通の参加者として参加しました。なお、会場提供はIIJさんでした。電源、ネットワーク環境、おやつや飲み物まで提供していただき、非常に快適にすごすことができました。ありがとうございました。8時間という長いようで短い時間でしたが、お昼や休憩も挟みつつ、みなさんもくもくとハックしていました。覚えているものだけになりますが、成果報告会では次のような発表がありました。
- 読売新聞の記事カテゴリ分類をしてみた
- 今風なC#クライアントを実装してJubatusから設定を取得できるようにしてみた
- Sumallyのデータでレコメンドを試してみた
- JubatusのRecommenderチュートリアルをGroovyで書いてみた
- jubatus_coreのRuby拡張を作ってみた(ruby-jubatus)
- jubatus-on-yarnを動かそうとしてみたけどうまくいかなかった
- StormでJubatusを使えるようにしようとしたけどうまくいかなかった
Jubatusの応用、拡張や他のソフトウェアとの連携など、挑戦的だったり、面白い発表が多かったと思います。
わたしは、Jubatusの特徴抽出プラグインをPythonでかけるようにするプラグインをむかし試作したので、それをブラッシュアップしようとしました。2013年の11月頃にPFIセミナーで発表しましたが、その後塩漬けしていたものです。きょうのもくもく会では調査に手一杯で肝心のブラッシュアップまでたどり着けませんでしたが、次のようなことをしていました。
- Jubatus 0.6.6のプラグインとプラグインのロード周りのソースコードを読んで、0.4系との違いを把握した
- バイナリ型のデータのサポート
- コアとサーバの分離
- 文字列型のデータからの柔軟な特徴抽出
- PythonのC APIのドキュメントを読んだ
- Boost.Pythonのドキュメントを読んだ
- Pythonプラグインの構成を大雑把に考えた
C++とPythonの両方向のやりとりの面倒をみてあげなければいけないところが一番難しそうです。実用レベルにするまでの道は長そうですが、当面は次のようなステップで一人もくもく会をしていければと考えています。
- まずは文字列型からの特徴抽出のみにしぼる
- jubatus_coreに含まれている特徴抽出と例外周りのコードをPythonから利用できるようにする(Python -> C++)
- それを利用したPythonスクリプトをロードして実行できるようにする(C++ -> Python)
Jubatusのぬいぐるみかわいい。