Edited at

「Perfume FES!! 」だし、コマンドラインでぬるっと歌詞分析してみた

More than 1 year has passed since last update.


tl;dr


  • 「Perfume FES!! 2017」ということで、歌詞分析してみました(先に断っておきますが、精度は低いのであしからず)

  • 分析対象総曲数: 91曲

  • 総単語数: 11854単語

  • 結果:

部門
単語
回数

総合部門1位
ない
402回

名詞部門1位
キミ
227回

動詞部門1位
好き
66回


調査に関して


1. ツール

◆MeCab

http://taku910.github.io/mecab/

mecabコマンド: 日本語の形態素解析するために使用。

◆Data Scinece at the Command Line

https://github.com/jeroenjanssens/data-science-at-the-command-line

headerコマンド: csvにheader行を加えるために使用(無くてもよい)。

◆CSVKit

http://csvkit.readthedocs.io/en/1.0.2/

csvlookコマンド: カンマ区切りのデータをコマンドラインから確認するために使用(無くてもよい)。


2. データ獲得

歌詞の取得はrubyのnokogiriで行いました。今回は割愛。

※複製権侵害の防止のためか、歌詞掲載サイトによってはソースコードがuglifyされていたり、403ステータスを返したりします。


3. 総単語数


  • 11854単語

< all_lyrics.txt mecab -Owakati | tr '[:upper:]' '[:lower:]' | 

grep -oE '\S{2,}' | wc -w


◆mecabコマンド

日本語を形態素解析したり、漢字の読みがなを取得したりする。


  • -Owakati

分かち書き。単語を半角スペースに区切った形での出力。


◆trコマンド

文字の一括置換を行う。translateの略。

今回は集計のために、アルファベットの大文字を小文字に統一するために使用。


◆grepコマンド

文字列の検索を行う。Global Regular Expression Printの略。

今回のケースだと、egrep(Extended GREP)のoオプションでも同じ結果が得られる。


  • -E, --extended-regexp

拡張正規表現。半角スペースやタブ以外の2回以上(2語以上の単語)を一致させるために使用。


  • -o, --only-matching

マッチング部分のみ抽出するオプション。


◆wcコマンド

指定したファイルの行数・単語数・バイト数を表示する。


  • -w

単語数のみ表示。


4. ランキング結果出力

< all_lyrics.txt mecab -Owakati | tr '[:upper:]' '[:lower:]' | 

grep -oE '\S{2,}' | sort | uniq -c | sort -nr |
awk '{print $2","$1}' | header -a word,count > perfume.csv


◆sortコマンド

行を並び替える。


  • -n, --numeric-sor

先頭の数字や記号("+" , "-" , "." など)を数値とみなして,ソートする。先頭の空白は無視する。


  • -r, --reverse

逆順にソートする。


◆uniqコマンド

ソート済みのファイルから重複した行を削除する。


  • -c, --count


行表示の際,それぞれの行の数も表示する

sort | uniq -c | sort -nrはランキング表示によく用いるので、もはやイディオム。


◆awkコマンド

空白などで区切られたテキストを処理する。

※今回は、集計数と単語の順を入れ替え、またカンマを挿入するために使用。


◆headerコマンド

ヘッダー行を追加、置換、削除する。


  • -a

ヘッダー行の追加。


◆csvlookコマンド

カンマ区切りのデータをコマンドラインから確認する。

※リダイレクトで結果をcsvファイルに格納していますが、csvlookコマンドでターミナル上で以下のように整形された形で確認可能です。

word
count

ない
402

キミ
227

たい
104

you
102

この
96

てる
94

なる
81

から
80

ah
74

こと
73

けど
69

きっと
68

me
67

好き
66

よう
64

そう
64

wah
60

だけ
59

でも
56


その他: 調査対象に関して等


総曲数


  • 91曲


調査対象: 歌詞一覧


  • 1mm

  • 23:30

  • 575

  • Baby cruising Love

  • Butterfly

  • Baby Face

  • Clockwork

  • Cling Cling

  • Cosmic Explorer

  • Dream Fighter

  • Dream Land

  • DISPLAY

  • edge

  • edge(⊿-mix)

  • Enter the Sphere

  • FAKE IT

  • FLASH

  • FLASH (Album-mix)

  • GAME

  • GLITTER

  • GLITTER(Album-mix)

  • Have a Stroll

  • Hurly Burly

  • Handy Man

  • Hold Your Hand

  • I still love U

  • Kiss and Music

  • love the world

  • MY COLOR

  • Magic of Love

  • Miracle Worker

  • NIGHT FLIGHT

  • Next Stage with YOU

  • Perfume

  • Puppy love

  • plastic smile

  • Party Maker

  • Pick Me Up

  • Relax In The City

  • SEVENTH HEAVEN

  • Speed of Sound

  • Spring of Life

  • Spending all my time

  • Sleeping Beauty

  • Sweet Refrain

  • STORY

  • TwinkleSnow Powdery Snow

  • Take me Take me

  • The best thing

  • TOKYO GIRL

  • VOICE

  • wonder2

  • Zero Gravity

  • 引力

  • いじわるなハロー

  • エレクトロ・ワールド

  • エレベーター

  • おいしいレシピ

  • 微かなカオリ

  • コンピュータードライビング

  • コンピューターシティ

  • 心のスポーツ

  • コミュニケーション

  • 恋は前傾姿勢

  • シークレットメッセージ

  • シークレットシークレット

  • ジェニーはご機嫌ななめ

  • スウィートドーナッツ

  • スパイス

  • セラミックガール

  • だいじょばない

  • チョコレイト・ディスコ

  • 時の針

  • 透明人間

  • ナチュラルに恋して

  • 願い

  • 願い(Album-mix)

  • ねぇ

  • パーフェクトスター・パーフェクトスタイル

  • ビタミンドロップ

  • ファンデーション

  • 不自然なガール

  • ふりかえるといるよ

  • 宝石の雨

  • ポリリズム

  • ポイント

  • マカロニ

  • 未来のミュージアム

  • モノクロームエフェクト

  • ワンルーム・ディスコ

  • リニアモーターガール

  • レーザービーム


参考資料

※manコマンドで参照