STM:从DFM
问题描述:
启动时运行基于Quanteda的STM模型后估计元/主题关系DFM,我想估计对某些专题我的协变量的影响。STM:从DFM
运行STM模型运行正常,产生预期的主题,但是当使用estimateEffect
(在下面的脚本的最后一步)时,R会话被中止,通知有一个'致命错误'。
我如何估计我的协变量的影响,从DFM启动时? STM手册提供了从dfm运行STM模型的建议,但是我无法在此阶段后找到如何处理协变量。
下面的代码:
# Read texts with Quanteda
texts <- (readtext("C:/Users/renswilderom/Documents/Stuff Im working on at the moment/Newspaper articles DJ/test data/*.txt",
docvarsfrom = "filenames", dvsep = "_",
docvarnames = c("Date of Publication", "Length LexisNexis", "source"),
encoding = "UTF-8-BOM"))
mycorpus <- corpus(texts)
tokens <- tokens(mycorpus, remove_punct = TRUE, remove_numbers = TRUE, ngrams = 1)
mydfm <- dfm(tokens, remove = stopwords("english"), stem = TRUE)
# Run the STM model - Metadata is called with 'data = docvars(mycorpus)'
stm_from_dfm <- stm(mydfm, K = 10, prevalence =~ Date.of.Publication + source, gamma.prior='L1', data = docvars(mycorpus))
# Estimate effects
prep <- estimateEffect(1:10 ~ Date.of.Publication + source, stm_from_dfm,
meta = docvars(mycorpus), uncertainty = "Global")
另外,我从我的DFM文集作出了STM语料库,利用STMcorpus <- asSTMCorpus(mydfm)
。但后来我无法运行STM模型,因为它没有识别我的元数据。遵循这种替代策略会更好吗? (所以我需要在运行STMcorpus <- asSTMCorpus(mydfm)
后以某种方式将元数据与STMcorpus相关联)。
答
我们通过这个工作通过的电子邮件 - 但我会在这里回答为别人谁可能遇到某种形式的问题。
有一个在matrixStats
包这导致R键与仅在Windows大矩阵崩溃的问题。错误和解决方案在此处详述:https://github.com/HenrikBengtsson/matrixStats/issues/104。此问题包含对问题的简单测试以及如何安装修复该问题的开发版本matrixStats
的说明。这是版本matrixStats 0.52.2
中的一个问题,大概可以通过下一个CRAN版本解决。
这是很难没有重现的示例 - 你能提供一个诊断?另外,我认为当你做'asstMCorpus(mydfm)'时,quanteda包含了数据。元数据只是在一个名为'data' – bstewart
肯定列表中的对象,这里是我使用的实际报纸文章的一个样本:https://wetransfer.com/downloads/a50d8b8fd524359751e8aa68bac3256c20171016160720/3f3bb29e40362434594f44aeee1e67f720171016160720/b425d8 I'dd喜欢从'stm_from_dfm'工作,但如果需要的话,我当然也可以从'asSTMCorpus(mydfm)工作'。我只是试着通过list数据来访问元数据。 – Rens
我无法用你给我的数据样本复制你的错误。如果你想分享你打电话之前工作区的副本'estimateEffect()'我可以尝试从那里 - 复制但除此之外没有太多而不能重现问题,我可以做的。 – bstewart