📚

週刊少年誌のデータで教材を作ったら文化庁のコンテストで入賞した

2022/02/20に公開1

https://twitter.com/chomado/status/1492729452895227904

作ったもの

概要

1970年7月27日から2017年7月6日までの約47年間分の四大少年誌(週刊少年サンデー,週刊少年ジャンプ,週刊少年チャンピオン,週刊少年マガジン)の掲載データを使ってデータビジュアライゼーションについて学ぶWebサイトを作成しました.

https://kakeami.github.io/viz-madb/

データは文化庁,メディア芸術データベース(MADB Lab)のデータセットを用いました.MADB Labは,メディア芸術作品に関するデータをより広く活用するためのウェブサイトです.詳細は公式リポジトリをご参照ください.

madb

全22種類のビジュアライゼーション手法をClaus O. Wilke, Fundamentals of Data Visualizationの基準に従って分類し,全ての手法についてマンガ掲載データで作図例を作成しました.

https://youtu.be/VOzYQqis8q4

動機

データビジュアライゼーション(に限らず,データ分析技術一般)の学習において,分析対象のデータに興味を持つことは非常に重要です.なぜなら,作業中に何度もデータを確認し,その内容を吟味・考察する必要があるためです.例えば,探索的分析において外れ値を確認するとき,モデリングの成否に関して原因を追求するときなど.

日本は国民の5割が年一冊以上マンガを読むマンガ大国です.マンガデータを用いた教材なら,興味を維持しつつ学習を進めることができるのではないかと思いました.

実装

岡崎先生の機械学習帳を参考に,Jupyter Labで作成したNotebookをJupyter Bookで変換しました.ビジュアライゼーションに関してはPlotlyを採用することで,インタラクティブな分析が可能になりました.

https://youtu.be/PGgPYsh1dhY

苦労したこと

Plotlyの作図結果がJupyter Bookに表示されない

一応公式サイトに_config.ymlの設定方法が掲載されていますが,これだけではうまく動きませんでした.具体的には,セルを一回だけ実行した図はBookに反映されるが,二回目以降は空白になってしまうという事象に悩まされました[1]

試行錯誤を重ねた結果,下記のようにコンテナを構築した上で

FROM jupyter/scipy-notebook

RUN conda install "jupyterlab>=3" "ipywidgets>=7.6" && \
    conda install -c conda-forge -c plotly jupyter-dash

fig.show()でRendererとしてplotly_mimetype+notebookを指定することで,二回以上セルを実行してもBookに反映できることがわかりました.チュートリアルでは,以下のようなshow_fig()関数を定義しました.

RENDERER = 'plotly_mimetype+notebook'
def show_fig(fig):
    """Jupyter Bookでも表示可能なようRendererを指定"""
    fig.show(renderer=RENDERER)

とにかく作業時間がない

昨年第二子が生まれたため,まともな時間に作業はできませんでした.

  • 早朝4時から6時の2時間
  • 休日の長男の昼寝中の1時間

を使って[2]少しずつ準備を進めました[3]

まあ実際には上記の時間をフルで使えることはなく,寝坊したり,起きた子供を寝かしつけたり,社畜として働いたりしていました.

感想

マンガ家は働きすぎ

下図は,MADB Lab v1.0に格納されているマンガ家のうち,四大少年誌への掲載話数が最も多かった20名の年間掲載話数を表すヒートマップです.色が明るいほど話数が多いことを表します.

heatmap
マンガと学ぶデータビジュアライゼーション,2.ヒートマップより抜粋

まず週刊連載という激務を10年以上継続しているマンガ家がたくさんいるのに驚きますが,一際目を引くのは水島新司先生です.1976年にはなんと合計143話週刊誌に掲載したと記録されています.あれ,一年間っておよそ52週では.

前処理をミスったかと思ってデータを確かめた(こういう作業にストレスを感じないのがマンガデータの良いところです)のですが,どうやら週刊連載を三つ掛け持ちしていたようです.

それでもまだ信じられないので,Wikipediaも確認したのですが,どうやら本当らしいです.本当か…?

掲載位置にマンガ作品の特徴が出る?

下図は,MADB Lab v1.0に格納されているマンガ作品のうち,四大少年誌で最も多くの話数を掲載した10作品の雑誌中の掲載位置の分布を表した箱ひげ図です.掲載位置は,当該マンガ作品の開始ページ数を,当該雑誌の最後のマンガ作品の開始ページ数で割った指標です[4].0に近づくほど巻頭に付近に,1に近いほど巻末付近に掲載された作品を表します.

box
マンガと学ぶデータビジュアライゼーション,5.箱ひげ図より抜粋

各雑誌の看板作品[5]ほど巻頭に掲載されやすいことがわかります.また,こち亀やジョジョ等,固定ファンの地盤が強いベテラン作品は雑誌後半に掲載されることがあるようです.

結局メジャーな手法が使いやすい

いろいろなデータビジュアライゼーション手法を作図してみたのですが,やっぱりメジャーな手法[6]が使いやすいと感じました.

おわりに

今後は下記を考えています.

  • 全手法に練習問題を作成
  • Google Colabとの連携
  • 英訳やKaggle投稿による英語圏への発信
  • MADB Labのマンガ以外のデータとの連携
  • SNSや検索データとの連携
  • データビジュアライゼーション以外のチュートリアル(前処理,統計,機械学習)

完全に余談ですが,副賞でアマギフを頂きましたので,業界に還元すべくマンガを買おうと思っています[7]舞妓さんちのまかないさん惑星のさみだれは確定しているのですが,それ以外でオススメがあればご教示頂けますと幸いです.

https://github.com/kakeami/contact/issues/1

脚注
  1. そもそもセルの実行回数が原因である,という点に気づくまでにしばらく時間がかかりました.もしかしてキャッシュの問題…?よくわかっていません. ↩︎

  2. そして有給休暇を使って ↩︎

  3. この記事の投稿が遅れたのものそのためです. ↩︎

  4. MADB Labには開始ページ数だけでなく終了ページ数も格納されていますが,後者は欠測や異常値が多かったため,開始ページだけから掲載位置を評価しました.詳細はマンガと学ぶデータビジュアライゼーション - 前処理をご参照ください. ↩︎

  5. このレベルになるとどれも看板作品ですが,特に雑誌を代表するような作品という意味で用いています. ↩︎

  6. 棒グラフとか,折れ線グラフとか,散布図とか,ヒストグラムとか.私の技術不足であることは否めません. ↩︎

  7. 読みたいだけ ↩︎

GitHubで編集を提案

Discussion

KakeamiKakeami

僭越ながら,第3回メディア芸術データベース活用コンテストの審査員を務めさせて頂くことになりました.どんな作品に出会えるか,今からとても楽しみです!第2回のわたしの提出作品に反応してくださった皆さま,ありがとうございました.

https://www.mediaarts-db-contest.com/