自己紹介
野球が大好きです。本記事が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開幕です。今年も球児たちの暑い夏に期待して、筆を置かせていただきます。
(ご指摘事項などがありましたら、頂戴できると幸いです)