R 如何找到lda的最佳措施

R 如何找到lda的最佳措施,r,quanteda,R,Quanteda,使用quanteda软件包中的for lda require(quanteda) require(quanteda.corpora) require(lubridate) require(topicmodels) corp_news <- download('data_corpus_guardian') corp_news_subset <- corpus_subset(corp_news, 'date' >= 2016) ndoc(corp_news_subset) dfma

使用quanteda软件包中的for lda

require(quanteda)
require(quanteda.corpora)
require(lubridate)
require(topicmodels)
corp_news <- download('data_corpus_guardian')
corp_news_subset <- corpus_subset(corp_news, 'date' >= 2016)
ndoc(corp_news_subset)
dfmat_news <- dfm(corp_news, remove_punct = TRUE, remove = stopwords('en')) %>% 
    dfm_remove(c('*-time', '*-timeUpdated', 'GMT', 'BST')) %>% 
    dfm_trim(min_termfreq = 0.95, termfreq_type = "quantile", 
             max_docfreq = 0.1, docfreq_type = "prop")

dfmat_news <- dfmat_news[ntoken(dfmat_news) > 0,]
dtm <- convert(dfmat_news, to = "topicmodels")
lda <- LDA(dtm, k = 10)
require(quanteda)
require(quanteda.corpora)
要求(润滑)
需要(topicmodels)
公司新闻%
dfm_微调(最小termfreq=0.95,termfreq_type=“分位数”,
max_docfreq=0.1,docfreq_type=“prop”)
dfmat_新闻0,]

dtm有几种拟合优度(GoF)指标可用于评估LDA模型。最常见的称为困惑,您可以通过包topicmodels中的函数
complexity()
来计算它。选择最佳模型的方法是在绘图中查找“膝盖”。这个想法源于无监督的方法,是运行具有不同主题的多个LDA模型。随着主题数量的增加,您应该会看到困惑减少。当您发现膝盖或增量减少可以忽略不计时,您希望停止。当您运行主成分分析时,请仔细查看屏幕图

话虽如此,有一个名为R的包,它实现了基于密度聚类和Kullback-Leibler散度的四个额外指标。其中三种方法可用于VEM和Gibbs推理,而方法by只能用于Gibbs推理。对于其中一些指标,您寻找最小值,而对于其他指标,您寻找最大值。此外,您始终可以计算希望最大化的模型的对数可能性。从
LDA
对象中提取可能性的方法非常简单。假设您有一个名为
ldamodel
的LDA模型:

loglikelihood = as.numeric(logLik(ldamodel))
围绕这个主题有很多研究。例如,您可以查看以下文件:

另外,你可以看看我和我的一个同事正在写的一篇论文的预印本,它使用简单的参数测试来评估GoF。我们还开发了一个R软件包,可以在
LDA
类的LDA模型列表上使用,这些模型来自topicmodels。你可以找到纸和包裹。我们非常欢迎您提交您在文件包中发现的任何问题。目前正在对该文件进行审查,但再次表示欢迎发表评论


希望这有帮助

搜索主题模型的性能如何?@Sangwonkim您的意思是查找Gibbs、Recover和RecoverL2的比较,以确定特定数量的主题?也许这有助于: