今LDAのプログラムを作っているところなのですが、結果が全て単語で出てくる仕様になっているようです。そこを単語ではなくvocabのインデックスで出力させたいのですが、どうしたら良いかわかる方いらっしゃいましたら教えていただけないでしょうか。
R
1コード 2result <- lda.collapsed.gibbs.sampler(documents, k, vocab, 3 25, # 繰り返し数 4 0.1, # ディリクレ過程のハイパーパラメータα 5 0.1, # ディリクレ過程のハイパーパラメータη 6 compute.log.likelihood=TRUE) 7 8 9top.words <- top.topic.words(result$topics, 30, by.score = TRUE) 10print(top.words)
出力結果が以下
結果を単語ではなく、単語ベクトル(vocab)のインデックスで取得したいです。
今のところ思いつく方法
単純に出力結果の単語をひとつひとつvocabと比べてインデックスを探していくという方法です。
他にもっとスマートなやり方、出力時にインデックスも同時に出す方法などがありましたら教えてください。
KojiDoiさん
R
1コード 2top.topic.words(result$topics, 5, by.score = TRUE) 3 4top.topic.documents(result$document_sum,num.documents = 5, alpha = 0.1)
この二つの結果が以下です。
自分がやりたいのは例えば左上の"多く"という単語のインデックスを取得したいということです。
理想はvocab[136]=="多く"ということです。ただ実際はvocab[136]は違う単語を指していました。
回答1件
あなたの回答
tips
プレビュー