長時間労働は、人間に知恵を授ける。2016電通、超オトクで、一回行くだけでパワハラとセクハラと過労死と長時間労働とサビ残と面従腹背の聖地が巡礼できる。Fujisakiお久しぶりです。久々にグッとくるアニメがあって紹介したくなったので書きます。あにめ〜しょん」で一人で相当頑張ってた「げそいくお」さんが殆どの部分1を担当した、「美少女モバゲー」というスマホ用美少女ゲームポータルのPVです。(サービス終了につき削除されたので、https://www.youtube.com/watch?v=NSaYGRd-i5kから転載)この手のPVは殆ど見ないのですが、ハッカドール7話の元ネタという事で見てみました。美少女ゲームポータルの「時間軸方向に普遍的な」PVさて、このPVは美少女ゲームポータルの宣伝用のビデオです。普通に考えると、かわいい美少女がたくさんいるよ!という所を宣伝する事になります。すると、普通はこうなります:遊べるゲームの可愛い美少女キャラクターやタイトル名を具体的にたくさん載せてこれでもか!これでもか!お前はこのキャラどうや?あのキャラはどうや?という感じです。ソシャゲーのCMとかエロゲーのOPとかもそういった所があります。エロゲーOPでは名前が、ソシャゲのCMだとさらにCVがついてることが多いですね。「その手の中」篇これはこれで具体的にユーザーに「商品のスペック」を提示できるので、悪くはありません。一方で、こういった表現は露骨な「美少女カタログ」のように見えてきて正直すこし「引く」のが否定できないと2、「オタクの嫁は三ヶ月で変わる」という言葉で代表されるような現代の個々のコンテンツの猛烈な消費速度の下ではすぐ陳腐化してしまう事が避けられません。「モバミちゃんPV」はどうか。美少女モバゲーの「たくさんの美少女ゲームで遊べるよ!」というセールスポイントを、主人公であるモバミちゃんが、スマホから飛び出した美少女たちと一緒に元気に遊びまくることで余すこと無く表現しきっているのです!色々な職業や属性の、「記号化」された美少女たちが入れ替わり立ち代わり出てくることで、華やかさや賑やかさと同時に、時間軸方向の普遍性を獲得しています。言い方を変えると、このPVは2014年に公開されたもので、今公開されているゲームはたぶん当時とは異なるでしょう。その当時のラインナップのキャラクタをそのままPVで使っていたら、そのPVは今見ると「古いな」と思えるものになっているかもしれません。この「モバミちゃんPV」では「アイドル」「獣耳さん」「メイド」「ギタリスト」といったもう少し抽象的なレベルに持ち上げることで、今見ても遜色ないPVになっています。ような「消費するオタク⇔消費される美少女」という非対称性な視線を意識させることなく、一緒に仲良く遊ぶさわやかで楽しい映像に仕上がっています。Hello!」「なりたい自分になろう」という前向きな歌詞があれば、「カタログ」というよりは「モバミちゃんの部活体験」とでも表現できそうな趣の物語を感じさせてワクワクしてしまいます。モバミちゃんの笑顔が若干顔に張り付いてる感じに見えるのはすこし気になりますが、とてもいい映像です。いやはや、良いもの見せてもらいました。世の中はどこに凄いアニメが転がってるのか分からないですね。FujisakiSATソルバーを使ってBrainfuckのプログラムを実行するというネタのLTです。[全画面/表示されない場合]詳しくはgithubのリポジトリへ。Fujisakiがっこうぐらし!のOPのフレーズ「ここには夢がちゃんとある」の時に起こる弾幕、「※希望はありません」がどういうふうに生まれてきたのか、観察してみました。動画の弾幕は歌詞の内容を元にした「空耳」であることが多く、歌詞には直接出てこないフレーズであるこの弾幕は面白い存在だと思います。これは今日やったハッカソンでやったことのまとめで、使ったソースコードとデータ一式はこちらにあります。正規化されたレーベンシュタイン距離を使って適当にクラスタリング似ているコメント同士でも1000コメント以上離れたコメントは別グループに分け、グループ同士をエッジで接続しました。書かれているコメントを真似して書くコメントと、独立に思いついて偶然にたコメントを区別するためです。「※希望はありません」は最初からヒットした訳ではなく、一回目はそのままフォロワが無く消滅。2万コメント後に復活して細々続き、4日目にしてなぜか大ヒット。少なくなるタイミングもあるコメントは1000件のキューであることを考えると、待ち行列的な混雑の揺らぎみたいなものだと考えていいのだろうか?初期は「夢がちゃんとある(〜とは言ってない)」のような従来的な歌詞に基づいたコメントが多いその後も継続的に出現するが、「※希望はありません」と比べると相対的に弱くなる「※ただし希望は無い」などの派生系コメントは本家のヒット後に出現しかしフォロワーはなく消え、暫くたつとまた似たような「※(希望と救いは)ないです」みたいなのが発生してくる。独立に何度も発生してる。おなじ「まんがタイムきらら」作品が元ネタの「夢もキボーもありゃしない」系コメントも独立に散発的に出現しているなぜ4日目に大ヒットしたのか?よく見ると4日目、07/12はGoogleTrendでの最大ピークと一致している。大ヒットの原因であるという憶測はできるが、これだけでは証拠が弱すぎる。単なる偶然かもしれない。2話こちらです一話の流行を受けて「※希望はありません」は最初から大人気おまけ「わかば*ガール」1話わかば*ガールの今季一番アレな弾幕「TNP鳴らして」も調べました。al.[2011])論文を発見して、面白そうだなぁと思ったので(小学生並みの感想)、ニコニコデータセットに適応してやってみました。明日、日曜日(4/26)に「ニコニコ超会議」内の「ニコつく」でサークルの一つとして展示します。この虫野郎」みたいな感じで相互に関連するタグが付けられますよね。このタグ同士の関連をネットワークとして可視化したら、ニコニコ動画の中でどんな概念同士がリンクしてるのかなー、とか、詳しくないジャンル2でどんなワードが流行っているのかなー、とかが一目で把握できそうです。「同じ動画に付けられている回数(共起回数)」としたグラフ(ネットワーク図)を作り、可視化してみました。graph(髪の毛もじゃもじゃグラフ)」になってしまいます。ノードが1万4000のグラフを可視化した結果がこんな感じだそうです。うーむ、とてもじゃないけど、人間には読めない図です。今回は15万タグを対象としたので、この10倍ほどの頂点とエッジがあります。この問題に対処するために、可視化する前にタグを階層的にまとめるクラスタリングを行います。「ぽいぽい教」や「金剛」タグをまとめて「艦隊これくしょん」クラスタを作り、さらに「艦隊これくしょん」と「ご注文はうさぎですか?」や「きんいろモザイク」とまとめて「アニメ」クラスタを作るわけです。その状態で可視化を行えば、先ほどの図のように「ゲーム」「音楽」「アニメ」みたいなざっくりとした関係の図が出来上がります。その纏めた「アニメ」クラスターの中身もダブルクリックすれば見ることができます。データセットはそこまで最近のデータはないので、例として2011年データから「IS(インフィニットストラトス)」のクラスタを持ってきました。わたし自身はこのアニメを見てないのであまり詳しくないのですが、一時期エースコンバットとのMADが流行っていたのと、(キャラ名)党っていうタグでお気に入りのキャラクタを示す文化があるのがわかります。今回の売りは、この集計を「その場」で行っていることです。[2009]など可視化は行われているのですが、基本的には「事前に」集計しておいて、それを可視化しています。今回のシステムでは、表示するたびに毎回、15万ノード+200万エッジの大規模なグラフを、クラスタリングしつつその場で可視化してしまいます。かかる時間はさくらのVPS2Gのような非力なマシン1台でも2秒以下です。今回これをやった本心としては「データの分析をして知識をマイニングしたい!」とかよりは「この超高速なクラスタリングアルゴリズムを使ってみたかった」という感じなので、実際にこのソフトウェアから有益な知識が得られるかどうかは微妙です。客観的評価とかもとくにしてないし、まぁそのへんはご愛嬌。今回のシステムのもう一つの売りは、高速性を活かしてインタラクティブに集計期間を変更して好きな時期のデータをその場で可視化できることです。上のバーを左右に動かすことで、時間を行き来しながらネットワークの様子を可視化できます3。初音ミクの居ない頃のニコニコ動画たとえば、初音ミクはニコニコ動画文化を象徴するものだと言っていいと思うのですが、できた当時の2007年すぐには初音ミクはありません。2007年の最初期のデータで可視化すると初音ミクがなかったころのニコニコ動画が見えます。最近はもう見なくなったものもちらほらありますが4、今でも人気な作品も多いですね。「涼宮ハルヒの憂鬱」はアニメなのにアニメクラスタに入っていませんが、このような人気な作品はそれ自体が大きなコミュニティを形成しているので、独立して一個のクラスタになることがよくあります。「ヘタリア」みたいな腐女子向け作品がちょくちょく独立してますが、腐女子向け作品は「アニメ」「ゲーム」タグと同時につかない動画が多いのが原因みたいです。時間を行き来しながら見ると、時事ニュースによるその時の流行タグも自然と浮上してきます。2011年4月の画面を見てみましょう。一ヶ月弱前にあった地震を扱った動画がたくさん投稿されていたことがわかります。ちなみに中はほとんど政治的な動画で、みんな大好き「あいさつの魔法。」は「エンターテインメント」の中に入ってます。昔の流行の思い出に浸るもよし、新規ジャンル開拓に使うもよし、まぁなんか暇つぶしにご活用ください。彼らはバイオインフォマティクスで日々生まれる膨大なデータを素早く可視化するために使っていますが、これをニコニコ動画に適応したらどうなるかなーと考えた所、こんな感じになりました。ソースコードソースコードはこちらに置いてあります。ledyba/NicoGraph結果を再現するためのプログラムが全部置いてあるので、あなたも自分のサーバで動かすことができます。データはNIIのサイトからダウンロードしてきてください。Methodの実装はゼロから書き起こした物を使っています。元の実装よりも少し制限がキツい(エッジの重みがintのみ)いのですが、その分だけ頑張って高速化して、だいたい3倍ぐらい速いです。多くのタグを一度にまとめてしまって、部分的に一部のクラスタ以下がHair-ballになって破綻することが稀によくあります。実装がマルチスレッドになってないので本当に何人も同時にアクセスするとサーバが沈黙します。優しくしてあげてください。!データがいまいち古い!ドワンゴ氏〜〜〜〜最新のデータくだされ〜〜〜〜〜〜〜〜〜他のデータでもやってみたい?もしも、「ニコニコデータセットじゃなくてウチのデータセットでもやってみたいんだけど...」という方が居た場合はご相談ください。本当に有益な情報をマイニングしようとするとここから更に何段階か努力しないといけないとおもいますが...。Fujisakiだいぶ前にJSで実装したcrypt関数を紹介します。crypt関数はパスワードを暗号化するための関数です。GitHubPerlではビルトインで使えます。実際に使ってみるとこんな感じです。bytes)までしか使えません。wlCoUbJ6h11vYsaltとkey、どちらが変わっても出力結果が変わります。パスワード認証をするときはユーザーのパスワードをそのまま保存するのではなく、このような関数でハッシュにしてから保存しなさいというのはよく言われていますが、さらにその際にユーザーの入力をそのままハッシュに掛けるとハッシュ表が盗まれた時にレインボー攻撃と呼ばれる攻撃ができてしまうので、keyにユーザーごとに異なるsalt(塩)も加えてからハッシュにかける...というのが典型的な使い方です(受け売りです)。2chのトリップはこのcrypt関数を使っており、この(ledyba.org)サイトに設置してあったCGI「2chトリップ生成システム」をCGIからJSへ移植するために必要になったので書いたというわけです。Apacheから流行りのnginxに移行したのですが、nginxではCGIを動かすのがかなり面倒臭くなっており、JSで書きなおすのが一番楽そうだったのでそうしました。DomainのcryptのCでの実装があったので、それをほぼそのまま移植しています。暗号は理論だけでなく実装も注意深く行う必要があり、たとえばキーによって処理時間が変わるような実装だとその差を使ったタイミング攻撃ができたりします。この実装は私が適当に作ったものなので、2chのトリップのようなどうでもいいアプリならともかく、実際に暗号に用いる場合はもっと有名で枯れた実装を使うのをお勧めします。