下町データサイエンティストの日常

下町データサイエンティストの成果物

B'zの歌詞をPythonと機械学習で分析してみた 〜分析結果の公開について〜

1. 本Part概要

こんにちは。pira-ninoです。
前Partでは、B'zの歌詞の分析をするに至った経緯と分析概要について書きました。

pira-nino.hatenablog.com

本Partでは「データ入手と前処理」について書きたいところなのですが、その前にどうしても書かないといけないと思った「分析結果の公開(スクレイピング著作権)について」のお断りを書かせて頂きます。 ということで、本Partは分析について書いていないので読み飛ばして頂いても大丈夫です。

2. お断り

まず、スクレイピングについてです。 スクレイピングとは「ウェブサイトのHTMLから必要なデータを取得すること」を指します。
そこで問題になるのが、Webページから情報を取ってくることによる「著作権」の問題とWebページに入ることによる身元の証明とサーバーへの負荷を取り上げた「動産不法侵入」の2点が問題になります。

正直に言うと、ブログを書くにも関わらずこの辺の知識が圧倒的に欠けているので強くは言えないのですが、「データ分析や教育、引用等の認められた利用の範囲内であれば、スクレイピング行為自体は著作権法上認められた行為」で「諸々のルールに従う」ことが必要となります。 詳細は以下の資料が参考になるかと思います。

vaaaaaanquish.hatenablog.com www.itmedia.co.jp

「データ分析ってなんだよ」など色々理解しきれてないのが本音ですが、作者的には「これで商用利用する気もないし、最低限のことは確認した」ということを考慮していただければと思います。

次に、著作権についてです。
B'zは著作権に非常に厳しいことで知られています。(Mステの映像・ライブDVDの映像のyoutubeは即刻削除されます) そこで、「歌詞」という非常にナイーブな対象を扱うことに対してどこまで公開するかを1ファンとして悩みました。

以上を踏まえ作者としては・・・

  • スクレイピングのコードは参考URLを載せることで直接的な公開は避ける
  • 歌詞は「元のまま」では載せずに「加工後」のみの公開
  • 分析の結果は大丈夫そうな範囲で公開

を基本方針と致します。

1点目については、似たようなことをしているqiitaの記事がありましたので、そちらを参考にちょっと改造して頂ければと思います。

qiita.com

2点目については、前処理の過程をある程度お見せしたいので1曲のみの歌詞を元データはお見せせず、各前処理をすることによるBefore・Afterだけを示す予定です。
追記:やはり歌詞そのものは怪しいので、はてなく曲が察しできる状態での公開は避けました。

3点目については、単語の出現頻度やWord 2 Vecの分析結果などの「データ分析後」の結果については大丈夫そうな範囲で公開します。

3. 最後に

ここまで読んでいただきありがとうございます。
本Partでは、作者の分析の公開範囲の方針について書きました。
次Partからはようやく分析の本編に入って行きます。

pira-nino.hatenablog.com

B'zの歌詞をPythonと機械学習で分析してみた 〜イントロ編〜

1. 自己紹介

はじめましてpira-ninoです。
2018年4月に某社にデータサイエンティストとして新卒入社したピチピチの新米社員です。

学生時代は様々な企業のデータを機械学習を使って色々な提案をしてました。(単にパッケージを使うだけでなく、モデルの改良もしてました。) まぁそんな訳で、機械学習は最低限広く浅く知ってます。

最近は強化学習を勉強したりkaggleに取り組んだりしてます。Santenderコンペのleakは流石に頭を抱えましたね。。。

2. B'zの歌詞を分析してみた経緯

さて、本題のB'zの歌詞分析について「背景」と「分析概要」について書かせて頂きます。 背景は無駄に長文になったので、読み飛ばしても大丈夫です。

2.1 背景

新卒研修あるあるだと思うのですが、様々なバックグラウンドを持った新卒がいるが故に、ある程度余裕を持ってしまう人も出てしまいます。で、それが私であったという訳です。念の為にフォローしますと、弊社の研修は幅広い知識を身につけられる洗練された良い研修であると思います。

そこで、ちょっと余裕な間に「機械学習で何か目に見えるアウトプットを出したい」と思い何をやろうかと考えていました。

自分のスキルアップの為に非構造データ(POSデータのように綺麗なテーブル構造になっていないデータ)の扱いの勉強としてkaggleのいくつかのコンペのkernelをまとめながらネタ探しをしてました。

その最中「毎日テキストマイニング」というAKBのツイッター等の分析をモチベーションにテキスト分析の日記を綴るブログ を見つけまして「自分の好きなアーティストの分析」というアイディアをお借りし、「そうだ!!B'zの歌詞の分析をしよう!!」と思いつきました。 御察しの通り、作者はB'zのファン歴15年以上の熱狂的ファンであり、現在開催中の30周年ライブにも行きます。

そこで、ひとまず「B'zにとっての愛は何か」をWord 2 Vecを使って分析することを目標として本ブログを書き始めました。

dailytextmining.hatenablog.com

2.2 分析概要

  1. データ入手と前処理

  2. 簡単な分析と可視化

    • 単語の頻度の集計
    • Word Cloudで可視化
  3. 機械学習を用いた分析

    • TF-IDFの算出
    • LDAを用いた単語のトピック分類
    • Word 2 Vec、Doc 2 Vecを用いた分析

こんな感じの分析をしましたので次パート以降でコードの共有を含めお話しします。

3. 今後やりたいこと

結論から述べると、今回の取り組みでB'zの歌詞をもとに単語の意味解析ができました。

そこでふと思ったのは、「同じ単語でもアーティストによって使い分けが違うのでは?」との疑問が湧きました。例えば、B'zとAKBとサザンでは同じ「夏」でみ意味していることが異なることが考えられます。

こんな感じで、「様々なアーティストによる単語の意味の比較」は気が向いたら行います。

4. 最後に

ではでは、ここまで読んでいただきありがとうございます。 次Partでは分析の本編に入る前に「 分析結果の公開について」について書きます。

pira-nino.hatenablog.com