普段は「kh coder」や「TTM(Tiny Text Mininer)」か、弊社のテキストマイニングツールを使っているのですが、R言語のエントリーでRMeCabを使ったものがあったので、妙に触りたくなりました。
今回は、クチコミサイトにあったクレジットカードのレビューをサンプルデータにグラフ化までやってみます。
・OS:Windows7
・R version:R version 3.3.0 (2016-05-03)
・IDE:RStudio ver0.99.902
・データ件数:1,575件
「RMeCab」とは?
オープンソースの形態素解析エンジンである「MeCab(めかぶ)」をR環境から直接利用できるパッケージです。
RMeCabのインストールはR環境からコマンドコピペ一発で出来ますが、MeCabのインストールはやや苦戦するかもしれません。ご利用になるRのバージョンに合致するMeCabをご確認の上、インストールしてください(・・・って、言うほど難しくないです)。
(参考ページ)RMeCab
http://rmecab.jp/wiki/index.php?FrontPage
ソースコード
# パッケージのロード
library(RMeCab)
# read.csvとか使わずに、RMeCabから直接読み込めるのは便利ですね。
card.res <- RMeCabFreq("card.txt")
# str()でデータフレーム構造を確かめておきましょう。
> str(card.res)
'data.frame': 9798 obs. of 4 variables:
$ Term : chr "あ" "あー" "あの" "え" ...
$ Info1: chr "フィラー" "フィラー" "フィラー" "フィラー" ...
$ Info2: chr "*" "*" "*" "*" ...
$ Freq : int 3 1 3 8 7 8 6 3 2 1 ...
# Info1には品詞情報が入っています。今回は「50回以上頻出」した「形容詞」を抽出します。
card_adj_50over <- card.res[(card.res$Info1=="形容詞"&card.res$Freq > 50),]
# とりあえず、頻出回数順に降順でソートをかけておきます。
card_adj_de <- card_adj_50over[order(card_adj_50over$Freq,decreasing = T),]
# もう一回データフレーム構造を見ておきましょう。
str(card_adj_dec)
> str(card_adj_dec)
'data.frame': 20 obs. of 4 variables:
$ Term : chr "ない" "良い" "やすい" "多い" ...
$ Info1: chr "形容詞" "形容詞" "形容詞" "形容詞" ...
$ Info2: chr "自立" "自立" "非自立" "自立" ...
$ Freq : int 989 676 487 456 431 358 277 247 142 140 ...
# 都度データフレーム名を入力するのは面倒なので、「attach」しておきます。
attach(card_adj_dec)
# グラフを作りたいのでggplot2をロードしておきます。
library(ggplot2)
# 描画レイヤーを一枚ずつ重ねあわせる
g <- ggplot(
card_adj_dec, # ggplot 用データフレーム
aes ( # ggplot オプション設定
x = Term, # x軸:Term
y = Freq, # y軸:Freq
)
)
g <- g + geom_bar( # 縦棒グラフの指定
width = 0.8, # 棒の幅
stat = "identity"
)
g <- g + xlab("形容詞") # x 軸名
g <- g + ylab("頻出回数") # y 軸名
g <- g + ggtitle("クレジットカードレビューにおける形容詞ランキング") # グラフ名
# グラフ描画。うーん、せっかく元データを降順にしたのに、反映されていない。。^^;
# 次回までに勉強しておきます。
plot(g)
R言語関連のエントリー
【R言語】leafletで札幌市内のサツドラをプロットしてみた。
http://sapporomkt.blogspot.jp/2016/01/rleaflet_4.html
【R言語】今年は、leafletでマップをグリグリしたい。
http://sapporomkt.blogspot.jp/2016/01/rleaflet.html
【R言語】factor型で数値を集計するときの注意点
http://sapporomkt.blogspot.jp/2016/01/rfactor.html
【R言語】ベクトルにおける関数の使い方
http://sapporomkt.blogspot.jp/2015/12/r_80.html
【R言語】「rpivotTable」パッケージが高機能過ぎて泣ける件
http://sapporomkt.blogspot.jp/2015/11/rrpivottable.html
【R言語】どうしても「ディープインパクト」全産駒の内訳を集計したくなったの<前処理編>。
http://sapporomkt.blogspot.jp/2015/10/r.html
AEIが優秀な種牡馬を調べてみたら・・・やっぱりディープ(略)
http://sapporomkt.blogspot.jp/2015/10/aei.html
過去5年間のリーディングサイアー成績を眺めてみた~ディープインパクトって実際・・・
http://sapporomkt.blogspot.jp/2015/10/5.html
(R言語)readHTMLTable関数でJ2の順位を音速で抜き出す。
http://sapporomkt.blogspot.jp/2015/07/rreadhtmltablej2.htm
0 件のコメント:
コメントを投稿