Hamada Akira

SLA | TESOL | APPLIED LINGUISTICS

Latent Semantic Analysis

潜在意味解析
######
# 豊田秀樹.(編著).(2008).『データマイニング入門-Rで学ぶ最新データ解析』東京:東京図書. 
# MeCabをインストールしておく
library (RMeCab)
######
# 特異値分解用の関数
source ("C:/...LSA.txt")
######
# 語句ー文書行列の作成:テキストファイルのあるディレクトリを指定
doc <- docMatrix ("C:/...LSA")
######
# 頻度2以下のデータを削除 (任意)
doc.f <- Kyoki (doc, minDocFreq = 2)
######
# 特異値分解
svd.doc <- svd (doc.f)
######
# 次元縮約:次元数は[Σ(任意の次元までの特異値)/Σ(対角行列)]で判断
rslt <- dimReducShare (svd.doc, share = 0.5, doc = doc.f)
######
# 近似行列の再構築
rslt$tk %*% diag (rslt$sk) %*% t(rslt$dk)
######
# 関連度の計算
library (lsa)
LSAspace = lsa (doc.f, dims = dimcalc_share())
NewMatrix = as.textmatrix (myLSAspace)
associate (NewMatrix, "WORD", threshold = -1)
# 1. 計算の前にデータフレームが行列かを確認すること: is.matrix()
# 2. 行列に変換する場合はas.matrix()
トップへ戻る