Python
スクレイピング
ネットワーク分析
networkx

BASS ON TOPグループライブハウスHPのスクレイピングによるインディーズアーティストネットワークの分析

More than 1 year has passed since last update.

この記事は 慶應義塾大学SFC村井&徳田研 Advent Calendar 2015 23日目の記事です。

はじめに

僕はバンドマンです。バンドをやっていると実感しますが、多くのバンドと仲が良かったり、売れているバンドと共演してるバンドはかっこいいバンドが多いです。そこでそういった「かっこいいけど未発掘」みたいなバンドをライブハウスのスケジュールから、ネットワーク分析の手法を用いて見つけてみたいと思います。

僕が個人的につながりがあったり尊敬してるバンドを貼っておきますのでBGMにしながら読んでいただければ幸いです。
Phat Nu Steez - Conversation Pieces
PALO SPECIAL - I know nothing
revenge my LOST - Die-c

分析対象

今回分析対象とするのはBASS ON TOPグループという関西を中心にライブハウスやスタジオを展開するグループのライブハウス、

  • 尼崎Deepa
  • 北堀江club vijon
  • アメ村DROP
  • 堺東Goith
  • 心斎橋VARON
  • 梅田Zeela
  • 大塚Deepa
  • 吉祥寺CLUB SEATA

の8店舗を対象とします。
ライブハウスを全国展開しているグループとしては大手、かつHPのDOMが統一されていてスクレイピングが楽だからです。

データ

Pythonでbeautifulsoupによるスクレイピングを行いました。
基本的にDOMは統一されていたため、各ライブハウスに対して最大5年分のデータを取得した結果、8823件のイベントのデータを取得し、28220件のアーティストのデータを取得することができました。

ただ、大阪のライブハウスでのイベントに出演した東京のアーティスト名の末尾に(From. 東京)などが付与されていたり、その表記方法にも揺れがあったため、完全に正確なデータとは言えません。

ネットワーク分析

今回はアーティスト毎に共演したアーティストと共演した回数をカウントし、それを重みとしてネットワークを描き、分析を行います。

次数中心性

次数中心性を見ることで、どのアーティストがより多くのアーティストと共演しているかがわかります。

次数中心性をnetworkxのdegree関数を用いて出力し、ソートした結果が以下になります。

次数中心性上位20件
[(u'', 2398),
 (u'and more...', 496),
 (u'THE GAME SHOP', 452),
 (u'\u8449\u6708', 386),
 (u'JUST CHRONICLE', 371),
 (u'Mari7', 361),
 (u'LIGHTINGALE', 348),
 (u'shiho', 346),
 (u'Laxity', 333),
 (u'<LIVE>', 328),
 (u'Liberal Arts', 312),
 (u'\u307e\u308a\u3048', 310),
 (u'SAL', 309),
 (u'DAMBO', 305),
 (u'<DJ>', 299),
 (u'HARVEST', 286),
 (u'HxAxS', 285),
 (u'The Picaro', 277),
 (u'\u4ef2\u6751\u30b3\u30cb\u30fc', 277),
 (u'RIZING 2 END', 261)]

スクレイピングを雑にやったため「and more...」や「<LIVE>」などが混ざっていますが、それらを除いた上位にいるTHE GAME SHOPやJUST CHRONICLEは全国流通のCDを発売しているアーティストです。

その他のアーティストの音源も筆者の主観ですが、LaxityやLIGHTINGALE、Liberal Artsは全国流通のCDはリリースしていないものの、非常にクオリティの高い楽曲を提供しています。

メジャーアーティストとのつながり -CROSSFAITHを例に

メジャーアーティストとつながりを持つアーティストをみてみましょう。
今回は、世界デビューを果たしている、ラウドミュージックでは日本を代表するアーティストのCROSSFAITHを中心に見ていきます。

CROSSFAITH - Devil's Party

