私はミスチルが20年前から好きで、ある日ふと、歌詞にはどんな単語が多く使われているのだろうと気になりました。
そこでPythonで形態素解析(文章を単語に分けて解析)を行い、一番使われている名詞や動詞、形容詞を確認しました。
確認した方法は、以下の記事に書いているので是非ご参照ください。
ミスチルの歌詞をJanomeで解析してWordCloudで可視化してみたちなみに、一番使われている名詞は「君」と「僕」でした。
今回は、上記2つの名詞を使ってミスチルの歌詞を自分なりに分析してみます。
「君」と「僕」が一番使われている曲は?
「君」と「僕」が一番使われている曲は何でしょうか。
私が一番最初に思い浮かんだのは「GIFT」です。
ライブでは最後のサビの前の間奏で、「君から僕へ」、「僕から君へ」というフレーズを桜井さんがアドリブで歌っていました。それがとても印象に残っています。
「君」が一番使われている曲
ミスチルの歌詞で使われている名詞の中で、 「君」は1番多く使われており、使われている回数は559回です。
その中で、「君」が使われていたのは243曲中、158曲でした。
最も「君」が使われていた曲は、「常套句」でした。
その他の結果は以下です。
曲名 | 「君」が出てくる回数 |
---|---|
常套句 | 20回 |
365日 | 12回 |
Another Story | 12回 |
Your Song | 10回 |
少年 | 9回 |
himawari | 8回 |
水上バス | 8回 |
GIFT | 8回 |
君が好き | 8回 |
上記の表よりも詳しい結果は以下のようにグラフ化しています。
少し見にくいので、詳しく見る場合はこちらで確認してみてください。
スマホの場合は横画面で見た方が見やすいです。
拡大したり、表示範囲を変更できたりします。
ちなみに「GIFT」は「8回」で、私の印象通り結構多かったです。
「常套句」は「決まり文句」という意味です。
この曲は「君に会いたい」というフレーズが何回も出てきます。
好きな人に会いたくても会えない人の歌かなと私は解釈しています。
「僕」が一番使われている曲
ミスチルの歌詞で使われている名詞の中で、「僕」は2番目に使われており、使われている回数は458回です。
その中で、「僕」が使われていたのは243曲中、161曲でした。
最も「僕」が使われていた曲は、「横断歩道を渡る人たち」でした。
その他の結果は以下です。
曲名 | 「僕」が出てくる回数 |
---|---|
横断歩道を渡る人たち | 12回 |
ゆりかごのある丘から | 8回 |
ロザリータ | 7回 |
僕が僕であるために(尾崎豊カバー曲) | 7回 |
fanfare | 7回 |
ファスナー | 7回 |
Pink~奇妙な夢 | 7回 |
himawari | 7回 |
皮膚呼吸 | 7回 |
Drawing | 7回 |
蘇生 | 7回 |
少年 | 7回 |
Any | 7回 |
上記の表よりも詳しい結果は以下のようにグラフ化しています。
少し見にくいので、詳しく見る場合はこちらで確認してみてください。
スマホの場合は横画面で見た方が見やすいです。 拡大したり、表示範囲を変更できたりします。
ちなみに「GIFT」は「3回」で、それほど多くなかったです。
「横断歩道を渡る人たち」は、「GIFT」のカップリング曲です。
ここからは私の解釈ですが、歌詞の内容は車の信号待ちの時に色々な人(背中の曲がった老人、スカートの短い女の人、駄々をこねる子供と叱る親、ギターを抱える少年)が横断歩道を渡るのを見ながら、自分の人生をぼんやり考える、という曲かなと思います。
自分の人生を考えている曲なので、「僕」が多くなっているのかなと思います。
「君」と「僕」がそれぞれ入っている曲と入っていない曲
上記では「君」と「僕」のそれぞれの使用回数を見てきましたが、両方多く入っている曲は「君」と「僕」の関係性を歌っている曲、「君」が多く出てきて「僕」があまり出てこない曲は相手への思いを歌っている曲、「僕」が多く出てきて「君」があまり出てこない曲は自分のことを歌っている曲なのかなと思い、調べてみました。
まずは、曲ごとに「君」と「僕」の使用回数をそれぞれ確認しました。
下記に「君」と「僕」 の合計使用数が11回以上であった18曲を示します。
ちなみに10回以上の場合は、26曲となっていました。
曲名 | 「君」が出てくる回数 | 「僕」が出てくる回数 | 「君」と「僕」 の合計 |
---|---|---|---|
常套句 | 20 | 1 | 21 |
少年 | 9 | 7 | 16 |
himawari | 8 | 7 | 15 |
Your Song | 10 | 4 | 14 |
水上バス | 8 | 6 | 14 |
ロザリータ | 6 | 7 | 13 |
ゆりかごのある丘から | 5 | 8 | 13 |
僕が僕であるために (尾崎豊カバー曲) | 6 | 7 | 13 |
花言葉 | 7 | 6 | 13 |
Another Story | 12 | 1 | 13 |
横断歩道を渡る人たち | 0 | 12 | 12 |
ファスナー | 5 | 7 | 12 |
Drawing | 5 | 7 | 12 |
365日 | 12 | 0 | 12 |
BLUE | 6 | 5 | 11 |
Pink~奇妙な夢 | 4 | 7 | 11 |
深海 | 7 | 4 | 11 |
GIFT | 8 | 3 | 11 |
上記の表をグラフ化したのは以下です。
上記に含まれていない曲も表示したグラフはこちらで確認してください。
スマホの場合は横画面で見た方が見やすいです。
拡大したり、表示範囲を変更できたりします。
続いて、「君」と「僕」の使用回数の差が大きい曲と小さい曲を確認してみます。
対象曲は上記と同じで、「君」と「僕」 の合計使用数が11回以上であった18曲としています。
曲名 | 「君」が出てくる回数 | 「僕」が出てくる回数 | 「君」ー「僕」 の回数 |
---|---|---|---|
常套句 | 20 | 1 | 19 |
365日 | 12 | 0 | 12 |
Another Story | 12 | 1 | 11 |
Your Song | 10 | 4 | 6 |
GIFT | 8 | 3 | 5 |
深海 | 7 | 4 | 3 |
水上バス | 8 | 6 | 2 |
少年 | 9 | 7 | 2 |
BLUE | 6 | 5 | 1 |
himawari | 8 | 7 | 1 |
花言葉 | 7 | 6 | 1 |
ロザリータ | 6 | 7 | -1 |
僕が僕であるために | 6 | 7 | -1 |
ファスナー | 5 | 7 | -2 |
Drawing | 5 | 7 | -2 |
ゆりかごのある丘から | 5 | 8 | -3 |
Pink~奇妙な夢 | 4 | 7 | -3 |
横断歩道を渡る人たち | 0 | 12 | -12 |
上記をグラフにしたものを以下にしまします。
見にくい場合は、こちらで確認してください。
スマホの場合は横画面で見た方が見やすいです。
拡大したり、表示範囲を変更できたりします。
「君」が多く出てきて「僕」があまり出てこない曲は 「常套句」でした。
「僕」が多く出てきて「君」があまり出てこない曲は 「横断歩道を渡る人たち」でした。
「君」と「僕」 の使用回数に差がないのは、「BLUE」、「himawari」、「花言葉」、「ロザリータ」などでした。
ちなみに「僕が僕であるために」は尾崎豊さんのカバー曲ですが、「僕」よりも「君」が多いです。
タイトルでは圧倒的に「僕」が多そうですが、歌詞の中では「君」についても多く書かれています。
「君」と「僕」の使用回数に差がない中で、シングル曲である「himawari」の歌詞を考えてみました。
個人的な解釈としては、「himawari」は「君」にフラれる「僕」を描画した歌詞かなと思います。
「君」と「僕」というワードが多い歌詞は、恋愛関係の歌詞がやはり多いのかなと想像します。
ただし、最初に思い浮かんだ「GIFT」は 「君」と「僕」の使用回数に差がある方です。
恋愛というよりは家族関係を個人的には思い浮かべます(メロディーとかオリンピックのタイアップということも含めて)。
結局、歌詞は人それぞれで解釈は違うし、しっかり読んだ方が良いという結論です。笑
コード
今回上記の分析をしたPythonのコードを紹介します。
まず、分析に使用した歌詞ですが、csvファイルで下記のような構成になっています。
(実際のデータには具体的な曲名や歌詞が入っています。)
上記の収集方法は、下記の記事で紹介していますので参考にしてください。
ミスチルの歌詞をスクレイピングで取得してみた【Beautiful Soup】また、今回行った分析と近いコードの解説を以下の記事に書いています。
ミスチルの歌詞をJanomeで解析してWordCloudで可視化してみた今回使用したコードは以下です。
import pandas as pd
import collections
from janome.analyzer import Analyzer
from janome.charfilter import *
from janome.tokenfilter import *
import plotly.graph_objects as go
# csvファイルを読み込み
df_file = pd.read_csv('mrchildren-lyrics.csv', encoding='utf-8')
# 歌詞をデータフレームからリストに変換
song_lyrics = df_file[['曲名', '歌詞']].values.tolist()
results1 = []
results2 = []
results3 = []
results4 = []
for s in song_lyrics: # 複合名詞化 a = Analyzer(token_filters=[CompoundNounFilter()]) result = [token.base_form for token in a.analyze(s[1]) if token.part_of_speech.split(',')[0] in ['名詞']] # 単語の頻度を確認 c = collections.Counter(result) result_list1 = [s[0], c['君']] result_list2 = [s[0], c['僕']] result_list3 = [s[0], c['君'] + c['僕']] results1.append(result_list1) results2.append(result_list2) results3.append(result_list3) if (c['君'] + c['僕']) > 10: result_list4 = [s[0], c['君'] - c['僕']] results4.append(result_list4)
# 「君」の使用数を曲ごとにグラフ化
results1 = dict(results1)
graph_list1 = {k:v for k, v in results1.items() if v > 0}
# 君が使われている曲数を確認
print(len(graph_list1))
# plotlyでグラフ化
fig = go.Figure([go.Bar(x=list(graph_list1.keys()), y=list(graph_list1.values()))])
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.show()
# グラフをhtml形式で保存
filename = "kimi"
with open(filename + '.html', 'w') as f: f.write(fig.to_html(include_plotlyjs='cdn'))
# 「僕」の使用数を曲ごとにグラフ化
results2 = dict(results2)
graph_list2 = {k:v for k, v in results2.items() if v > 0}
# 僕が使われている曲数を確認
print(len(graph_list2))
# plotlyでグラフ化
fig = go.Figure([go.Bar(x=list(graph_list2.keys()), y=list(graph_list2.values()))])
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.show()
# グラフをhtml形式で保存
filename = "boku"
with open(filename + '.html', 'w') as f: f.write(fig.to_html(include_plotlyjs='cdn'))
# 「君」+「僕」+「君+僕」をグラフ化
results3 = dict(results3)
graph_list3 = results3
fig = go.Figure(data=[ go.Bar(x=list(graph_list1.keys()), y=list(graph_list1.values()), name='君'), go.Bar(x=list(graph_list2.keys()), y=list(graph_list2.values()), name='僕'), go.Bar(x=list(graph_list3.keys()), y=list(graph_list3.values()), name='君+僕')
])
fig.update_layout(barmode='group')
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.show()
# グラフをhtml形式で保存
filename = "kimi-and-boku"
with open(filename + '.html', 'w') as f: f.write(fig.to_html(include_plotlyjs='cdn'))
# 「君」 - 「僕」をグラフ化
results4 = dict(results4)
graph_list4 = results4
print(len(graph_list4))
# plotlyでグラフ化
fig = go.Figure([go.Bar(x=list(graph_list4.keys()), y=list(graph_list4.values()))])
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.show()
# グラフをhtml形式で保存
filename = "kimi-boku"
with open(filename + '.html', 'w') as f: f.write(fig.to_html(include_plotlyjs='cdn'))
今回は、ミスチルの歌詞で多く使われている「君」と「僕」という名詞を起点に分析を行ってみました。
普段と違った視点でミスチルの歌詞を見ることができて、かなり楽しかったです。
他にもミスチルの歌詞をネガポジ分析してみました。
以下の記事に書いていますので、興味のある方は見てください。
ミスチルの歌詞をネガポジ分析してみた【日本語評価極性辞書】ここまで記事を見ていただき、ありがとうございました!