gpt4 book ai didi

python - 如何在结构主题建模 R 包中绘制文档主题分布?

转载 作者:行者123 更新时间:2023-12-01 01:30:14 25 4
gpt4 key购买 nike

如果我使用 python Sklearn 进行 LDA 主题建模,我可以使用转换函数来获取 LDA 结果的“文档主题分布”,如下所示:

document_topic_distribution = lda_model.transform(document_term_matrix)

现在我也尝试了 R 结构主题模型 (stm) 包,我想要得到相同的结果。 stm包中是否有任何函数可以产生相同的东西(文档主题分发)?我创建了 stm 对象,如下所示:

stm_model <- stm(documents = out$documents, vocab = out$vocab,
K = number_of_topics, data = out$meta,
max.em.its = 75, init.type = "Spectral" )

但我没有找到如何从这个对象中获得所需的分布。 documentation也没有真正帮助我。

最佳答案

正如 emilliman5 指出的,您的 stm_model 提供对模型底层参数的访问,如图 in the documentation 所示。 。

事实上,theta 参数是一个

Number of Documents by Number of Topics matrix of topic proportions.

这需要一些语言解析:它是一个 N_DOCS by N_TOPICS 矩阵,即它有 N_DOCS 行,每个文档一个,并且 N_TOPICS 列,每个主题一列。这些值是主题比例,即如果 stm_model[1, ] == c(.3, .2, .5),则意味着文档 1 为主题 1 的 30%,主题 2 为 20%, 50% 主题 3。

要找出哪个主题在文档中占主导地位,您必须找到最大值的(列!)索引,可以检索该索引,例如通过使用 MARGIN=1 调用 apply,这基本上表示“按行执行此操作”; which.max 只是返回最大值的索引:

apply(stm_model$theta, MARGIN=1, FUN=which.max)

关于python - 如何在结构主题建模 R 包中绘制文档主题分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52948857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com