雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

ポルカドットスティングレイの歌詞データをPythonを使ってキーフレーズ抽出してみた -PKE‐

これはなに?

これまでポルカの歌詞データを使って自然言語を試してみたのですが、前々からやってみたかったキーフレーズ抽出を今回やってみようと思います。

キーフレーズ抽出とは

キーフレーズ抽出とは言葉の通りですが、文章を分析して、文章の中でその主題を表しているワードを抽出するイメージです。例えば、大谷選手の本塁打に関するニュース記事をPKEを使って読み込んでみると ”メジャーリーガー” や ”本塁打” というような単語がキーワードとして抽出されます。

詳細については、以下の記事がわかりやすいので参考にしてください。
https://www.ogis-ri.co.jp/otc/hiroba/technical/similar-document-search/part5.html

今回やること

キーワード抽出のライブラリであるPKEを使ってポルカの歌詞を分析して、キーワードを抽出します。

f:id:ykoomaru:20211210223640p:plain

PKEの動作確認

先ほど例で記載した大谷選手の記事を分析すると以下のようなキーワードが抽出されます。
スコアが高いほど、その文章の主題をよく表しているワードとなります。
f:id:ykoomaru:20211208222355p:plain

キーフレーズ抽出

PKEのライブラリが優秀なので手順としてはかなり簡単で、PKEに文章を食わせてあとはデータフレームで成形するだけです。

歌詞データの取得

以下の記事を参考に、歌詞データを取得します。
WordCloudで凛として時雨の歌詞の傾向を可視化する - Qiita

キーフレーズ抽出

PKEに歌詞データをインプットして、重要度の高いワードをキーワードとして抽出します。
阿吽のキーワードのトップ5を抽出した結果は以下のようになります。ダーリンという単語はサビの冒頭のワードになるので、この曲のキーワードとしては適切な感じがありますね。
f:id:ykoomaru:20211208222918p:plain

各曲のキーワードトップ3を抽出してデータフレームに入れた結果が以下のような形です。 ぱっと見た感じ確かに曲をイメージできるキーワードが抽出されているような感じがします。
個人的には、JETの "taking off" とかはタイトルにしても良いくらいいいワードチョイスしてると思います。 f:id:ykoomaru:20211208230232p:plain

サンプルコード

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