R の topicmodels パッケージの LDA モデルを使用しようとしています。メソッドの不安定性を測定する必要があるため、w = 3000 単語、t = 8 トピック、d = 50 ドキュメントのディリクレ分布から真のパラメータを生成しました。各自:
Theta = t(rdirichlet(d, alpha))
Phi = t(rdirichlet(t, beta))
docs = matrix(0, nrow = d, ncol = w)
for (i in 1:d) {
curn = rnorm(1, mean = 60, sd = 10)
for (j in 1:curn) {
curt = rdiscrete(1, Theta[,d], 1:t)
curw = rdiscrete(1, Phi[,curt], 1:w)
docs[i, curw] = docs[i, curw] + 1
}
}
したがって、私のドキュメントの行列は疎行列 d * w であり、ほとんどすべての要素が 0 または 1 です。
次に、docs マトリックスを documentTermMatrix クラスのオブジェクトにして、topicmodels:lda() で使用する必要があります。
docs = as.DocumentTermMatrix(docs, weighting = weightTf)
Gibbs サンプリング法を使用する必要があるため、次のように記述します。
ldafitmodel <- lda(docs, t, method = "Gibbs")
そして、私は得る:
lda.default(docs, t, method = "Gibbs") のエラー: nrow(x) と length(grouping) が異なります
この topicmodels パッケージは MASS パッケージを使用していると思いますが、このグループ化パラメーターは明示的に制御できないものですよね? または、データの何が間違っていますか?
私を助けてください!
BR、マリア