単語-文書行列の作成
RMeCabが導入できたら、単語-文書行列を作ってみる。
こんなデータ(ankt.csv)があったとする。
ユーザ,アンケート
2010-001,私はご飯を食べた。
2010-002,私は歯を磨いた。
2010-003,私は犬と散歩した。
以下が単語-文書行列の作成ソース。
setwd("C:\\RW\\LSIMatrix") library('RMeCab') #--csvファイルの読み込み data <- read.csv("ankt.csv",header = T) user <- data[,"ユーザ"] ankt <- data[,"アンケート"] #-- 必要な品詞だけを残す #-- posは、取り除く品詞を指定する引数なので、名前固定 pos <- c("名詞","形容詞","動詞") #-- 形態素解析ののち、単語ごとの頻度解析を行う res <- docMatrixDF(ankt,pos) #アンケートに答えたユーザ名を記述 colnames(res) <- user #-- csvファイルに書き出し write.csv(res,"ankt_matrix.csv") save.image(LSIMatrix.RData)
で、こんな行列(ankt_matrix.csv)が得られる。
"","2010-001","2010-002","2010-003"
"ご飯",1,0,0
"する",0,0,1
"犬",0,0,1
"散歩",0,0,1
"私",1,1,1
"歯",0,1,0
"食べる",1,0,0
"磨く",0,1,0
あとは煮るなり焼くなりLSIするなり。ただ、単語-文書行列は大規模スパースになることが多いので、その後の分析にRが向いているかは、やっていないので不明。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
2010.12.30 追記
→[R]単語-文書行列の作成(不要語を取り除く) 」