yuki’s diary

大学生活を満喫中(学生生活じゃないよ!)

Rでワードクラウド

 

本日、ワードクラウドに挑戦してみます。

質的データの扱い方がわからな過ぎて、アンケートの結果をワードクラウドでおしゃれに表示させようということです。

ワードクラウドでは、文章の中での出現頻度が高い単語が大きな文字で表示されます。

Rの勉強にもなりそうなので、ちょっと頑張ってみます(^^)

このブログを参考にしました。

[R] テキストマイニング~ワードクラウド~ - Qiita

普通は、これを見るだけで出来るんでしょうが、私はコードを書いたりとかの経験がないので、これだけ見てもよくわからないところがありまして、色んな人に聞いたりしながらちょっとずつ進めました。

 

1.サンプルデータの作成

まず最初に、サンプルデータを作ります。

私は、お化け屋敷から出てきた人からの感想を入力して、そのデータを使いました。

エクセルに入力していましたが、テキストデータにすると良いようなので、エクセルで入力したものをメモ帳にコピペして、テキストファイルを作りました。

お化け屋敷の感想のデータなので、「obake.text」というファイル名にしました。

 

2.前処理

前処理には、RMeCabパッケージを使います。

最初に、ここ↓でMeCabをダウンロードしておきます。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer (taku910.github.io

 

ここまできたらいよいよRstudioでMeCabを使えるようにします。
Rを起動して以下を実行します。

 

```

install.packages("RMeCab", repos = "http://rmecab.jp/R")

```

 

これで、RMeCabがインストールされます。

次に、RMeCabを読み込むために以下を実行します。

 

```

library(RMeCab)

```

使えるようになったか確認するために以下を実行してみます。

 

```

library(RMeCab)

res <- RMeCabC("すもももももももものうち")

unlist (res)

```

 

すると以下のような結果が得られます。

 

    名詞     助詞     名詞     助詞     名詞     助詞  名詞
"すもも"     "も"   "もも"     "も"   "もも"     "の"  "うち" 
  

サンプルのtxtデータ「obake.text」をさっそくRMeCabで読み込んでみます。

以下のように入力し、「tm」と「magrittr」のパッケージをインストールします。

 

```

install.packages("tm")

install.packages("magrittr")

```

 

そして、この2つのパッケージを読み込みます。

 

```

library(tm)

library(magrittr)

```

 

そして、sampleという入れ物に、最初に作ったテキストファイル(obake.text)を読み込む作業をします。

 

```

sample <- VCorpus(DirSource(dir="local/"),readerControl=list(language="english"))
sample %<>% tm_map(stripWhitespace)#空白の削除
sample %<>% tm_map(removePunctuation)#記号の削除
sample %<>% tm_map(content_transformer(tolower))#大文字小文字統一
sample %<>% tm_map(removeWords,stopwords("english"))#ストップワードの削除

```

 

1行目でlocalというフォルダの中のテキストファイルをcorpusとして取り込む作業をしています。

2行目は、テキストファイルの中にある空白を削除する作業をしています。

3行目は、テキストファイルの中にある記号を削除します。

4行目は、大文字小文字を統一します。

5行目は、ストップワードを削除します。

今回の私のデータでは、2~5行目は入れなくてもよさそうですが、あっても困らないし、今後使うかもしれないので、メモしておきます。

 

読み込んだテキストファイルから、不要なもの(空白や記号などなど)を削除したりの作業ができたので、これを読み出します。

 

```

sample1 %>% as.character() %>% writeLines("obake_r.txt")

```

 

今度は、obake_r.textというタイトルにしてみます。

これは、R_practiceのファイルに保存されます。

(最初にRstudioを設定する時に、こうなるように設定しています。)

 

処理したobake_r.txtを改めてRMeCabで解析してみます。

以下の4つのパッケージを読み込みます。

 

```

library(RMeCab)
library(dplyr)

library(magrittr)
library(stringr)

```

 

インストールしていない場合は、読み込む前に以下を実行してインストールしておきます。

 

```

install.packages("RMeCab")

install.packages("dplyr")

install.packages("magrittr")

install.packages("stringr")

```

 

続いて、「obake_r.text」ファイルを読み込んで、品詞の抽出、数字や不要列の削除、出現頻度の集約、降順での並べ替えを行います。

 

```

sample <- RMeCabFreq("obake_r.txt")

sample_r1 <- sample %>% filter(Info1 %in% c("名詞", "形容詞")) %>%
 filter(Info2 != "数") %>% select(Term, Freq) %>% group_by(Term) %>% 
 summarise(count = sum(Freq)) %>% ungroup() %>% arrange(desc(count))

```

 

3.ワードクラウドにしてみる

実は、ここからはめちゃ簡単です。

ここまでに、謎のエラーなどもあり、すごく時間がかかっちゃいましたが。。。

ここまできたらもう安心です!!

 

これをインストール!

```

>install.packages("devtools")

```

からの、読み込み!

```

library(devtools)

```

そして、wordcloud2をインストールします。

 

```

devtools::install_github("lchiffon/wordcloud2")

```

 

それでは、いきます!!

```

wordcloud2(sample_r1, size=1.6, color='random-light', backgroundColor="black")

```

 

でました。


怖くて楽しいお化け屋敷だったんですね(^^)

 

色んな形にできます。

 

> library(wordcloud2)
> wordcloud2(sample_r1, size=1.6, color='random-light', backgroundColor="black", shape ="star")

 

 

 

これ星ですが…あんまり意味ないですね(^_^;)

怖いと楽しいでかすぎ…。

 

好きな形にかたどることもできます。

library(wordcloud2)
wordcloud2(sample_r1, figPath = "C:/R_practice/139202.jpg", size = 1.5,color = 'random-light', backgroundColor="black")

 

139202.jpgというのは、適当に見つけたお化けの画像です。

この形にしたかったのですが…。

 

似てるけどちょっと違います。

 

どこか間違えてるのかな?

 

もう少し勉強の余地はありますが、必要最低限のことはできそうです。

 

今日もよく頑張りました(^^)笑