STM:从 dfm 开始时估计 metadata/topic 关系

STM: estimating metadata/topic relationships when starting from dfm

在 运行基于 Quanteda dfm 建立 STM 模型后,我想估计我的协变量对某些主题。

运行 STM 模型运行良好,按预期生成主题,但是当使用 estimateEffect 时(在下面脚本的最后一步)R 会话中止,通知有一个'fatal error'.

从 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 模型,因为它无法识别我的元数据。遵循这种替代策略会更好吗? (所以我需要在 运行ning STMcorpus <- asSTMCorpus(mydfm) 之后以某种方式将元数据与 STMcorpus 相关联)。

我们通过电子邮件解决了这个问题 - 但我会在此处为可能遇到某种形式问题的其他人添加答案。

matrixStats 包中存在一个错误,导致 R 仅在 Windows 上使用大矩阵时崩溃。错误和解决方案详见此处:https://github.com/HenrikBengtsson/matrixStats/issues/104。这个问题包含一个简单的问题测试和如何安装修复它的 matrixStats 开发版本的说明。这是版本 matrixStats 0.52.2 中的一个问题,可能会在下一个 CRAN 版本中解决。