1

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、マリア

4

1 に答える 1