【Python】邦楽の歌詞の傾向をワードクラウドで可視化する~歌詞データ取得編~
こんにちは、分析屋の長田です。
以前Spotofy APIを利用して、Spotify内で蓄積しているデータへアクセスして簡単な分析をしてみました。
Spotify APIでは楽曲ごとに様々な指標で数値化されており、見ていくと結構面白かったです。気になる方は以下から見てみてください。そしてこの記事に戻ってきてください。
次のステップとして、いろんなアーティストの楽曲の歌詞を元にワードクラウドを作成して、Spotifyデータと掛け合わせて分析できたら面白いなーと思っています。
しかし、残念ながらSpotofy APIでは歌詞データを取得できず、代用できそうなサービスを探したところ、たどり着いたのがGenius APIでした。
Genius APIとは
Geniusとは、世界最大手の歌詞検索サイトです。日本の楽曲の歌詞も掲載されています。
Genius APIは、Geniusが公開しているWeb APIで、Geniusで掲載している楽曲の歌詞データを無料で取得することができます。
実際の利用方法については追って説明していきます。
Geniusアカウントの登録・API設定
まずは以下からアカウント登録を行います。
Sign upを押下するとメニューが出てくるので、お好きな形式でアカウントを作成してください。
アカウント作成に成功してもメールが届いたりすることはなく、本当にできているのか不安になりますが、メールアドレスが合っていることを確認できていれば大丈夫です。
次に、以下からAPIトークンを入手します。
New API Clientを押下して、必要情報を入力します。
入力情報はこんなんで大丈夫です。入力できたらSaveしましょう。
作成したAPI Clientの情報が出てきます。Generate Access Tokenを押下するとトークンが生成されるので、後に使用するため控えておきます。
これでアカウント登録とAPI設定は完了です。
歌詞データを取得する
設定ができたら実際に取得していきます。
import lyricsgenius
# Genius APIのトークンを設定
token = 'あなたのトークンを貼り付けてください'
# LyricsGeniusクライアントを作成
genius = lyricsgenius.Genius(token)
# 検索したいアーティスト、楽曲名を設定
artist_name = 'スピッツ'
track = '空も飛べるはず'
# アーティストを検索
artist = genius.search_artist(artist_name, max_songs=5)
# 指定した曲を検索して、該当する曲の歌詞を取得
song_lyrics = genius.search_song(track, artist.name).lyrics
print(song_lyrics)
実行すると、こんな感じで結果が返ってきます。
処理の流れとしては、以下のようになっています。
①入力されたアーティスト名でGenius内で検索
→フルネームでなくとも、登録されているアーティスト名に変換してくれます(ミスチル→Mr.Children)
②ヒットしたアーティストの楽曲を最大10曲表示
→意図した検索になっているかをここで判断します。不要な場合は、max_songsパラメータで表示数を指定しているので、、max_songs=0にしてあげればよいです。
③ヒットしたアーティスト名で、入力した楽曲があるか検索し、楽曲がヒットしたら歌詞を表示
→先にアーティスト名で条件を絞り込んでいるため、存在する楽曲でもそのアーティストの楽曲でない場合は結果が返ってきません。
まとめ
Genius APIで楽曲の歌詞データを取得してみました。簡単に利用できるAPIなので、音楽関連の分析をしてみたい方はぜひSpotify APIと合わせて利用してみてください。次回は取得した歌詞データを形態素解析にかけて、ワードクラウドにして見てみようと思います。
株式会社分析屋について
弊社が作成を行いました分析レポートを、鎌倉市観光協会様HPに掲載いただきました。
ホームページはこちら。
noteでの会社紹介記事はこちら。
【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!
【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。
【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。
【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。
【SES】
SESサービスも行っております。