CROSSFAITHとつながりをもつアーティストを次数中心性でソートした上位20件が以下です。

CROSSFAITHと共演したアーティストとその次数中心性
[(u'THE GAME SHOP', 452),
 (u'HARVEST', 286),
 (u'EACH OF THE DAYS', 131),
 (u'SUNSET BUS', 128),
 (u'LOST', 113),
 (u'\u6fc0\u30ed\u30c3\u30af)', 110),
 (u'GARI', 95),
 (u'SECRET 7 LINE', 73),
 (u'HER NAME IN BLOOD', 72),
 (u'BEFORE MY LIFE FAILS', 69),
 (u'FIVE NEW OLD', 68),
 (u'SHANK', 68),
 (u'NEW BREED', 57),
 (u'\u9855-AKIRA-(\u6fc0\u30ed\u30c3\u30af)', 56),
 (u'GOOD4NOTHING', 53),
 (u'waterweed', 42),
 (u'One Last Breath', 41),
 (u'CROSSFAITH', 40),
 (u'F.I.B', 36),
 (u'NOISEMAKER', 31)]

この中でDJを除けば全国流通のCDをリリースしていないのはOne Last Breathだけで、メジャーなアーティストはメジャーなアーティストと共演することが多い傾向があるようです。
ちなみにOne Last Breathもすでに活動を休止はしていますが、決してここに上がる他のアーティストに劣っているとは感じませんでした。

One Last Breath - There's The Flame That Will Never Fade

そこで同様にOne Last Breathとつながりをもつアーティストの次数中心性が高いものを10件出力した結果が以下になります。

OneLastBreathと共演したアーティストとその次数中心性
[(u'THE GAME SHOP', 452),
 (u'JUST CHRONICLE', 371),
 (u'HARVEST', 286),
 (u'Divine Society', 252),
 (u'INSANITY', 205),
 (u'Apoptosis', 201),
 (u'Ruin Of Fiction', 184),
 (u'Pusu', 148),
 (u'EACH OF THE DAYS', 131),
 (u'SUNSET BUS', 128)]

全国流通のCDを出しているアーティストとそうでないアーティストが混在しています。どのアーティストも楽曲のクオリティとしては劣ることはない、どのアーティストがいいと感じるかは好みの問題だと思います。

僕はDivine Societyが好きです。
Divine Society 1st EP - All wishes is in this story - 【TRAILER】

可視化

次数中心性のヒストグラムは以下にようになっています。
hist.png

次数が150を上回るアーティスト数は102件しかありませんでした。ネットワークのコアなアーティストたちは、そのコアなアーティスト同士で繋がる傾向が強いことが言えるでしょう。

次数中心性が150以上のコアなアーティストに絞ってネットワークを可視化したのが以下になります。
graph.png

3つのクラスタに分かれているように見えます。

おわりに

今回の分析でメジャー以外のインディーズアーティストも中心性の分析から発掘できたのではないかと思います。また、近年メジャーレーベル以外からの全国流通をさせるアーティストが多くいることから、流通があってもマイナーなアーティストは非常に多くいます。そうしたアーティストは、やはりこういったキャパ500以下などの小さなライブハウスでのライブ活動が主になっています。この分析なら、そういったアーティストを発掘していくこともできるでしょう。

今回はアドベントカレンダーという機会に、ネットワーク分析の手法を勉強しながらの分析で、ほぼ次数中心性の話に終始しましたが、そのうちBASS ON TOP系列以外のライブハウスの情報を加えてさらにクラスタなど分析を進めていこうと思います。

今回の分析で使ったソースは以下Githubで公開しています。
chike0905/livehouse - Github

参考

PythonとBeautiful Soupでスクレイピング
networkxでグラフを描く

Maksim Tsvetovat、Alexander Kouznetsov (2012)
『オープンソースで学ぶ社会ネットワーク分析――ソーシャルWebの「つながり」を見つけ出す』 ISBN978-4-87311-550-4