Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
人々はさくらになにを込めたか
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
jamashita
September 24, 2024
Education
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
人々はさくらになにを込めたか
jamashita
September 24, 2024
More Decks by jamashita
See All by jamashita
ポケモンで音象徴
jamashita
0
1.1k
世界の子音探訪記
jamashita
0
550
外国人が思う日本語のむずかしいところ
jamashita
0
1.6k
Other Decks in Education
See All in Education
Stardy 会社紹介資料
stardy
0
700
「機械学習と因果推論」入門 ② 回帰分析から因果分析へ
masakat0
0
710
[2026前期火5] 論理学(京都大学文学部 前期 第4回)「 ならば(→)の導入と証明ネット」
yatabe
0
440
解決策を教えても次期リーダーは育たない ─ 器の発達に伴走するために / Partnering with leaders in their vertical development
matsu0228
1
330
Case Studies and Future Research - Lecture 12 - Next Generation User Interfaces (4018166FNR)
signer
PRO
0
170
2026年度春学期 統計学 第3回 クロス集計と感度・特異度,データの可視化 (2026. 4. 23)
akiraasano
PRO
0
150
事業紹介資料(トレーナー養成講座)
kentaro1981
0
450
輻射安全管理系統2.0暨輻防e++學園平台說明會
aecrp
0
640
We部コミュニティスライド2026-04-24
junhat6
0
180
Examen de Selectividad. Geografía junio 2026 (Convocatoria Ordinaria). UCLM
juanmartin2026
0
170
現場最前線から教えるデータサイエンス1 -ITベンダーにおけるデータサイエンティスト-
hidetoshikawaguchi
0
110
「機械学習と因果推論」入門 ⑤ 因果効果推定の一般化
masakat0
0
110
Featured
See All Featured
Fireside Chat
paigeccino
42
4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
WENDY [Excerpt]
tessaabrams
11
38k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Between Models and Reality
mayunak
4
340
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Building Adaptive Systems
keathley
44
3.1k
Transcript
人々はさくらになにを込めたか さくらにこめた思いを歌から知る
はじめに いまでは03月の下旬に満開を迎えるさくらですが わたしが若い頃(30年近く前)は04月の上旬に満開していた気がします。 そこで、日本でリリースされているさくらに関する歌を集めて、年代ごとに分けて歌詞から単語を抽 出すれば 昔の歌は「出会い」に関する歌が多く、最近の歌は「別れ」に関する歌が多いのではないかと思いま した。 🤔 今回の動機
このスライドの作者について 名前:やました(山下) 職業:エンジニア あるプログラミング言語のオンライン書籍の著者のひとり 暇人 よくイベントを開く テーブルゲームの会 プログラミングの会 言語の会 衒学の会
算数の会 障害の会 へんなもの食べる会
さくらの開花、満開時期を知る
さくらの開花、満開時期を知る さくらの開花、満開時期を探しました。 幸いなことに、気象庁に1953年から毎年、各地点の開花日、満開日が公開されていました。 👉 まずはこれがないと始まらない
None
👀 🧐 なぜか表になっていない このページは開花日であり、満開日は別のページにある ということで、見やすく整形 👉 さらに、グラフを作成 👉👉 (地点を東京に設定しています) み、みにくい!
None
None
このグラフからわかること 全体的に見ると、1990年代ごろから開花日と満開日は早くなっている・・・? 🧐 👆 傾向としてそう見えるだけで、誤差の可能性も高い・・・? 推測の域を出ない推測
さくらに関する歌を集める
さくらに関する歌を集める さくらに関する歌を集めるために、歌詞のデータベースサイトを探したところ Uta-Net (https://www.uta-net.com/) なるサイトを発見しました。 ここで曲名に「さくら」を含む歌を検索できます。 👉 さくらの歌を集めたい
None
None
なにをとるんですか? 個別の歌詞のページから ID 曲名 リリース日 歌詞 をちょうだいします 🎉 (後悔: 歌手の名前も取っておくべきだった
😩) ここでちょうだいするもの
歌詞を集める
歌詞を集める ウェブサイトにあるデータを抜き出すためにはスクレイピングという技術がよく使われています。 スクレイピングを利用して曲名に「桜」「さくら」「サクラ」「SAKURA」を含む歌の歌詞をすべて 抜き出しました。 ⏳ ⌛ 1,523 曲取れました 🎉 プログラミングのお時間です
次にやらなければいけないこと 歌を集めたら次にやらないことはなんでしょうか? 🧐 🧐 そうです。「カバー曲を取り除く」必要があります。 カバー曲があると、同じ歌の分析結果が増えるためです。 まだ分析はできない
カバー曲とはなにか カバー曲とはなんでしょうか? それはズバリいうと「歌詞が同じ曲」です。 (すくなくとも歌詞しか情報がない現在、これでしか判定できません) ですが、「歌詞が同じ曲」をプログラムで判定すると、大体の場合はうまくいきません。 なにをもってカバー曲とみなすのか
同じであるとは
「同じ」の判定 たとえばですが、以下の文章は同じであるとみなされます。 1. 僕はウナギだ 2. 僕はウナギだ 同じように感じても以下は違うとみなされてしまいます。 1. 僕はウナギだ 2.
僕はうなぎだ 3. 僕は鰻だ 発音は同じですが、表記がひらがなかカタカナか漢字かの違いだけでも同じではないと判定されてし まいます。 👉 そこでふたつの歌詞の「類似度」を測定することにします。 同じは難しい
Levenshtein距離 このような文章があるとします。 僕がいきます 僕がみっきーまうす このふたつの文章のLevenshtein距離は 4 で、類似度は 0.5555555556 となります。 (ちなみに類似度
1.0 はまったく同じ文章、類似度 0.0 はまったく異なる文章を意味します) 文字がどの程度似ているかを判定するアルゴリズム
Levenshtein距離の計算方法 片方の文章から、もう片方の文章にするために 文字を追加する 文字を削除する 文字を置き換える の操作を何回行うかを計算します。 計算方法
Levenshtein距離の計算、実践編 「僕がいきます」を「僕がみっきーまうす」にするためには以下の操作を行います。 1. 「僕がいきます」の「い」を「み」に置き換える 2. 「僕がみきます」の「み」と「き」の間に「っ」を追加する 3. 「僕がみっきます」の「き」と「ま」の間にを「ー」を追加する 4. 「僕がみっきーます」の「ま」と「す」の間に「う」を追加する
よってLevenshtein距離は 4 となります。 計算してみる
類似度の計算 類似度を計算するためには以下の計算をします。 1 - (Levenshtein距離 / 元となった文章のうち、長いほうの文字数) 今回の場合、類似度は 1 -
(4 / 9) = 0.5555555556 となります。 ( 56% 程度文章が似ていることを意味します) 類似度を計算する
似ている曲を探せるようになった このままいけば似ている曲をグルーピングできそうです。 では「オリジナル曲」と「カバー曲」をどう見分けますか? 🧐 それに関しては簡単。リリース日が一番古いものをオリジナル曲とし それ以外をカバー曲と定義します。 (この定義で問題が出ることはほとんどないと思います) オリジナル曲とカバー曲を見分ける
カバー曲ランキング
カバー曲ランキング Levenshtein距離を使って似た歌をまとめていたのですが 多くカバーされた歌はなんでしょうか?ランキング形式で発表します。 (免責: Levenshtein距離から求めた類似度で計測したため、必ずしもすべてのカバー曲をまとめられた とは限りません) 🧐 🧐 👉 似た歌を取り除く前に
カバーされた曲第1位 43曲 秋桜 山口百恵 もっともカバーされました
さくらじゃない! さくらに関係ない歌が含まれていました 😱 なので、あとで (分析に入るまえに) さくらに関係ない歌を取り除くことにします。 では「さくら」に関係のある歌のランキングを続けます 🎉 まさかの1位がさくらと関係ない歌だった!
カバーされた曲第1位 21曲 桜坂 福山雅治 もっともカバーされました
カバーされた曲第2位 20曲 さくら(独唱) 森山直太朗 つぎにカバーされました
カバーされた曲第3位 18曲 千本桜 黒うさP そのつぎにカバーされました
カバー曲ランキング 1. 桜坂 (福山雅治) … 21曲 2. さくら(独唱) (森山直太朗) …
20曲 3. 千本桜 (黒うさP feat.実谷なな) … 18曲 (ボーカロイド曲だからか、こうなった) 4. 桜 (河口恭吾) … 12曲 5. 桜色舞うころ (中島美嘉) … 12曲 6. 桜 (コブクロ) … 9曲 7. 夜桜お七 (キンモクセイ) … 8曲 (オリジナルは坂本冬美だが、今回はどうしてかこうなった) 8. SAKURAドロップス (宇多田ヒカル) … 7曲 でした 🎉 ランキング早見表
似た歌を探すための定数を得る
なにをもって似た歌とするか さきほどLevenshtein距離と、それから得られる類似度の説明をしましたが それらはあくまでも数値にすぎません。 では、どの程度似ている歌であれば「同じ歌」とみなせるでしょうか? 🤔 そこで、ある歌を使用することにしました。 Levenshtein距離と類似度を有効にするために
この値をもって「同じ」とする 僕らはきっと待ってる 君とまた会える日々を さくら並木の道の上で 手を振り叫ぶよ どんなに苦し い時も 君は笑っているから 挫けそうになりかけても 頑張れる気がしたよ 霞みゆく景色の中に あの日の唄が聴こえる さくら さくら 今、咲き誇る 刹那に散りゆく運命と知って さらば友よ 旅立ちの刻 変わらないそ
の想いを 今 今なら言えるだろうか 偽りのない言葉 輝ける君の未来を願う 本当の言葉 移りゆく街はまるで 僕らを急かすように さくら さくら ただ舞い落ちる いつか生まれ変わる瞬間を信じ 泣くな友よ 今惜別の時 飾らない あの笑顔で さあ さくら さくら いざ舞い上がれ 永遠にさんざめく光を浴びて さらば友よ またこの場所で会おう さくら舞い散る道の上で 信頼にたる数値はいくつか
さくら(独唱)を使用しました ただいま紹介したのはさくら(独唱)のオリジナルの歌詞です。 この歌詞と、カバーされたさくら(独唱)のうち、最も似てない歌詞を選び、そのふたつの文章の Levenshtein距離と類似度を求めました。 理由は「思いついたから」だけです 😝
さくら(独唱)をくらべてみよう 僕らはきっと待ってる 君とまた会える日々を さくら並木の道の上で 手 を振り叫ぶよ どんなに苦しい時も 君は笑っているから 挫けそうになりか けても 頑張れる気がしたよ 霞みゆく景色の中に あの日の唄が聴こえる さくら さくら 今、咲き誇る 刹那に散りゆく運命と知って
さらば友よ 旅立ちの刻 変わらないその想いを 今 今なら言えるだろうか 偽りのない言葉 輝ける君の未来を願う 本当の言 葉 移りゆく街はまるで 僕らを急かすように さくら さくら ただ舞い落ちる いつか生まれ変わる瞬間を信じ 泣くな友 よ 今惜別の時 飾らないあの笑顔で さあ さくら さくら いざ舞い上がれ 永遠にさんざめく光を浴びて さらば友よ またこの場所で会おう さくら舞い散る道の上で さくら さくら いざ舞い上がれ 永遠にさんざめく光を浴びて さらば友よ またこの場所で会おう さくら舞い散る道の上で 僕らはきっと待ってる 君とまた会える日々を さくら並木の道の上で 手 を振り叫ぶよ どんなに苦しい時も 君は笑っているから 挫けそうになりか けても 頑張れる気がしたよ 霞みゆく景色の中に あの日の唄が聴こえる さくら さくら 今、咲き誇る 刹那に散りゆく運命と知って さらば友よ 旅立ちの刻 変わらないその想いを 今 今なら言えるだろうか 偽りのない言葉 輝ける君の未来を願う 本当の言 葉 移りゆく街はまるで 僕らを急かすように さくら さくら ただ舞い落ちる いつか生まれ変わる瞬間を信じ 泣くな友 よ 今惜別の時 飾らないあの笑顔で さあ さくら さくら いざ舞い上がれ 永遠にさんざめく光を浴びて さらば友よ またこの場所で会おう さくら舞い散る道の上で 飾らないあの笑顔で 変わら ないその想いを 今" じつはこんなに違う歌詞
さくら(独唱)で閾値を求める 先ほどのオリジナルさくら(独唱)とジェネリックさくら(独唱)のLevenshtein距離は 83 でした。 この値から類似度を求めると 0.8009592326139089 となりました。 以降この値を 直太朗定数 とし、この値を超えている歌詞については「同じ歌」とみなすことにしま
す。 Levenshtein距離と類似度
カバー曲を見つける
カバー曲を見つけるその手法 以下の方法でカバー曲を見つけ、分類することにしました。 1. 歌をリリース日順に並べる 2. 歌を古いほうから1曲選ぶ 3. プール内(はじめは空)にあるサンプル曲のすべてとLevenshtein距離と類似度を求める 4. 類似度が
直太朗定数 を超えている場合、その歌をカバー曲とみなす 5. その歌がカバー曲である場合はそのサンプル曲と同じグループに加える 6. その歌がカバー曲でない場合はプールに追加する 直太朗定数を利用する
似た歌を省いた結果 ⏳ ⌛ カバー曲を省いた結果 1,269 曲になりました 🎉 これでカバー曲はなくなりました
さくらと関係のない歌詞を省く
さくらと関係のない歌詞を省く さきほどの「秋桜」の例がありましたが、さくらに関係のない歌詞を省く必要があります。 省く方法は今では簡単に使えるChatGPTを使用します。 これが大変、だけど今は・・・!
ChatGPTにお願いする こんなお願いをしました。 こんにちはChatGPTさん。 何か用かな?(有料) この歌詞はさくらに関係がありますか? あるよ/ないよ(有料) そうですかいつもすごいですね。 それほどでもない(有料) ChatGPTをプログラムから利用する
さくらに関係ない歌詞を省いた結果 ⏳ ⌛ さくらに関係のない歌詞を省いた結果 1,084 曲になりました 🎉 これで重複のない、さくらに関係する曲が集まりました 🎉🎉 これでさくらに関係のない歌詞はなくなりました
歌詞が意図する内容を要約する
歌詞が意図する内容を要約する こんにちはChatGPTさん。 何か用かな?(有料) この歌詞が意図する内容を単語で並べてください。 XXX, YYY, ZZZ, ...(有料) そうですかいつもすごいですね。 それほどでもない(有料)
ふたたびChatGPTさんの出番です
これで歌詞の分析は終了です これで 1,084 曲の歌詞が分析できました 🎉 あとはこれを年代別に分けます。 歌詞の分析が終わりました
歌詞をリリース日で年代分けする
歌詞をリリース日で年代分けする 最後のステップです。リリース日で歌詞を分けます。 (これは簡単なので割愛) ⏳ ⌛ 👉 これが最後のステップ
リリース日で分けた結果 1970年代 … 1曲 1980年代 … 3曲 1990年代 … 35曲
2000年代 … 328曲 2010年代 … 549曲 2020年代 … 168曲 ちょっと偏りが大きい・・・ 🤔 グラフはこちら 👉 ここは単にプログラム組むだけなので割愛
None
🎉 結果発表 🎉
結果発表その前に みなさんはWordCloudをご存知でしょうか? 頻出単語ほど大きく、希少単語ほど小さく表示する方式です。 今回はこれをつかって、歌詞の解析結果を表示します。 見せかたを考える
🎉 改めて結果発表 🎉
すべての世代の合計
None
1970年代の合計 (1曲)
None
1980年代の合計 (3曲)
None
1990年代の合計 (35曲)
None
2000年代の合計 (328曲)
None
2010年代の合計 (549曲)
None
2020年代の合計 (168曲)
None
まとめ すべての年代で「別れ」のほうが「出会い」よりも大きい・・・ 🙄 説立証ならず・・・ 😭 考えられる敗因は あまり昔の歌詞が集まらなかった(2000年代, 2010年代の歌が80%を占めていた) 明るい歌よりも暗いあるいは切ない歌のほうが作りやすいらしい 思ったこと
もうちょっとだけ
出会い別れ度 歌詞の傾向から 出会いだけを歌った曲 別れだけを歌った曲 出会いと別れを歌った曲 どちらも歌っていない曲 に分類してみました どのぐらい出会ってどのぐらい別れているのか
None
None
ここからわかること 1970年代、1980年代は曲数が少ないので仕方がないもののだいたい昔から同じ割合で出会い、別れ の歌が存在している 別れの歌は相変わらず多い グラフから読み取れること
最後に Wordcloudで使ったデータを実際に載せます。 なお、数字は歌詞に出てくる単語の出現回数ではなく、その単語が(要約したときに)登場する曲数で す。 実際のデータを見たいかたはこちら 👇 https://docs.google.com/spreadsheets/d/1GoLYy7zR-RBwW9PxwuHcDWbzHwk8Y-k8xUZGT_qG- Kc/edit?usp=sharing 👉 データを公開します
None
None
None
None
None
None
おわり
次回予告 試験します 筆記用具持ってきて〜 👀
試験:言語学
おわり