5日と20日は歌詞と遊ぼう。

歌詞を読み、統計したりしています。

J-POPの歌詞から見えるヒーロー像の変遷!

突然ですが最近、J-POPの歌詞において「ヒーロー」が頻出していると思いませんか?

良いことばかりじゃないからさ
痛くて泣きたい時もある
そんな時にいつも
誰よりも早く立ち上がるヒーローに会いたくて
SHISHAMO『明日も』

いつだって目を腫らした君が二度と
悲しまないように笑える
そんなヒーローになるための歌
米津玄師『ピースサイン』

いつだってヒーロー 笑われたっていいよ
人生は喜劇の 一幕の様なもんだろ
amazarashi『ヒーロー』

これ全部2017年以降リリースでMV作られた曲のサビ部分なんですよ…。

この現象に各界の著名人も反応していて、

ハコサトさんじゃん!

井出美緒さんじゃん!(ハコサトさんへのリプじゃん!)

あとTwitterではないですが、作詞家の昆真由美さんがオフでおっしゃってました♪(ハコサトさんへのコメントだったじゃん!)

そんなJ-POP界の「ヒーロー」像について調べました!

本当に最近ヒーロー曲が増えているか調べる

さて。近年多くなっていると目されるヒーロー曲。

でも本当に多くなっているかどうかは先行研究がありません。

なのでわたしが調べました。

歌詞の中に「ヒーロー」が含まれている曲は、全文検索ができる歌詞サイトで調べることができます。

今回は歌ネットから検索。調査時点で1446曲がヒットします。

www.uta-net.com

さらに、そこから曲のリリース年を調べていきます。

がしかし、曲のリリース年については簡単に調べる方法が見当たりません…。

今回わたしは3つのソースから調査しました…。

  • 歌ネットの広告(Amazonの広告が出ていて、それでリリース年がわかる)
  • Wikipedia(シングルなら独立の記事がある or アーティストのページから辿れることがある)
  • MusicBrainz(邦楽だとデータに漏れがある and 検索がクソ)

この3つのソースを当たって、リリース年の当たりがついた1416曲を今回の対象としました。

しかし今回完全に情報源を辿れたわけではないのでマジでお遊びだと思って見てください…。

リリース年ごとに「ヒーロー」曲が10000曲中どれぐらい出てくるかをグラフにしたのがこちら。

f:id:hacosato:20180601184857p:plain

できました! 一番多いのは1966年で、100曲中2曲の割合でした!

といいたいところなのですが、1966年、標本が50しかないのです。悪いなのび太、この年1曲しかヒーロー曲ないんだ。

同じ理由で1978年も除外します。すると残るのは1983年からで、この年からは2018年に至るまでずっとヒーロー曲がリリースされ続けています。

そうするとグラフは以下のようになります。

f:id:hacosato:20180601185451p:plain

だいぶ恣意が混ざる操作をしたので(?)きれいな右肩上がりのグラフができました。

近年ヒーロー曲が増えていると思った感覚は、間違いじゃなかった!*1

年代ごとのヒーロー曲の特徴を調べる

次に、歌詞を年代別に輪切りにして比較してみます。

これで年代別に傾向を見てみることができます。

1980年代

名詞でワードクラウドを描きました。こんな感じです。

f:id:hacosato:20180618212338p:plain

「ヒーロー」という単語の近く(前後4形態素)によく出てくる単語は大きくなるようになっています。

これを見ると「ヒーロー」の近くに「hero」がよく出てくることがわかります。なんだそれは…。

実際の歌詞を見てみると

You need a hero
胸に眠るヒーロー 揺り起こせ
麻倉未稀『ヒーロー HOLDING OUT FOR A HERO』

という感じで、「ヒーロー」と「hero」が共起するのもむべなるかなということがわかります♪

じつは1980年代はいまよりも歌詞の中に外来語(アルファベットとか)が多いことは先行研究があります。

ヒーロー曲でも、その傾向ははっきり見えるとこれを見て思いました。

ほかにも「century」「lion」など、英単語が多いのが特徴的です。

1990年代

サンプルサイズが大きくなったので、文字が細かくなりました。

f:id:hacosato:20180618213432p:plain

「yei」という謎の英単語が目立ちますが、これは

トロピカル・ヒーロー, yei yei
トロピカル・ヒーロー, sexy
松田聖子『トロピカル・ヒーロー』

の貢献によるものです。

「yei」はこの曲にしか出てこないので、重み付けを工夫したほうがよかったかもしれません…。

ワードクラウドに「トロピカル」が多いのもこの曲の影響です。

一番多い「スーパー」と共起するのは、GIRLS BE『Who Are You?』米米CLUB『僕らのスーパーヒーロー』の2曲がありました。

「トロピカル・ヒーロー」にせよ、「スーパーヒーロー」にせよ、ヒーローそのものにスポットライトを当てて、ヒーローだけの世界を焦点化するのがこの時代のヒーロー曲の特徴だと思います。

それがワードクラウドからも見えてきますね。

2000年代

f:id:hacosato:20180618214208p:plain

1990年代ではあまり目立たなかった「僕」「君」といった身近な人称代名詞が目立ちます。

「君」のほうが大きいのでそれに注目すると、

オーオオ!って はじけようぜ つまり ヒーローは君なんだ
kannivalism『カスタリーンナ』

 

せめて一度くらいヒーローになってくれ 誰のものでもない君の人生
谷村新司『北風のエール』

 

ヒーローは君だ!いきがってなんぼの気候 summer a di freedom
九州男『Come In Now ! feat.杉本恭一(LA-PPISCH)』

 

