预测新的数据LDA主题(Predicting LDA topics for new data)

2019-08-31 14:31发布

它看起来像这个问题已经可能已经问过(几次在这里 和这里 ),但尚未得到答复。 我希望这是由于提出的问题(一个或多个)以前的模糊性,通过评论指示。 我很抱歉,如果我再次问一个问题simliar打破协议,我只是认为,这些问题将不会看到任何新的答案。

反正,我是新来的隐含狄利克雷分布和正在探索其作为降维的文本数据的手段使用。 最后,我想从一个非常大包的话提取一组小的课题,并建立使用这些主题在模型中的几个变量分类模型。 我已经在训练集运行LDA的成功,但我遇到的问题是能够预测哪些的那些相同的主题出现在其他一些测试数据集。 我使用的r topicmodels包的权利,但如果有另一种方式来此使用一些其他的包我打开这一点。

这里是什么,我试图做一个例子:

library(topicmodels)
data(AssociatedPress)

train <- AssociatedPress[1:100]
test <- AssociatedPress[101:150]

train.lda <- LDA(train,5)
topics(train.lda)

#how can I predict the most likely topic(s) from "train.lda" for each document in "test"?

Answer 1:

随着本的优越文档阅读能力的帮助下,我相信这是可能使用后()函数。

library(topicmodels)
data(AssociatedPress)

train <- AssociatedPress[1:100]
test <- AssociatedPress[101:150]

train.lda <- LDA(train,5)
(train.topics <- topics(train.lda))
#  [1] 4 5 5 1 2 3 1 2 1 2 1 3 2 3 3 2 2 5 3 4 5 3 1 2 3 1 4 4 2 5 3 2 4 5 1 5 4 3 1 3 4 3 2 1 4 2 4 3 1 2 4 3 1 1 4 4 5
# [58] 3 5 3 3 5 3 2 3 4 4 3 4 5 1 2 3 4 3 5 5 3 1 2 5 5 3 1 4 2 3 1 3 2 5 4 5 5 1 1 1 4 4 3

test.topics <- posterior(train.lda,test)
(test.topics <- apply(test.topics$topics, 1, which.max))
#  [1] 3 5 5 5 2 4 5 4 2 2 3 1 3 3 2 4 3 1 5 3 5 3 1 2 2 3 4 1 2 2 4 4 3 3 5 5 5 2 2 5 2 3 2 3 3 5 5 1 2 2


文章来源: Predicting LDA topics for new data