#BERTを使ってちょっと遊んでみようと思い立ち、歌詞の分類をやってみた。
このページをご覧の方ならご存知の通り、BERTは近年の自然言語処理分野にブレークスルーをもたらしたモデルの一つです。
今回はこれを使ってなにかやわらかいことをやってみよう、と思い立ち、歌詞からアーティストを推論できるかどうか実験をしてみました。
今回、参考・利用させていただいたのはhidekiさんのこちらのページ。コードはほとんどこちらのものを流用させていただいているので、詳しくはこちらを参照してください。
SentencePiece + 日本語WikipediaのBERTモデルをKeras BERTで利用する
そして、こちらのyoheikikutaさんの日本語WIKIで事前学習したモデルです。
BERT with SentencePiece を日本語 Wikipedia で学習してモデルを公開しました
動作環境はコラボラトリー。今回、私が用意したのは訓練・テスト用の歌詞データセットだけです。
## 椎名林檎と稲葉さんの詩を分類してみる
まずは簡単な2クラスでやってみよー!!
データは歌詞が個性的、そして曲数がたくさんあるあたりということで、まず椎名林檎さんをチョイス。
次に対照的な感じで、やっぱり曲数がたくさんある人といえばー、、異論はあろうかと思いますが、B'zをチョイスしました。
次に、林檎さんとB'zの曲の中から、主に日本語で書かれている曲、そして、林檎さんあるいは稲葉さんが作詞のものを選びます。
それぞれ25曲を適当にピックアップしてデータを作成しました。適当というか、あいうえお順で上から順に選んだだけですね、ハイ。
サンプル数が少ないですが、お遊びなのでご容赦を。
(著作権の関係がありますのでデータセットは公開できませんが、歌詞にクラス分類ラベルふっただけです)
椎名林檎 | B'z |
---|---|
愛妻家の朝食 | あいかわらずなボクら |
アイデンティティ | 愛と憎しみのハジマリ |
あおぞら | 愛のバクダン |
茜さす 帰路照らされど・・・ | 愛のままにわがままに 僕は君だけを傷つけない |
ありあまる富 | I'm in Love? |
ありきたりな女 | Out Of Control |
暗夜の心中立て | 赤い河 |
意識 | 紅い陽炎 |
依存症 | アクアブルー |
映日紅の花 | 明日また陽が昇るなら |
今 | 熱き鼓動の果て |
色恋沙汰 | あなたならかまわない |
いろはにほへと | 甘く優しい微熱 |
薄ら氷心中 | 雨だれぶるーず |
おいしい季節 | アマリニモ |
おこのみで | アラクレ |
おだいじに | ARIGATO |
同じ夜 | ある密かな恋 |
歌舞伎町の女王 | ALONE |
カプチーノ | イカせておくれ! |
カーネーション | イカロス |
虚言症 | Exit To The Sun |
ギブス | イチブトゼンブ |
ギャンブル | 一心不乱 |
茎 | IT'S SHOWTIME!! |
で、この中からそれぞれ20曲を訓練データ、5曲をテスト用データとしてランダム抽出して、分類を実施した結果が以下のものです。
驚異の精度!!
確かに、林檎さんと稲葉さんでは全然違いますよ。でもだいたい歌詞って恋とか愛とか、そんなかんじにあんな感じで方向性としては似てるじゃないですか。だがしかしこのサンプル数でこの精度。100%ってなんか噓くさいよね。
むしろあまりにも成績が良いとバグやなにかの間違いを疑うエンジニアあるあるです。
ということでもう少し難問を与えてみましょう。
## 椎名林檎と稲葉さんとSURFACE(椎名慶治さん)の詩を分類してみる
林檎さんの歌詞はあまりにも個性的ですので、B'z(稲葉さん)の歌詞に近い歌詞のアーティストは誰かいないのか?!B'zのファン歴20数年の古参ファンの方に聞いてみたところ、SURFACE(サーフィス)がわりと似ているんじゃないかとの情報を入手。
すみません、勉強不足で知りませんでした。SURFACEさん。Microsoftのアレではありません。
うーん、タイトルだけ眺めていても、確かに似てるような似てないような。。。でもうっかりしたことを言って炎上したら大変ヨ!そうだ、ここは中立公正なAIに聞いてみよう!教えてBERT!
今回も訓練データはそれぞれ20曲、テストデータは5曲です。
椎名林檎 | B'z | SURFACE |
---|---|---|
愛妻家の朝食 | あいかわらずなボクら | アイムファインセンキューアンジュー? |
アイデンティティ | 愛と憎しみのハジマリ | airy |
あおぞら | 愛のバクダン | about love |
茜さす 帰路照らされど・・・ | 愛のままにわがままに 僕は君だけを傷つけない | Is life beautiful? |
ありあまる富 | I'm in Love? | イッツオーライ |
ありきたりな女 | Out Of Control | WAIT! |
暗夜の心中立て | 赤い河 | 渦 |
意識 | 紅い陽炎 | 嘘じゃなく 愛していた |
依存症 | アクアブルー | 歌 |
映日紅の花 | 明日また陽が昇るなら | 欠片1ピース |
今 | 熱き鼓動の果て | 傷痕 |
色恋沙汰 | あなたならかまわない | キミスター★ |
いろはにほへと | 甘く優しい微熱 | 君の声で 君のすべてで… |
薄ら氷心中 | 雨だれぶるーず | 君を平穏から救い出せるのは |
おいしい季節 | アマリニモ | 切り拓けマイセルフ |
おこのみで | アラクレ | くしゃみ -たまり場 パート2- |
おだいじに | ARIGATO | クセになりそうだ |
同じ夜 | ある密かな恋 | CROW |
歌舞伎町の女王 | ALONE | 偶然=必然 |
カプチーノ | イカせておくれ! | ココロのつぼみ |
カーネーション | イカロス | 御褒美 |
虚言症 | Exit To The Sun | ゴーイングmy上へ |
ギブス | イチブトゼンブ | さぁ |
ギャンブル | 一心不乱 | 死が二人を分かつまでは |
茎 | IT'S SHOWTIME!! | シンプルシンボル |
はい、ドン!!
BERT「B'zとサーフィス?全然似てないですよ。一目瞭然じゃないですか。」
※上記結果はベストな結果を表示しています。データセットの訓練データとテストデータへの分割はランダムにシャッフルされるため、試行によっては実際のところもう少し成績は下がります。それでもf1値が0.8を下回ることはあまりありませんでしたので、かなり精度は高いと考えてよいでしょう。
以上!