在基于 Quanteda dfm 运行 STM 模型后,我想估计我的协变量对某些主题的影响。
运行STM模型很顺利,产生了预期的主题,但是当使用estimateEffect
时(在下面的脚本的最后一步中),R会话被中止,通知存在“致命错误”。 / p>
当从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")
或者,我使用STMcorpus <- asSTMCorpus(mydfm)
从我的dfm语料库中创建了一个STM语料库。但后来我无法运行STM模型,因为它没有识别我的元数据。遵循这种替代策略会更好吗? (所以我需要在运行STMcorpus <- asSTMCorpus(mydfm)
之后以某种方式将元数据与STMcorpus相关联)。
答案 0 :(得分:2)
我们通过电子邮件完成了这项工作 - 但我会在这里为可能遇到某种形式问题的其他人添加答案。
matrixStats
包中存在一个错误,导致R仅在Windows上使用大型矩阵崩溃。错误和解决方案详述如下:https://github.com/HenrikBengtsson/matrixStats/issues/104。此问题包含对问题的简单测试以及如何安装修复它的matrixStats
开发版本的说明。这是版本matrixStats 0.52.2
中的问题,可能会在下一个CRAN版本中得到解决。