Sparse_Document_Term_Matrix の変更点 - アールメカブ

アールメカブ


Sparse_Document_Term_Matrix の変更点


[[Rの備忘録]]

tm パッケージがはく document-term 行列の形式がデフォで sparse に変っていて,その形式が [[simple_triplet_matrix:http://people.sc.fsu.edu/~jburkardt/data/st/st.html]] になっている.

処理コード探してみたら slam パッケージを取り込んでいることが分った.

[[RMeCab]] の出力であれば,以下のようにして simple_triplet_matrix に変換できる.



 library(RMeCab)
 test <- docMatrix2( "/home/ishida/Downloads/data/morikita")
 
 install.packages("slam")
 library(slam)
 test.sparse <-  as.simple_triplet_matrix( t(test) )

また topicmodels パッケージは,Latent Dirichlet Allocation を実現する LDA() 関数を実装しているが,LDA関数はinputのクラスが,sparse な行列であり,
かつ tm パッケージ独自の DocumentTermMatrix クラスで
あることを前提にしている.
そこで RMeCab の出力を as.simple_triplet_matrix 関数で
sparse な triplet_matrix に変え,そのクラス属性を
 "DocumentTermMatrix"
に変更すると, LDA 関数への input になる.

 install.packages("topicmodels")
 library(topicmodels)
 class(test.sparse) <- "DocumentTermMatrix"
 topic.mod <- LDA(test.sparse, control = list(alpha = 0.1), k = 5)