Help us understand the problem. What is going on with this article?

【101回めの夏】夏の甲子園出場校(プラスα)の校歌をDoc2Vecで分析してみた

自己紹介

野球が大好きです。本記事がQiitaのデビュー戦です。趣味と実益を兼ねて、野球関連のデータを使って、楽しく勉強したいです。

モチベーション

  • 業務の都合上、Doc2Vecを使うことになりそうだ
    • でも使ったことがない → 試しに使ってみよう
  • せっかくなので野球関連のデータを使いたい
    • 阪神タイガースへの論調の違いからデイリースポーツの記事を見抜くとか楽しそう(絶対面倒だ)
    • Qiitaを見ていたら、先駆者の方の素晴らしい記事を見つけた → アイディアとコードをちょうだいしよう

偉大なる先駆者様のご紹介

エレファントカシマシをdoc2vecで分析

https://qiita.com/velvetops/items/e3f9fe6e228e4ff8c786
アイディアからコードに至るまで、ありとあらゆる箇所を真似させていただきました。誠にありがとうございます。(また勝手に使わせていただき、申し訳ありません)

(一応)仮説っぽいなにか

その学校の校風(大事にしている精神など)は歌詞となって校歌に現れる
→校歌を分析することで、校風が近い学校をクラスタリングできるのではないか

上の仮説を、夏の甲子園出場校(プラスα)の校歌を対象として、分析してみよう

環境

  • Python 3.7.3
  • MeCab 0.996
  • gensim 3.4.0
    • 川上憲伸氏にしか見えない…

やったこと

  • データ収集
    • 対象校51校(夏の大会出場校49校了+ゲスト2校)
    • 歌詞は各学校のホームページなどからコピペしたり、ベタ打ちしたり(誤字脱字はあるかも)
    • 正規化などの前処理は割愛。面倒なので。
  • MeCabによる文章の分割
  • 学習
  • Doc2Vecによる似た校歌の抽出

コーディング

ライブラリインポート

import pandas as pd
import matplotlib.pyplot as plt
import MeCab
from gensim.models.doc2vec import Doc2Vec, TaggedDocument

MeCabによる文章の分割

# 分割結果を見た感じNeologdの結果が良さそうなので、こちらを採用
mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
mecab.parse('')
documents = []
for i, l in enumerate(lyrics):
    words = []
    node = mecab.parseToNode(l)
    while node:
        if len(node.surface) > 0:
            words.append(node.surface)
        node = node.next
    documents.append(TaggedDocument(words, [i]))

学習

#vector_size/ベクトルの次元,window/前後で拾う単語の数,min_count/切り捨てる単語の最小個数,sample/単語の出現頻度がこの値よりも大きい場合は無視されるしきい値,negtive/ネガティブサンプルする単語の数,Epoch/エポック

#学習
model = Doc2Vec(documents=documents,
                                 vector_size=300, 
                                 window=15, 
                                 min_count=1, 
                                 smple=0.00001,
                                 negative=5, 
                                 epochs=400)

#モデルをセーブ
model.save('doc2vec.model')

パラメータは参考とした別サイトの方と全く同じパラメータを指定。
参考(わかりやすかった)

分析前の準備

先駆者様の記事を真似させていただき、学校名を入力したら「類似度が高い校歌」「類似度が低い校歌」を出力する関数を作成。

分析

明豊高校(大分県 ※ゲスト)

ポップすぎる曲調の校歌として、界隈では有名。校歌らしくない校歌なので、独自性の高い結果となることを期待して対象校入り。校歌の作曲は南こうせつ氏。

school = '明豊'
print('-----上位10校-----')
print_similar_schools(school)
print('\n----- 下位10校 -----')
print_similar_schools(school, top=False)

-----上位10-----
至学館, 0.6537792086601257
藤蔭, 0.5532431602478027
神村学園, 0.5453897714614868
花咲徳栄, 0.5162314176559448
津田学園, 0.5150196552276611
作新学院, 0.5131099820137024
習志野, 0.5118856430053711
高松商, 0.4802248477935791
日本文理, 0.4695620536804199
立命館宇治, 0.4658682346343994

----- 下位10 -----
前橋育英, 0.30775588750839233
秋田中央, 0.29808247089385986
近江, 0.26952436566352844
旭川大高, 0.2524945139884949
智弁和歌山, 0.2475282996892929
佐賀北, 0.24706360697746277
国学院久我山, 0.23921410739421844
沖縄尚学, 0.23529067635536194
仙台育英, 0.19084471464157104
静岡, 0.18512514233589172

