ドロかわ症候群

ゲームの感想とかプリパラ(アニメ)のデータとか纏めます

歌詞テキストデータの抽出語の取捨選択やってみた

やってみます

 

なんやかんやでプリマジのミニアルバム発売前に解析用データが完成してしまったので今回は下処理をします

 

本題に入る前に私がいつもやっているテキストデータの解析の準備の流れを説明します。

 

途中で飽きます

 

CSV形式のデータの準備

例えば今回は歌詞を扱うので歌詞のカラムは必須です。

あと、当然ですが曲名も必須です。

最低限これだけあれば十分ですが、今回はシリーズごとの変化とかを見たいのでシリーズのカラムを追加してプリリズ、プリパラ、プリチャン、プリマジ、キンプリと割り振っていきます。

 

f:id:purinii88:20220226165624p:plain

他にも”分析して~”と思うことについてどんどん列を追加していきます。

例で出してる画像もC~J列の間に色々カラムがあるのですが内緒にしておきます。

1回作ったら後は新曲が出るたびにこのファイルに追加していきます。

簡単に言っていますが、ここが一番つまらない作業であり、だいたい面倒になって挫折するところです。

頑張って乗り切ります。

このデータについては別の記事で詳しく触れます。たぶん

 

ウキウキで解析にかける

頑張って解析用データを作成したので、そらもうウキウキで解析にかけます

今回はKHCoderを使います。KHCoderはテキストデータをいい感じにあれやこれやして、いい感じに可視化してくれるいい奴です。

新規プロジェクトを作成して、分析対象とする列を歌詞のデータが入っている列にします。

データがの準備が終わって気分が良いので、早速、前処理の実行を行います。

前処理を行うと歌詞データの形態素解析を行ってくれます。

 

前処理が終わると色々と可視化されたデータが見れるようになります。

今回はシリーズごとの歌詞の違いを見てみようと思うので対応分析を行います。

 

f:id:purinii88:20220226171845p:plain

 

色々設定はありますが、外部変数にシリーズの列を選びます。

後はよく分からないのでほとんどデフォルトの状態にしておきます。

解析します・・・

f:id:purinii88:20220226172055p:plain

アイドルとかトモダチとかプリズムとかキラッとかいい感じの単語が表示されている一方で、””とか””とか””とか””とか”S”とか一文字だけの単語も多いです。

 

というわけで今回はこの1文字の単語などをいい感じに良くして結果をいい感じに修正していきます。

今回「いい感じ」というのが異常に多いのはデータ分析系のそれっぽい単語を調べるのが面倒だからです。通じりゃいいんだよ

 

反省する

何が悪かったのかを考えます。

結論から言うと前処理を行う前に語の取捨選択を行わなかったことです。

ここから今回の本題です。前置きが長い!

前処理から語の取捨選択を選ぶとこんな画面が出ます

f:id:purinii88:20220226173213p:plain

この画面の強制抽出する語の指定に追加することで、その単語を一つの塊として抽出してくれます。

例えばこれが未設定だと、”プリ☆チャン”という単語は”プリ-未知語”、”チャン-人名”というように分割されてしまう(☆はどこかに行きました)のですが、ここに”プリ☆チャン”を追加しておくことで”プリ☆チャン-タグ”として認識されます。

逆に使用しない語の指定に追加することで、その単語は抽出されなくなります。

先ほど一文字で抽出されていた”S”が出現する箇所を見てみると

f:id:purinii88:20220226174446p:plain

ほとんどが、It'sとかLet'sのsであることが分かります。

ItやLetは別で抽出されているので”S”単体は不要だなと思ったら、使用しない語に”S”を指定します。

 

このように1度分析して抽出結果を見てみないと分からないことも多いので、ウキウキで最初に分析してみるのは間違っていないと思います(自己弁護)

 

プリティーリズムプリパラといったシリーズタイトルを強制抽出語リストに加え、Sを抽出語から排除して、もう一度前処理を行い対応分析をしてみます。

f:id:purinii88:20220226192006p:plain

ちょっと変わりましたね。ちょっとですが。

今更ですが、この図の見方を簡単に説明すると

  • 原点付近は各シリーズで共通して使用されている言葉
    • プリマジは現状DreamingSoundしか歌詞データが無いのでデータが少なく中心付近に位置している(はず)
  • プリパラなどシリーズ名の付近にある単語はそのシリーズの曲でよく使われている単語
    • プリパラが原点の右上に位置し、そのさらに右上にあるプリパラ(単語)は特にプリパラの曲で多く使われており、他のシリーズではあまり使われていないという意味

ということです。

 

では”S”の他の一文字の単語はどのような場面で使われているのか見ていきます。

 

①ぷ・え

”ぷ”で検索してみます。

f:id:purinii88:20220226175140p:plain

(SE:ティーカップが割れる音)

 

”え”でも検索してみます

f:id:purinii88:20220226192915p:plain

 

一体...

f:id:purinii88:20220227191134p:plain


誰の...

f:id:purinii88:20220227191155p:plain


 どの曲なんだ...?

 

・・・

 

 

ぷり”と”えも”を強制抽出語に加えます。

f:id:purinii88:20220226193722p:plain

めちゃくちゃ露骨に出現してきました。しかも、”ぷ”はまだ生き残ってるし。

 

こんな感じで怪しそうな単語を見つけては強制抽出リストや排除する語のリストに加えていきます。

 

ここで記事を書くのが飽きてきたので、似た感じの諸々の作業の記述については省略します。

 

Unicode記号

そもそもKHCoderは日本語テキストマイニング用のソフトなので、記号には弱いです。

ソフト自体にもテキストチェックを行い、半角記号を取り除く機能があるのですが、せっかく特定した絵文字を取り除くのはもったいないのでそのままにしています。

すると...

f:id:purinii88:20220227192034p:plain

こんな感じでUnicode記号だったものがx{....}というような16進数の形に変換されてしまいます。

というわけでx{21e8}などのUnicode記号だったものを強制抽出リストに加えていきます。

後でどれがどれかわかるようにUnicode記号との対応表も作っておきましょう。

 

そしてこれでもう一度前処理を行うと...

f:id:purinii88:20220227193000p:plain

変わりませんでした。勝手に未知語にするな

 

 

 

というわけでいい感じに抽出語リストを作って、対応分析を行った結果がこうなりました。

f:id:purinii88:20220227193245p:plain

いい感じになりました。GOとGO!がありますが、これはちょっと面倒な感じだったのでこのままにしてあります。今度直すかも

 

というわけで次回記事ではこの図を見てあーだこーだ言いたいと思います

元気があったら書きます

たぶん

おそらく