表題の通りなのですが、私が作ったB.LEAGUEデータ分析用Rパッケージ『bleaguer』のデータ更新を、先日行った2021-22レギュラーシーズン、ポストシーズンのデータを反映を以って終了することにしました(ちなみに『ビーリーガー』じゃなくて『ビーリーグアール』と読みます。)
オフシーズンの宿題のひとつ、『bleaguerのデータをアップデートする』が終わりました。2021-22のポストシーズンまでのデータが反映されています。https://t.co/YaHsQC2MI9
— Rintaro Masuda 増田林太郎 (@rintaromasuda) 2022年5月31日
2021-22のデータも、延長の表記が"EX"から"OT"に変わっていたりしてマイナーな対応が必要だったり、4Qのデータが欠損しているゲームが2試合ほどあったりしたのですが、いずれにせよ(多分)すべてのゲームのデータをスクレイピングすることが出来ました。
bleaguerを公開したのは2019年の1月なので、約3年半ほど開発・保守・データ更新をしていたことになります。公開は2019年ですが、データ自体は初年度分(2016-17)から2021-22まで6シーズン分のデータが入っております。
元々は自分が趣味でやってるデータ分析作業を楽にする為に自分用に作ったパッケージでしたが、作っているうちに「いつかどっかの大学生が研究用にでも使ってくれたりして」なんて考えも出てきましたし、実際にそのような用途でご利用頂いたこともありました。それは個人的にはとても嬉しい経験でした。ありがとうございます。
データ更新を終了する理由
データ更新を2021-22シーズンで終了する理由ですが、まず一つ目の理由は今オフシーズンにBリーグサイトのリニューアルが予定されている事です。
2022-23シーズン、B.LEAGUE公式サイトがリニューアル✨#Bリーグ をもっと知り、好きになっていただけるよう、全ての方に楽しんでいただけるサイトに生まれ変わります。
— B.LEAGUE(Bリーグ) (@B_LEAGUE) 2022年5月9日
✅全体のデザインを刷新
✅試合日程・結果を分かり易く
✅発信情報やコンテンツのバリエーションを拡充
2022年9月リリース予定
スクレイピングは相手のページ変更にひたすら対応する必要がある作業です。上述の件も含めて、これまでの3年半でもいくつかのマイナーチェンジに対応してきたのですが、今度のリニューアルはちょっと大きな変更だと予想しております。それに対応する時間もモチベーションもないだろうというのがまず一つ目の理由です。*1
二つ目の理由ですが、もうこの作業からプログラミングの知識、技術の観点において学べる事が少なくなってきたという事です。正直Rのパッケージ作り方どころか、当初はRもそんなに使ったことがありませんでした。スクレイピングもやりこんだ事もありませんでしたし、Dockerを使った事もなかったですね。そう考えるとこの活動を通して随分と色々な事を学べました。自分で始めたことですが、とても勉強になり感謝の気持ちです。
プログラミングではなくバスケのデータという観点においても、Bリーグさんが提供してくれるデータが変わらない以上、そろそろそこから得られるものというか、面白いと感じられることが少なくなりつつありました。Play by Playなんかをこねくり回してアドバンスドスタッツやそれに類するものを作り出したりして、そういうときが一番楽しかったのですが、自分の中ではそういう活動もひと段落ついたかなという気持ちです。*2
三つ目の理由は、単純に2022-23シーズン中はちょっとプライベートが忙しくなりそうだという事です。
もちろんこれからも変わらずバスケファンですし、これからも変わらずソフトウェアエンジニアなので、例えばBリーグのデータプラットフォームが変更されて新しい事が出来るようになったとか、何かバスケ関連で面白いソフトウェアのアイデアが思いついたとか、そういう事があればまた新しい活動をしようという気持ちはあります。モチベーションが刺激されるような何かがあるか、それにすべてがかかってますね。それとは別に、いつかNBAみたいにデータがAPIで取得可能になったりしたら、サンプルプログラムの作成なんかでエコシステムの拡大に協力できればとも思っています。
以上です。何かの縁でbleaguerを目にしてくださった皆様、ありがとうございました。
参照
以下がbleaguer関連のコードの全てです。私なんかの作品でも誰かしらの勉強になったり参考になったりするかもしれないので、こちらにリンクを置いておきます。*3
- bleaguer自体のコード(Rのパッケージを成すコードと設定ファイル、パッケージのテストコード含む)
- bleaguerのデータ部分(Bリーグのデータが入ったCSVファイル)
- bleaguerのデータを更新する為のスクレイピングのコード(環境設定の為のDockerの設定ファイルを含む)
- bleaguerを使って分析をしているコードの例
*1:余談ですが、データをほぼ即日反映させていたバスナビDBさんは本当に凄いです。私は最初は毎週データ更新をかけてましたが、月一になり、隔月になり、最後はシーズンに2回とかになってました。スクレイピングはコマンドひとつで自動なのにも関わらずです(笑)
*2:これも余談ですが、ここは一部のバスケファンはBリーグさんに期待している部分のはずです。既にあるデータの組み合わせで作り出せるアドバンスドスタッツは勿体ないのでファンが普通に見られるようにした方がいいと思いますし、既に計測しているのにも関わらずまだ見られないものがあるなら(いや、あるよね?)早く見られるようにしたいですね。リニューアル、その後の改善サイクルまで含めて期待しています。
*3:こうやって公開したものから学びあったり、協力しあったりするのが、ソフトウェアエンジニア的世界観の美しさだと信じています。