繁体   English   中英

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

[英]How to plot a document topic distribution in structural topic modeling R-package?

如果我使用python Sklearn进行LDA主题建模,则可以使用transform函数获取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" )

但是我没有发现如何从该对象中获得所需的分布。 文档并没有真正帮助我。

正如emilliman5所指出的那样,您的stm_model提供了对模型基础参数的访问,如文档所示。

实际上, theta参数是

“按主题数划分的文档数”主题比例矩阵。

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

要找出哪个主题主导文档,您必须找到最大值的(列!)索引,该索引可以通过例如使用MARGIN=1调用apply来检索,该索引基本上说“逐行执行”; which.max只是返回最大值的索引:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM