今私は小さな魚だけれど

ちょっぴり非日常な音楽を紹介するブログです

【プログラミング】NekoHacker主催のハッカソンイベント・ネコハッカソンに参加しました

Kawaii Future Rock*1ユニットのNekoHackerのハッカソンイベント・ネコハッカソンに参加しました。

toppamedia.com

ミュージシャン主催のハッカソンイベントといえばMOSAIC.WAVMOSAIC.Hackathonが思い出されますが、あれはミュージシャン側がメインで作るイベントでした。こういう形のイベントは私が知る限りでは始めてです。また、MOSAIC.Hackathonも私は行けなかったので、あの日のリベンジです。

当日の様子

ハッカソンにはいろいろ形態があると思いますが、当日の進行はこんな感じでした。

  1. 各参加者でアイデアを出す
  2. それぞれテーブルを回っていい企画に集まってチームを編成する
  3. チームごとに開発し、プレゼンする

普段の仕事で出会わないタイプのエンジニアが多かったです。あとベンチャー気質の参加者が多かったように思います。

実装した内容や反省点

私は @Capchii さんのアイデアを元にしたチームで、他にも @chanyou0311 さんや @sera1250 さんとともに「NekoHackerの曲をレコメンドするbot」の開発を行いました。

ざっくりというと、楽曲の歌詞とユーザーのツイートをMeCabとword2vecでベクトル化し、ユーザーのツイートと近い歌詞の曲をレコメンドするという仕組みです(他にもいろいろ工夫はありましたが)。当日は実装が簡単なTwitterbotとして提供しました。

  1. botアカウントへのリプライを30秒おきにポーリングして取得(cronでの定期実行処理が (スクリーンネーム, ツイートid) をFlaskサーバーに送信)
  2. リプライがあった場合はその人の直近200件のツイートを取得(FlaskのAPI
  3. 歌詞との距離を計算(FlaskのAPI
  4. おすすめの(距離の近い)楽曲と、それぞれの曲のスコアをグラフ化してリプライ(FlaskのAPI

データサイエンス担当とバックエンド担当に分かれ、自分はバックエンド担当側でした。

また「パフェ」「パへ」などの単語に反応するイースターエッグ的な機能も用意していました。単にレコメンドするだけだとプロモーションとして弱いので、もう少しレコメンド以外でも工夫できるんじゃないかと思います。

f:id:takeshi0406:20191006143106p:plain
このようなグラフも一緒に投稿するつもりでした

自分の反省点としては最後の時間少し手が空いてしまい、先にスライドを作っていたが、後から考えるとデータサイエンスチームから受け取るコード実行環境を整えるなど、もう少し良い動き方ができたかなと思います。

また、大きく分けて「①cronの定期実行処理」と「②レコメンドしてユーザーにリプライを返すためのAPI」があったのですが、②側は「[ツイート] -> 各楽曲のスコア」の処理を担当するようにして、①側で「Twitterとのインターフェイスになる処理全般」を担当したほうが良かったように思います(通信内容が大きくなるデメリットはあるもののプロトタイプ程度なら問題ないと思います)。そのため②部分を担当した @chanyou0311 さんの負荷が大きくなってしまったように思います。

あと他のチームの人がやってたように事前準備はしておくべきでした。どうぜAWSGCPを使ってシステムを組むのは目に見えているので、そこの負荷が減るだけでもアドバンテージになったはずなので。

他のチームもAR的なプロダクトや、プロモーションの企画もあったりしてとてもいい感じでした(内緒の内容が含まれるので紹介できないのですが…)。

とはいえ、これからも楽しいイベント企画があると思います。楽しみにしています。

*1:雑に説明するとポストハードコアにKawaii Future Bassの要素が入ったような感じ