の関数を使用して、(特定のドキュメント内の) 用語からの「コンセンサス」トピック予測 (ベータ) と、ドキュメント自体からの最も可能性の高い予測トピック (ガンマ) を比較しようとしていますtopicmodels
。groupby()
over documentを使用してガンマを選択することで、ドキュメントから最も可能性の高い予測トピックを抽出するのは簡単top_n()
ですが、「ベータ版」の推定では、一意のドキュメント ID が出力で抑制され、出力には 3 つの列 ( topic
、term
、beta
)のみが含まれます。 . これでは、特定のドキュメントの用語から「コンセンサス」トピック予測 (ベータ) を取得することはできません。
例として私自身のデータを使用します。
Sys.setlocale("LC_ALL","Chinese") # reset to simplified Chinese encoding as the text data is in Chinese
library(foreign)
library(dplyr)
library(plyr)
library(tidyverse)
library(tidytext)
library(tm)
library(topicmodels)
sample_dtm <- readRDS(gzcon(url("https://www.dropbox.com/s/gznqlncd9psx3wz/sample_dtm.rds?dl=1")))
lda_out <- LDA(sample_dtm, k = 2, control = list(seed = 1234))
word_topics <- tidy(lda_out, matrix = "beta")
head(word_topics, n = 4)
# A tibble: 6 x 3
topic term beta
<int> <chr> <dbl>
1 1 费解 8.49e- 4
2 2 费解 1.15e- 9
3 1 上 2.92e- 3
document_gamma <- tidy(lda_out, matrix = "gamma")
head(document_gamma, n = 4)
# A tibble: 6 x 3
document topic gamma
<chr> <int> <dbl>
1 1203232 1 0.00374
2 529660 1 0.0329
3 738921 1 0.00138
4 963374 1 0.302
とにかく、出力からドキュメントIDを復元し、推定値(オブジェクトとして保存されている)lda
と組み合わせることができますか? のコンセンサスと のコンセンサスから推定されたトピックを比較するのがはるかに簡単になるようにします。beta
word_topics
data.frame
beta
gamma