僕にとって君はヒーローさ
ヤドカリ『僕のヒーロー』

という感じ。

「君」=ヒーローという図式で、「君」を鼓舞するような曲が多く見受けられました。

神様が僕に下した使命は君だけのヒーロー
平井堅『POP STAR』

このように、「僕」=ヒーロー、という曲もありましたが少数派みたいです。

2010年代

f:id:hacosato:20180618230524p:plain

「君」がいちばん共起の多い単語になりました。

でも、そのヒーロー像は、いままでとすこし違います。

たまには君のヒーローになりたくて
街駆け回って とびきりのプレゼント探す
Rake『フタリヒトツ』

 

君は君のヒーローなのさ
誰かから自分を切り離そう
シェリル・ノーム starring May'n/ランカ・リー=中島愛『Get it on ~光速クライmax』

 

そしていつかきっと君も誰かにとってのヒーローになるんだよ
buzzG『イントロダクション』

2000年代とは違い、「君」はヒーローだといって背中を押すような曲は少なくなります。

逆に、

  • (主人公は)「君」のヒーローになる(ヒーローはむかしより卑近なもの)
  • 「君」は誰かのヒーローになる(ヒーローは相対的なもの)

という風に、ヒーローは絶対的なものではなくなり、身近な誰かにとっての相対的なものに変わります。

だっていつも ずっと君は 最高に 輝くヒーロー
野川さくら『君はHERO』

従来どおりのヒーロー像の曲は、ちょっと少なくなりました。

まとめ

というわけで、

年代 特徴
1980年代 ヒーローはかっこよく英語で綴る
1990年代 ヒーローは世界の中心にある
2000年代 「君」だってヒーローになれる
2010年代 ヒーローは誰かにとっての相対的な存在

という大まかな流れをつかむことができました! やったね!!

時系列データなので、分類ではなく回帰でなんかおもしろいことができたらいいなとも思ったんですが、わたしの技術力が追いつかないのと、あとなにを特徴量にしたらいいのかよくわかんなかったので今後の課題にします。

いまは歌詞の世界だけではなくて、たとえば政治の世界などでもヒーローが求められる時代であるような気配を感じます。

歌詞の中のヒーロー像に、その未来を見出すこともできるかもしれないですね。


今回の記事は、以前書いたコレにつながっているところがあります。

いま考えるとMr.Children『HERO』は時代を先取りしていたんだなぁとわたしは感じました♪

hacosato.hatenablog.com

赤い公園『KOIKI』も先取りだと思えるような日が来るかなぁ。

たのしい未来が待っているといいなと思います。

おまけ

手順についてです。

事前に歌詞をdecadeごとにテキストファイル4つに収めてあります。

いちばん重い2010年代のファイルはテキストだけなのに1.5MBもあり、うっかりテキストエディット.appで開いてしまってアプリが固まるなどしました。

それをもとにして、Rで集計を行いました。

形態素解析MeCab、辞書はIPAdic、解析のミスがあっても修正していません。

リリース年の判別がどうしようもなくゆるふわのため*2、結果もワードクラウドというゆるふわな方法を選びました…。

方法はこのブログの記事を踏襲しています。

langstat.hatenablog.com

ただ、大きいデータだとうまく処理できなかったので、teratailにお世話になりました。

まとめてRMeCabTextで処理すると落ちてしまったので、最終的に1行ずつRMeCabCで処理しました。

teratail.com

品詞を問わないならRMeCabパッケージのcollocate関数があればいいので、すごくすっきりできます。

たとえば2010年代では「僕」「君」が頻出ということになりましたが、そもそもこの単語は歌詞に頻出するので、何らかの方法で重みを付けたほうがよかったかもしれません。やりかたわかんないけど…tf*idfかな……。

# パッケージの読み込み
library(RMeCab)

# フォーカスする単語とスパンを指定
searchword <- "^ヒーロー_名詞$"
span <- 4
span <- (-span : span)

f <- file("ぱすだよ/1980.txt","r")
word3 <- list()
# for (i in 1:30) {
repeat {
  # for (line in lines) {
  a<-readLines(con=f,1)
  if (length(a) == 0) {
    break
  }
  if (a == "") {
    next
  }
  word3 <- append(word3, RMeCabC(a))
}
word3_unlist <- unlist(word3)
wordvector3 <- paste(word3_unlist, names(word3_unlist), sep="_")

close(f)

wordvector <- wordvector3

library(stringr)
# 共起語の集計
positionsofmatches <- grep(searchword, wordvector, perl = TRUE)
results <- NULL
for(i in 1 :length(span)) {
  i
  (collocatepositions <- positionsofmatches + span[i])
  collocates <- wordvector[collocatepositions]
  results <- append(results, collocates)
}

results <- str_replace_all(string = results, pattern = searchword, replacement = "")
results <- results[which(results != "")]

# 特定の共起語だけを抽出
positionsofmatches2 <- grep("_名詞", results, perl = TRUE)
results2 <- results[positionsofmatches2]
results3 <- str_replace_all(string = results2, pattern = "_名詞", replacement = "")

library(wordcloud)
par(family = "HiraKakuProN-W6")
colorpal <- colorRampPalette(c("#bae4bc", "#7bccc4", "#2b8cbe"))
wordcloud(results3, min.freq = 1, colors = colorpal(8))

次回もお楽しみに✨

*1:正しいとも言い切れません…

*2:年月日まで含めておそらく正しそうなのが全体の4割程度です