Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【簡単テキストマイニング】歌詞から作品世界の魅力を探る

616 views

Published on

Hijiyama.R the Final (2017/11/26) のLTで発表した際の資料です。

Published in: Data & Analytics
  • Be the first to comment

【簡単テキストマイニング】歌詞から作品世界の魅力を探る

  1. 1. hijiyama.R The Final 2017.11.26 @show_55 / 月司祥 1
  2. 2. 音楽(歌)の魅力の一つ=「歌詞」 今回の題材はこちら! →それぞれ約20曲分の歌詞をテキスト化 2
  3. 3. 下準備(パッケージ読み込み) # 今回使うパッケージを読み込んでおく library(RColorBrewer) library(RMeCab) library(wordcloud) library(dplyr) library(magrittr) # この他 rvest というパッケージを使って、うまくいけば # スクレイピングが一気にサクッとできる可能性もある # っぽいのですが、今回そこは省略 (・∀・;) 3
  4. 4. RMeCabText関数を使った例(簡単!) # (ダイアログで対象のテキストファイルを指定) RMeCabText.result <- RMeCabText(file.choose()) # RMeCabText関数の結果の確認 【省略可】 head(RMeCabText.result, 8) # 単語ベクトルの作成 RMeCabText.result.2 <- unlist(sapply(RMeCabText.result, "[[", 1)) # 単語ベクトルの確認 【省略可】 head(RMeCabText.result.2, 8) # とにかくワードクラウドを描画してみる wordcloud(RMeCabText.result.2) 4
  5. 5. ・・・。 ほら なれる 遠. 乗り越え た. なく 絶対 ね. ライ fly しま. light さあ ずっと love 傷つ. sterpiece 素敵alright 向こ. っと じゃ start 抱きしめる 来る なんて よ. こと you もっと ひとり ずつ 見れ これから 全体 られ だけど 思. 自分 そ. なら 大切 叶え 諦め 自由 みよ あれ 幸せ 願っ 始め 生まれ diamond まだ 探し 歌声 続. 遠く 飛ぶだっ 歌. 変え 目覚める never あなた 両手 界中 shiny 地球 きっと でも 踊ろ ひとつ そっと そば もの lady ゆく っぱ. 言葉 ちゃ. まま キラメキラリ 最後 ゚キラ 忘れ コト 見え なれ 抱. すぐ なさ. ど. たく 約束 泣. land まで ため ぐっと 別れ already やる たった 頑. 蒼. 果て やれ 翔ば 我慢 見つける もし 輝く です 大好き song嗚 呼 わけ shine live 思っ ペ. だけ だって フレ. 仲間 信じ トキメキラリ 眩しく 想. ready dear way キラ 一番 レイン. ましょ 明日 笑っ あげる 追. あの 始めよ 大丈夫 どんな モノ 抱きしめ 込め 呼ぼ dream 歩. 坂道 たり みんな この れる 喜び あっ all stage 憧れ カッコ なっ smile かけ ゆき さえ 踊り 泣き 流し 悪. 輝き 歌お パ. な. メロディ. 好き 願 . てる 言わ み出そ また けど 笑顔 are 眠 り 向かっ 叶える なきゃ 歩こ 最高 ちゃ only より 感じ 晴れ それ なり 届き ねえ も. どこ ブレ. 知ら ある ア. 覚え 悲 しみ たら その だろ なる 叶. 希. 届け オ. つか 意. 新し. 進め 行く テキパキラリ でしょ 行 こ 日々 から って まっすぐ 言. 場所 ヤツ キス 出 来 る 眩し. し. 輝 . 5
  6. 6. 最低限のオプションを追加 max.words = 100, random.order = FALSE な. た. から この まで だって じゃ なく ずっと どんな 自分 なら たら だけ てる なる どこ あなた フレ. そ. もっと さあ きっと まま でしょ 頑. all 明日 モノ shine なり 好き よ. でも って あの こと より 笑顔 思. ある 幸せ lady ましょ way 行こ られ それ song 願 . diamond です キラメキラリ すぐ 輝 . 出 来 る love 悲 しみ ね. you ready なんて 眠 り 嗚 呼 れる つか 傷つ. 新し. ひとつ 叶える ねえ smile 約束 始め 抱きしめ dream ちゃ. alright 最高 たく 信じ 行く never 生まれ も. 歌お その 希. ほら light 絶対 なれる only だけど 悪. なさ. ため ライ みよ ゆき な. whoa この break let jungle funk say streets get watch feet one まで から now make yeah mighty life waytake jump wet can も. you その なんて だけ って gonna てる time clap こと all くれ 無. heart breakergotta痛み die ここ around run wanna strawberry warriors higher night raise れる the た. 上 げ town なら どこ 生 き name day bad chain 縲 € 消 え や る like louder for burn そ. 自分 する まだ 信じ サディ スティック dem fly brah put every lucifer beat hear pick this find boy maria 派手 じゃ あの 行こ 言わ ララララ. gun high な. た. から この まで だって じゃ なく ずっと どんな 自分 なら たら だけ てる なる どこ あなた フレ. そ. もっと さあ きっと まま でしょ 頑. all 明日 モノ shine なり 好き よ. でも って あの こと より 笑顔 思. ある 幸せ lady ましょ way 行こ られ それ song 願 . diamond です キラメキラリ すぐ 輝 . 出 来 る love 悲 しみ ね. you ready なんて 眠 り 嗚 呼 れる つか 傷つ. 新し. ひとつ 叶える ねえ smile 約束 始め 抱きしめ dream ちゃ. alright 最高 たく 信じ 行く never 生まれ も. 歌お その 希. ほら light 絶対 なれる only だけど 悪. なさ. ため ライ みよ ゆき 6
  7. 7. RMeCabFreq関数を使った例→品詞指定 # さっきと同様のダイアログでファイル指定 Freq1 <- RMeCabFreq(file.choose()) # 名詞・動詞に絞る Freq1x <- subset(Freq1, ( (Info1 == "名詞") | (Info1 == "動詞") )) # 更にInfo2(品詞情報の下位区分)の「非自立」・「接尾」を除外 type <- c("非自立","接尾") Freq1x <- subset(Freq1x, !Info2 %in% type) # 出現頻度で並び替えて、上位100までを取る。 Freq1x <- Freq1x[order(Freq1x$Freq, decreasing = T),] Freq1x <- head(Freq1x, n=100) 7
  8. 8. 英文テキストは別途処理! # 英語のみのファイルは、別途、英文用の形態素解析を行う。 # 英語の文章を形態素解析するフリーソフト「TreeTagger」を使用。 # http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/ # 出力結果のTSVファイルを外部エディタで開いて # 品詞も「形容詞、名詞類、副詞、動詞」に絞り込んだものを # 出現頻度降順にソートしたものをCSV保存するところまで # バッチファイル等を用いて「Rの外」で実施済(^^; # このCSVを読み込み、 E3freq <- read.delim("E3freq.csv", header=TRUE, sep=",") # 出現頻度の上位100までを取る。 E3frex <- head(E3freq, n=100) 8
  9. 9. TreeTagger の出力内容イメージ 9
  10. 10. 英文の品詞指定(例) 10
  11. 11. 改良版ワードクラウド例:im@s 11
  12. 12. 改良版ワードクラウド例:HiGH&LOW (J) 12
  13. 13. 改良版ワードクラウド例:HiGH&LOW (E) 13
  14. 14. 改良版ワードクラウド表示の準備 # 背景色を設定 par (bg="black") # フォントファミリー追加(メイリオ&游明朝) windowsFonts(MER = windowsFont("Meiryo")) windowsFonts(YUM = windowsFont("Yu Mincho")) 14
  15. 15. # im@s wordcloud(Freq3x$Term, Freq3x$Freq, scale = c(3, .5), random.order = FALSE, rot.per = 0, random.color = FALSE, family="MER", colors = brewer.pal(9, "RdPu")) # HiLO:HiGH&LOW (J) wordcloud(Freq1x$Term, Freq1x$Freq, scale = c(3, .4), random.order = FALSE, rot.per = 0, random.color = FALSE, family="YUM", colors = brewer.pal(9, "YlOrRd")) # HiLO:HiGH&LOW (E) wordcloud(E3frex$Term, E3frex$Freq, scale = c(3, .7), random.order = FALSE, rot.per = 0, random.color = FALSE, family="serif", colors = brewer.pal(9, "YlGnBu")) 15 改良版ワードクラウド表示
  16. 16. 単語感情極性対応表(PN Table) 16
  17. 17. 単語と感情特性辞書の連結(コード) # それぞれの語の代表表記(Term)と # PNスコア(V4)を取り出してくっつける。 Jdic2 <- Jdic %>% select(V1, V4) %>% rename(Term = V1) Jdic2 %<>% distinct(Term, .keep_all = TRUE) # ワードクラウドを作るときに使ったデータと連結 Freq1PN <- Freq1x %>% left_join(Jdic2) 17
  18. 18. 単語と感情特性辞書の連結(データ) 18
  19. 19. ポジティブ/ネガティブ語彙 【頻度順】:im@s 19
  20. 20. ポジティブ/ネガティブ語彙 【頻度順】:HiGH&LOW 20
  21. 21. お世話になったウェブページ [1/2] ●【Rでテキストマイニング】他人のタイムラインをWord Cloudで 可視化してみる in 「これで無理なら諦めて!世界一やさしいデータ分析教 室」 by Np-Ur氏 >> http://www.randpy.tokyo/entry/r_wordcloud ●RMeCab in 「RとLinuxと...」 by 石田基広氏 >> http://rmecab.jp/wiki/index.php?RMeCab ●Package wordcloud in CRAN >> https://cran.r- project.org/web/packages/wordcloud/index.html ●TreeTagger - a part-of-speech tagger for many languages in Helmut Schmid氏 website >> http://www.cis.uni- muenchen.de/~schmid/tools/TreeTagger/ ●【TreeTagger】TreeTagger入門 in kazu56氏 Qiita ページ >> https://qiita.com/kazu56/items/58e49ffe312ac6c28737 ●英文の形態素解析ツール「TreeTagger」の品詞コードの,意味・ 日本語訳の一覧表(完全版) in 「モバイル通信とIT技術をコツコツ勉強 するブログ」 >> http://computer- technology.hateblo.jp/entry/20150824/p1 21
  22. 22. お世話になったウェブページ [2/2] ●R+RMeCabで感情分析 in rmecab氏 Qiita ページ >> https://qiita.com/rmecab/items/b1a55a0e3a0a8637a461 ●単語感情極性対応表 in 高村大也氏 website >> http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html ●統計グラフの色 in 奥村晴彦氏 website >> https://oku.edu.mie- u.ac.jp/~okumura/stat/colors.html ●総称ファミリ名分類のフォント名一覧 in W3G website >> https://w3g.jp/sample/css/font-family ●10進、16進文字コードin HTMLユニコード(コンバータ) in code.cside.com >> http://code.cside.com/3rdpage/jp/unicode/converter.html ●THE IDOLM@STER データベース >> http://imas-db.jp/ ●歌ネット >> https://www.uta-net.com/ ●歌詞タイム >> http://www.kasi-time.com/ ●歌詞GET >> http://www.kget.jp/ 22

×