至学館高校(愛知県 ゲスト枠)と最も近いという結果。こちらもポップすぎる校歌として界隈では有名。ポップなメロディと前向きな歌詞が、明豊高校と類似度が高い様子。明豊、至学館、神村学園と女子校が共学化した学校なので、この辺が校歌の歌詞に影響を与えているのかしら?
一方で、最も類似度が低い学校は、静岡高校(静岡県)。こちらは明治11年創立の伝統校。Wikipediaの概要を見るだけでも、J-POPからは程遠いことがわかる。
想定通りの結果で大満足。

大満足したところで、ヤクルト関係者の母校も見ていきたい。

履正社高校(大阪府)

ミスタースワローズ・山田哲人選手と新人のなかやまきんに君の母校。大正11年創立の伝統校で、校歌は雄々しく、漢字がいっぱい。

school = '履正社'
print('-----上位10校-----')
print_similar_schools(school)
print('\n----- 下位10校 -----')
print_similar_schools(school, top=False)
school = '履正社'
print('-----上位10校-----')
print_similar_schools(school)
print('\n----- 下位10校 -----')
print_similar_schools(school, top=False)
-----上位10-----
熊本工, 0.5806757211685181
国学院久我山, 0.5090363025665283
習志野, 0.5004673004150391
中京学院大中京, 0.48925092816352844
宇部鴻城, 0.4733284115791321
霞ヶ浦, 0.466774582862854
立命館宇治, 0.46319228410720825
明豊, 0.4462939500808716
至学館, 0.4352903962135315
高松商, 0.4340698719024658

----- 下位10 -----
星稜, 0.24327649176120758
敦賀気比, 0.23875592648983002
東海大相模, 0.2364814579486847
旭川大高, 0.2267458140850067
近江, 0.19664573669433594
富島, 0.19397053122520447
明石商, 0.1847032606601715
聖光学院, 0.17421779036521912
津田学園, 0.13054664433002472
米子東, 0.11580871045589447

類似度が最も近いのは熊本工業高校(熊本県)。校歌の歌詞を比較する限り、なんとなく雰囲気は似ている気がしないでもない。
一方で類似度が最も低いのは米子東高校(鳥取県)、津田学園高校(三重県)、聖光学院高校(福島県)という結果。
履正社高校が「心意気」のようなものを歌っているのに対し、後者は「地区内の情景」を中心に歌っており、そこに差が出たと思う。

習志野高校(千葉県)

小川監督の母校。エースで4番として甲子園を制覇したすごい人。習志野高校→中央大学→河合楽器→ヤクルト。
こちらの校歌は「地区内の情景」が歌詞に盛り込まれている。

-----上位10-----
八戸学院光星, 0.6506714224815369
鶴岡東, 0.5989689826965332
海星, 0.5831693410873413
敦賀気比, 0.5715303421020508
高松商, 0.5709145665168762
作新学院, 0.5330126881599426
智弁学園, 0.5247273445129395
明豊, 0.5118856430053711
明徳義塾, 0.5020108222961426
山梨学院, 0.5013476610183716

----- 下位10 -----
花巻東, 0.32011330127716064
宇和島東, 0.3191990852355957
関東一, 0.3103983402252197
秋田中央, 0.3043280839920044
石見智翠館, 0.2957981526851654
聖光学院, 0.27464526891708374
明石商, 0.27279072999954224
旭川大高, 0.2064805030822754
静岡, 0.20234154164791107
米子東, 0.1564585417509079

最も類似度が高いのは、八戸学院光星高校(青森県)。まさかの、Gという球団のS本選手の母校。
両校の共通点を見る限り、学び舎(校舎)への愛という点か?

まとめ

校歌を分析することで、校風が近い学校をクラスタリングできるか?

  • 結論としてはできるような気がする(直感)。
  • まだまだ改善の余地はあるが、概ね納得感が高い結果が出たと思っている。
  • ただ、「自分が各校の校風にそれほど詳しくない」という事実に途中で気がついてしまった。

以上より、校歌の歌詞を分類することはできそうだが、そこから校風を分析するためには、校風に関する知見を持った方の協力が必要になりそうです。(各校関係者の皆様、並びに小川監督・山田・中山両選手からのコメントをお待ちしています)

最後に

偉大なる先駆者の方、非常に参考にさせていただきました。誠にありがとうございます。
夏の甲子園は8/6開幕です。今年も球児たちの暑い夏に期待して、筆を置かせていただきます。
(ご指摘事項などがありましたら、頂戴できると幸いです)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした