これはなに?
これまでポルカの歌詞データを使って自然言語を試してみたのですが、前々からやってみたかったキーフレーズ抽出を今回やってみようと思います。
- ポルカドットスティングレイの歌詞どうしの類似度をPythonで算出してみた -Universal Sentence Encoder‐ - 雲のメモ帳
- ポルカドットスティングレイの歌詞データをPythonで感情分析してみた -BERT日本語モデル‐ - 雲のメモ帳
- ポルカドットスティングレイの歌詞データの分析結果を可視化してみた -TensorBoard- - 雲のメモ帳
- ポルカドットスティングレイの歌詞データをPythonで機械学習、分析してみた -word2vec‐ - 雲のメモ帳
キーフレーズ抽出とは
キーフレーズ抽出とは言葉の通りですが、文章を分析して、文章の中でその主題を表しているワードを抽出するイメージです。例えば、大谷選手の本塁打に関するニュース記事をPKEを使って読み込んでみると ”メジャーリーガー” や ”本塁打” というような単語がキーワードとして抽出されます。
詳細については、以下の記事がわかりやすいので参考にしてください。
https://www.ogis-ri.co.jp/otc/hiroba/technical/similar-document-search/part5.html
今回やること
キーワード抽出のライブラリであるPKEを使ってポルカの歌詞を分析して、キーワードを抽出します。
PKEの動作確認
先ほど例で記載した大谷選手の記事を分析すると以下のようなキーワードが抽出されます。
スコアが高いほど、その文章の主題をよく表しているワードとなります。
キーフレーズ抽出
PKEのライブラリが優秀なので手順としてはかなり簡単で、PKEに文章を食わせてあとはデータフレームで成形するだけです。
歌詞データの取得
以下の記事を参考に、歌詞データを取得します。
WordCloudで凛として時雨の歌詞の傾向を可視化する - Qiita
キーフレーズ抽出
PKEに歌詞データをインプットして、重要度の高いワードをキーワードとして抽出します。
阿吽のキーワードのトップ5を抽出した結果は以下のようになります。ダーリンという単語はサビの冒頭のワードになるので、この曲のキーワードとしては適切な感じがありますね。
各曲のキーワードトップ3を抽出してデータフレームに入れた結果が以下のような形です。 ぱっと見た感じ確かに曲をイメージできるキーワードが抽出されているような感じがします。
個人的には、JETの "taking off" とかはタイトルにしても良いくらいいいワードチョイスしてると思います。
サンプルコード
gist0583b06f18d7c6b044ad3b737e465177
最後に
PKEを使って歌詞のキーワード抽出をやってみましたが、今回の検証の範囲だとそこそこの精度がでているんじゃないかなと言う印象でした。PKEのインストールに少し戸惑ったのですが、インストールしてしまえば後はPKEに分析した文章入れるだけなので気になる方は気軽に試せるので触ってみてください。
参考
Unsupervised models — pke 1.8 documentation
Validation request
https://www.ogis-ri.co.jp/otc/hiroba/technical/similar-document-search/part5.html