Stay Homeで『相棒』全部観た(おまけ:nagisa & nlplotで可視化)
今年4月にKDDIとテレビ朝日が設立したTELASA株式会社が運営する動画配信サービス「TELASA」にて、2000年のpre seasonから2019年の最新作まで『相棒』全シーズンの動画が配信されています。
『相棒』はたびたび夕方に再放送され、「AbemaTV」「Amazon Prime Video」などで一部シーズンは配信されました/されていますが、全てのシーズンが一挙に配信されるのは私の知る限り初めてです。昔から生粋の『相棒』ファンだったこと、かつ新型コロナウイルス感染症の影響で在宅が推奨されていることから、この機に見返すことに決めました。
せっかくなので、最後に『相棒』データを自然言語処理した結果を可視化しておきます。
データ収集
誰でも閲覧可能な各動画の概要欄を収集して、次のようなcsv形式で保存しておきます。
第1話 アレスの進撃/右京(水谷豊)が突然、消息を絶って1週間。亘(反町隆史)は、何者かによって海に流された右京のスマートフォンが秋田に流れついたことから、潮流を計算し、北海道付近に浮かぶ“天礼島”にあたりをつける。すると亘は、島に渡って早々、男が若い女性を連れ去ろうとしている現場に遭遇。何とか拉致を防ぐが、男は姿を消してしまう。
各シーズンの動画数は次の通りでした。
df.groupby('seasons').count()['vols'].plot.bar()
日本語の自然言語処理
日本語の文章をサクッと分かち書きして可視化するために、今回は次の2つのライブラリを利用しました。
- 形態素解析ライブラリ「nagisa」 https://github.com/taishi-i/nagisa
- 可視化ライブラリ「nlplot」 https://github.com/takapy0210/nlplot
前者は以前にブログで紹介したこともあるライブラリです。文字単位の双方向LSTMを採用しておりURLなどに頑健な点、人名などの分かち書きしたくない単語指定が手軽な点から採用を決めました。
後者は自然言語処理の基本的な可視化を手軽にできるようにしたライブラリです。基本的な描画はplotlyを用いており、Notebook上でインタラクティブにグラフを操作できます。
現状のpipで入るバージョンにはWord Cloudの可視化に不具合があります。PRを出して修正済なので、当面はgithubのmasterからインストールすると良いでしょう。
可視化
それでは可視化した結果を以下に示していきます。一覧の処理は、KaggleのNotebookを公開しました。
uni-gram
bi-gram
Tree Map
Word Cloud
Co-occurrence network
sunburst chart
「atmaCup#5 振り返り会」で「MLflow Tracking を用いた実験管理」について発表しました
人工知能学会2020@熊本のご飯まとめ
「atmaCup オンサイトデータコンペ#5」参加録 #atmaCup
「atmaCup オンサイトデータコンペ#5」*1に参加し、public 16位・private 27位*2でした。観測データを基にした2値分類タスクで、指標はPR-AUC*3でした。
途中から K_mat さん*4 とチームマージし、テーブルデータに対するニューラルネットワーク周りなど、大いに勉強になるコンペでした。
最後に選んだ2サブの概要を以下にまとめておきます。
Submission 1: Trust LB (public: 0.9137, private: 0.8595)
Submission 2: Trust CV (public: 0.8687, private: 0.7691)
Nishika「財務・非財務情報を活用した株主価値予測」コンペ2位でした
Jupyter Notebook の CSS 要素を編集する
Jupyter Notebook の CSS 要素を編集する方法に関するTipsです。IPython.core.display
を用いて、次のようにCSS要素を編集できます。
from IPython.core.display import display, HTML display(HTML("<style>.cm-s-ipython span.cm-comment { color: red; }</style>"))
こんな感じでcssを操作できますhttps://t.co/0AfVR6SWcT pic.twitter.com/EmF1tqreNm
— u++ (@upura0) May 15, 2020
CSSを当てるClass名については、ブラウザの開発者ツールなどで確認できます。
Kaggle Notebook も公開しています。編集ページと公開ページでClass名が異なるので、公開ページでは色が編集されていません。
公開ページでも色を変えたい場合は、公開ページのClass名の要素を変更する次のコードを実行しておくと良いでしょう。
display(HTML("<style>.highlight .c1 { color: red; }</style>"))