LoginSignup
4
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-06-02

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コマンドで参照

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2