読者です 読者をやめる 読者になる 読者になる

Memo plus Alpha

メモにプラスアルファを加えて価値ある情報に。

RMeCabを使ってwordcloudを作る

(1)RMeCabをインストール
install.packages("RMeCab", repos = "http://rmecab.jp/R")

※場合によっては管理者権限でRを起動する必要あり(ショートカットを右クリックから) 

 

(2)"tm"と"wordcloud"をpackagesのメニューからインストール

 

(3)パッケージの読み込み
library(wordcloud)
library(RMeCab)

 

(3)分析対象を決める
分析対象のテキストをマイドキュメント(Rが自動で参照できるフォルダ)に設置。

ここではdata.txtとした。

 

(4)RMeCabで頻度を解析
data.freq=RMeCabFreq("data.txt")

→結果はこのようになる。

Term Info1 Info2 Freq
1 え フィラー * 1
2 ありがとう 感動詞 * 1
3 おお 感動詞 * 1
4 はい 感動詞 * 1
5 C 記号 アルファベット 1
6 ・ 記号 一般 29

 

(5)データのフィルタリング
data.sub=subset(data.freq, Info1=="名詞" | Info1=="動詞", c(Term,Freq))
# 名詞か動詞を指定。条件には「|」(or)か「&」を使う(||、&&は不可)

#subsetはデータフレームから条件を指定してデータを抜き出せる関数。

#subset(データ,条件(列名で指定可能),出力列)

 

data.sub2=subset(data.freq, Info1=="名詞" & Info2!="数", c(Term, Freq))
#名詞を指定、数を除外

 

(6)描画
wordcloud(data.sub[,1], freq=data.sub[,2], min.freq=3,random.order=F)
#一つ目で単語の行、freq=で単語の頻度、min.freqで最低頻度、random.orderで配置を決める

★色をつける
wordcloud(data.sub[,1],freq=data.sub[,2],min.freq=3,random.order=F, color=c("pink","yellow","green", "blue", "red"))
#右が頻度大の色

wordcloud(data.sub[,1],freq=data.sub[,2],min.freq=3,random.order=F, color=rainbow(7))
#rainbowで色数を指定

★データの書き出し
write.table (data, file = "data.txt", sep = "\t", quote = FALSE, row.names = FALSE)

 

参考:ワードクラウドを作る - langstat blog