【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による似た校歌の抽出

# コーディング
## ライブラリインポート
```python:
import pandas as pd
import matplotlib.pyplot as plt
import MeCab
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
```
## MeCabによる文章の分割
```python:
# 分割結果を見た感じ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]))
```
## 学習
```python:
#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')
```

パラメータは参考とした別サイトの方と全く同じパラメータを指定。
[参考（わかりやすかった）](https://deepage.net/machine_learning/2017/01/08/doc2vec.html)

## 分析前の準備
[先駆者様の記事](https://qiita.com/velvetops/items/e3f9fe6e228e4ff8c786)を真似させていただき、学校名を入力したら「類似度が高い校歌」「類似度が低い校歌」を出力する関数を作成。

# 分析
## 明豊高校（大分県　※ゲスト）
ポップすぎる曲調の校歌として、界隈では有名。校歌らしくない校歌なので、独自性の高い結果となることを期待して対象校入り。校歌の作曲は南こうせつ氏。

```python:
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年創立の伝統校で、校歌は雄々しく、漢字がいっぱい。

```python:
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番として甲子園を制覇したすごい人。習志野高校→中央大学→河合楽器→ヤクルト。
こちらの校歌は「地区内の情景」が歌詞に盛り込まれている。

```python:
-----上位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開幕です。今年も球児たちの暑い夏に期待して、筆を置かせていただきます。
（ご指摘事項などがありましたら、頂戴できると幸いです）